Cross-module synthesis into feature suggestions.
Labeled items from Discover, Listen and Compare feed an LLM that clusters them into opportunities. Every suggestion links back to the evidence that backs it.
Where three module feeds collapse into one list of bets.
Each module produces a stream of labeled items. Aggregate is where those streams meet: one LLM pass reads the combined corpus — scoped to the active product — and produces a batch of feature suggestions. Each suggestion has a title, a one-paragraph rationale, a signal strength, categories, and links back to the items that justify it.
Generate → inspect → write PRD.
Every run is a snapshot batch. You keep history, cycle between batches, and only the current one is editable. Writing a PRD from a card triggers the PRD writer with the evidence attached.
Generate batch
POST /aggregate/generateInspect evidence
GET /suggestions/{id}/evidenceWrite PRD
POST /suggestions/{id}/write-prdCycle batches
GET /aggregate/batches- Title — one-line feature name
- Rationale — a short paragraph explaining the opportunity
- Signal strength — how often / how loudly the items backed this
- Categories — a handful of accent-tinted tags
- Evidence links — expand-on-click, grouped by module
- Module of origin — Discover · Listen · Compare
Snapshot batches kept in SQLite.
- Table
feature_suggestions— one row per card, withprd_contentandgithub_issue_urlpersisted back.- Batching
- Every generate writes a batch identifier. Old batches stay readable; only the current one is editable.
- Evidence
- Evidence links are item IDs, so a signal can appear in multiple suggestions without duplication.
- Prompt preview
- Before generating, you can inspect the exact system prompt + item corpus that will go to the agent.
Why Aggregate is the heart of the pipeline.
Evidence-linked
Every opportunity is grounded in specific items from specific sources. No free-floating LLM guessing.
Batches are snapshots
Re-running never overwrites; you build a timeline of what was considered promising week over week.
One-click PRD
A card becomes a spec in one action. No context loss between synthesis and handoff.
See PMOS end-to-end.
A 20-minute demo walks through Discover → Aggregate → PRD → GitHub issue, scoped to your product.
