Workflow
/quick · soup to nuts
One trigger. Six phases. Roughly 90 seconds end-to-end for a clean Quick Look, 3-4 minutes for a full writeup. Skills, data sources, and delivery path are inspectable and editable above.
Run /quick
Trigger panel · POST /api/quickExecution lognot started
// waiting for trigger…
Phase 1
Trigger
- ·Web: user clicks Run /quick on company page, selects mode
- ·CLI: user types /earnings quick TICKER in Cowork
- ·Cron: 12:15pm ET post-close scan flags overnight reports
Phase 2
Data collection
- ·Pull current stock price + AH move (Bloomberg MCP)
- ·Fetch consensus: Rev, EPS, EBITDA, segment splits (financial-datasets API)
- ·Retrieve prior-year actuals for Y/y build
- ·Load /context/{TICKER}/ files (R2)
- ·Web search latest earnings release + sellside commentary
- ·If post-call: retrieve call transcript
Phase 3
Skill execution
- ·Load conestoga-doc-formatter (root)
- ·Load conestoga-style-constants (palette + notation)
- ·Template mode: CE pre-filled, [ACTUAL] placeholders, watchpoint cheat sheet
- ·Quick mode: Bottom Line + Results + Outlook + Take (~300-500 words)
- ·Writeup mode: full sections, segments, balance sheet, model snap (~800-1500 words)
Phase 4
Output generation
- ·Render HTML with conestoga CSS template
- ·Generate vs-Consensus table with .beat / .miss classes
- ·Apply conditional formatting (green +, red -, bold deltas)
- ·Include model snapshot table when data exists
- ·Apply footer tag: $TICKER.US | #Earnings + signature
Phase 5
Delivery
- ·Save HTML to R2: earnings-artifacts/quick-looks/{FY}/{TICKER}/...
- ·Write metadata row to D1 quick_looks table
- ·Render in browser + push preview link
- ·Draft Outlook email (subject = {TICKER} {FY} {Qtr} Earnings Quick Look)
- ·Queue for analyst review OR auto-send to research@conestogacapital.com
Phase 6
Post-processing
- ·Update earnings_events with actuals + stock move
- ·Flag read-through implications for peer names
- ·If post-call: queue follow-up addendum if new info material
- ·Archive both versions for diff comparison
SLA
| Template (pre-earnings) | ~30s |
| Quick (post-print) | ~90s |
| Writeup (post-call) | ~3 min |
| Cron pre-earnings sweep | 1pm ET |
Data contracts
bloomberg_get_earnings_calendar→ dates, times, sector tagsbloomberg_get_reference_data→ market cap, sector, FYEgetAnalystEstimates→ consensus Rev / EPS / EBITDAgetIncomeStatement→ prior-quarter/year actualsweb_search→ release text, sellside commentary- R2
context/{TICKER}/→ internal + sellside notes
Guardrails
- No em dashes anywhere.
- Every metric includes Y/y, absolute, and vs CE.
- Positive values bold green (#008000). Negative bold red (#C00000).
- Ticker tag in footer:
$TICKER.US | #Earnings. - Output HTML validates email-client-safe CSS subset.
- Queue retries 2x with exponential backoff before alerting.
Edit touch-points
- Template structure → conestoga-doc-formatter
- Palette, typography, notation → conestoga-style-constants
- Pre-earnings scenario framework → earnings-preview
- Full 8-12 page earnings report → earnings-analysis
- Read-through logic → earnings-calendar
- Cron scheduling → schedule