Report Agents Reference
| Field | Value |
|---|---|
| Last updated | 2026-02 |
Purpose
Technical reference for each report agent: role, inputs, outputs, and main implementation.
- Report agents consume the Evidence Layer or prior reports — they do not re-fetch.
- For I/O contracts and versioning see Agent contracts; for when each report runs see Background flow.
CMO (Report 1)
Produces the canonical Report 1: discovery verdict (stage, recommendation, confidence), component analyses (Brand, Product, Pricing, Market, Distribution), DRL, synthesis context, and execution log. Stage and recommendation are the single source of truth for the product.
Input
| Type | Description |
|---|---|
| Evidence Layer | From normalizeFromCrawl; plus legacy pageEvidence / enrichedData in the current pipeline. No re-crawl. |
Output
Type: Report1Result
Includes: discoveryVerdict, componentAnalyses, drlBreakdown, synthesisContext, execution log, etc. Type in lib/types.ts; assembly in lib/pipeline/steps/assemble-report.ts.
Behavior
- Build Evidence Layer from crawl (when using
runReportFromCrawl) or use in-memory evidence (when usingrunCmoPipeline). - Geographic step — Detect regional focus and market scope from page evidence.
- Category step — AI extracts market category from evidence.
- Component-analysis step — Run five analyzers over page evidence and enriched data:
- Brand: confusability, searchability, positioning (uses brandValidation when present).
- Product: fit, clarity, value prop.
- Pricing: model, relevance (with pricing-context rules e.g. open-source).
- Market: TAM, positioning, competitive context.
- Distribution: DRL, channel fits, distribution patterns.
- Synthesis step — One AI call to produce discovery verdict: stage, recommendation, confidence, blockers, advantages, next milestone.
- Assemble — Build Report 1 object (discoveryVerdict, componentAnalyses, drlBreakdown, synthesisContext, etc.).
DRL (Distribution Readiness Level) is computed deterministically in lib/scoring/drl.ts.
Code
| Location | Notes |
|---|---|
lib/pipeline/run-report-from-crawl.ts | Entry when loading from saved crawl |
lib/pipeline/run-cmo-pipeline.ts | Entry for full pipeline |
lib/pipeline/steps/ | geographic, category, component-analysis, synthesis, assemble-report |
lib/component-analyzers.ts | Component analyzers |
BD (Report 2)
Contextualizes Report 1: distribution relevance, expert quotes, case studies, “companies like you.”
Input
| Type | Description |
|---|---|
| Report 1 | Only. No crawl. |
Output
Type: Report2Result. Types in lib/types.ts.
Behavior
Single GPT call. Builds a summary of Report 1 and uses curated knowledge (distribution strategies, founder quotes, use-case references) to produce distribution relevance, selected quotes, and cases that match the company’s blockers and stage.
Code
| Location | Symbol |
|---|---|
core/agents/bd-agent.ts | runBdAgent |
lib/report-contextualize.ts | contextualizeReport |
COO (Report 3)
Strategies: what needs to change, by function (Engineering, Product, Sales, Marketing), small wins, one thing this week.
Input
| Type | Description |
|---|---|
| Report 1 + Report 2 | No crawl. |
Output
Type: Report3Result. Types in lib/types.ts.
Behavior
Single GPT call. Receives a Report 1 payload (summary + verdict + synthesis context + pricing relevance context) and full Report 2 JSON. Produces:
whatNeedsToChange- Strategies by function
- Founder-focused fields (small wins, one thing this week)
Respects pricing-relevance rules (e.g. no “add public pricing” when relevance is reduced for open-source or strategic).
Code
| Location | Symbol |
|---|---|
core/agents/coo-agent.ts | runCooAgent |
lib/report-strategies.ts | strategiesReport |
CDO (design audit)
UX blockers, design system audit, UI rewrite plan from captured pages.
Input
| Type | Description |
|---|---|
| Evidence Layer | From normalized crawl. |
| ui_captures | CaptureResult[]. When preCrawled is provided, no interns run; when omitted, the CDO path can run the UI capture intern. |
Output
Type: CdoAgentResult
Fields: verdict, uxBlockersReport, designSystemAudit, uiRewritePlan, confidence_score, artifacts_used, warnings. Schemas in core/schemas/cdo-output.ts.
Behavior
- Get HTML per page (from
preCrawled.capturesor by callingrunUICaptureCrawler). - Structure step — Extract simplified DOM/structure from each page’s HTML for prompt context.
- Build evidence JSON from structured pages.
- Run three prompts in sequence: UX blockers report, design system audit, UI rewrite plan.
- Enforce budget (e.g. $2); if exceeded before analysis, return budget-exceeded result.
Code
| Location | Notes |
|---|---|
core/agents/cdo-agent.ts | Main agent |
lib/cdo/steps/structure.ts | Structure extraction |
core/prompts/PromptRegistry.ts | CDO_UX_BLOCKERS_REPORT_V1, CDO_DESIGN_SYSTEM_AUDIT_V1, CDO_UI_REWRITE_PLAN_V1 |
See also
- Agent contracts — I/O schemas, shared artifact registry, contract version
- Background flow — When each report is run (Web vs API vs orchestrator)
- Agents overview — Intern vs report agents