For engineers and contributors. User-facing documentation lives at /docs.

Report Agents Reference

FieldValue
Last updated2026-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

TypeDescription
Evidence LayerFrom 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

  1. Build Evidence Layer from crawl (when using runReportFromCrawl) or use in-memory evidence (when using runCmoPipeline).
  2. Geographic step — Detect regional focus and market scope from page evidence.
  3. Category step — AI extracts market category from evidence.
  4. 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.
  5. Synthesis step — One AI call to produce discovery verdict: stage, recommendation, confidence, blockers, advantages, next milestone.
  6. Assemble — Build Report 1 object (discoveryVerdict, componentAnalyses, drlBreakdown, synthesisContext, etc.).

DRL (Distribution Readiness Level) is computed deterministically in lib/scoring/drl.ts.

Code

LocationNotes
lib/pipeline/run-report-from-crawl.tsEntry when loading from saved crawl
lib/pipeline/run-cmo-pipeline.tsEntry for full pipeline
lib/pipeline/steps/geographic, category, component-analysis, synthesis, assemble-report
lib/component-analyzers.tsComponent analyzers

BD (Report 2)

Contextualizes Report 1: distribution relevance, expert quotes, case studies, “companies like you.”

Input

TypeDescription
Report 1Only. 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

LocationSymbol
core/agents/bd-agent.tsrunBdAgent
lib/report-contextualize.tscontextualizeReport

COO (Report 3)

Strategies: what needs to change, by function (Engineering, Product, Sales, Marketing), small wins, one thing this week.

Input

TypeDescription
Report 1 + Report 2No 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

LocationSymbol
core/agents/coo-agent.tsrunCooAgent
lib/report-strategies.tsstrategiesReport

CDO (design audit)

UX blockers, design system audit, UI rewrite plan from captured pages.

Input

TypeDescription
Evidence LayerFrom normalized crawl.
ui_capturesCaptureResult[]. 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

  1. Get HTML per page (from preCrawled.captures or by calling runUICaptureCrawler).
  2. Structure step — Extract simplified DOM/structure from each page’s HTML for prompt context.
  3. Build evidence JSON from structured pages.
  4. Run three prompts in sequence: UX blockers report, design system audit, UI rewrite plan.
  5. Enforce budget (e.g. $2); if exceeded before analysis, return budget-exceeded result.

Code

LocationNotes
core/agents/cdo-agent.tsMain agent
lib/cdo/steps/structure.tsStructure extraction
core/prompts/PromptRegistry.tsCDO_UX_BLOCKERS_REPORT_V1, CDO_DESIGN_SYSTEM_AUDIT_V1, CDO_UI_REWRITE_PLAN_V1

See also