Claude-powered · multi-agent · auditable

A product management operating system, built out of agents.

Six specialist agents chained into four workflows. Research becomes a cited evidence ledger; a red team tries to kill the idea; the spec traces every requirement back to evidence; and a quality gate with blocking authority checks whether anyone made anything up.

6
specialist agents
4
chained workflows
2
scoring rubrics
1
blocking gate

The chain

Each agent is a specialist with a contract

Every agent has one job, one output contract, and one thing it is not allowed to do. The prompts live in /agents as reviewable markdown — a prompt change shows up as a diff in a pull request, not as a mystery regression.

  1. 01

    Research Synthesizer

    claude-sonnet-5 · temp 0.2 · → evidence_brief

    Turns a fuzzy problem statement into a cited Evidence Ledger — claims, sources, confidence, and explicit contradictions.

  2. 02

    Assumption Challenger

    claude-opus-5 · temp 0.7 · → challenge_report

    Adversarial review. Extracts unstated assumptions, ranks them by blast radius, and designs the cheapest test that could falsify each one.

  3. 03

    Spec Writer

    claude-opus-5 · temp 0.3 · → prd

    Writes a build-ready PRD where every requirement traces to evidence and every metric has a baseline, a target, and an instrument.

  4. 04

    Prototyper

    claude-opus-5 · temp 0.6 · → prototype

    Turns the PRD's primary flow into a self-contained clickable HTML prototype plus the acceptance criteria that make it testable.

  5. 05

    Output Auditor

    claude-opus-5 · temp 0.1 · → audit_report

    The quality gate. Scores artifacts against a published rubric, verifies every citation against the ledger, and can block the run.

  6. 06

    Decision Archivist

    claude-sonnet-5 · temp 0.2 · → adr

    Writes the durable record — what was decided, what was known at the time, what was rejected, and the date it gets revisited.

Run console

The full chain. Takes an ambiguous problem statement and returns a build-ready PRD that has survived adversarial review, plus the decision record that explains it.

Recorded run: Why do 60% of our SMB accounts never add a second user?

🧭 Discovery → Spec

New problem space, low internal knowledge, decision has not been made yet.

Press Replay to watch the recorded run, or add your own inputs and run it live.

Design decisions

The parts that were hard

Chaining LLM calls is easy. Making the output trustworthy enough that someone would stake a quarter on it is the actual work. These are the four choices that did most of it.

Grounding

One agent may introduce facts. The rest must cite.

The Research Synthesizer writes an Evidence Ledger of atomic claims with IDs, source tiers and confidence grades. Every downstream agent cites those IDs. A claim with no ID is not a claim — it is an open assumption, and it gets logged as one.

Tradeoff — Costs output quality on open-ended questions, because agents refuse to fill gaps with plausible-sounding filler. That refusal is the feature.

Adversarial

The red team runs before the spec, not after.

Reviewing a finished PRD produces line edits. Running the challenge first changes what gets written: in the recorded run it moved the North Star metric off second-seat rate, because the pre-mortem predicted that exact number would rise while retention stayed flat.

Tradeoff — A stage that can return DO NOT BUILD and halt the chain. Sometimes the deliverable is the reason not to proceed.

Quality gate

The auditor can block, and it does not rewrite.

Two rubrics — a 5-dimension quality score with a pass threshold on every dimension, and six binary hallucination checks. It quotes the offending sentence, names the defect, and hands it back. It never fixes the artifact itself.

Tradeoff — An agent that improves its own input hides the failure rate. Separating detection from repair keeps the error signal visible.

Loop control

Two repair loops, then a human.

On a BLOCK, only the failing stage re-runs — never the whole chain. After two failed repairs the run stops and escalates with the specific disagreement. Agents iterating on their own output converge on confident nonsense.

Tradeoff — Some runs end unresolved. An unresolved run that says why beats a resolved one that quietly lowered its standards.

Outputs

Real artifacts, committed to the repo

Every file below was produced by the agent whose prompt sits in /agents. They are in version control so you can read the outputs without running anything — and so the demo works with no API key.

Stack

How it is built

Models

Claude Opus 5 for adversarial and authoring work, Claude Sonnet 5 for retrieval and archival. Routing is declared per agent in frontmatter.

Retrieval

Perplexity Sonar for live research, server-side. Degrades to disciplined-uncertainty mode when unavailable rather than failing the run.

Orchestration

A sequential async generator emitting typed events over SSE. Stages are sequential by design — the auditor must see what the writer actually wrote.

Source of truth

Agent prompts are markdown in /agents; workflows are YAML. A build script generates the TypeScript registry and fails the build on a broken reference.

App

Next.js App Router on Vercel, React 19, Tailwind v4. One streaming code path shared by live and recorded runs.

Evals

Rubrics in /evals as versioned YAML, scored against golden cases by a standalone harness — the same rubrics the in-run auditor uses.