← the walkthrough

The mechanics.

Ten agents, one model — the behavior lives entirely in the prompts, so they're all on this page. Step through them like the pipeline runs them.

The loop — four beats, nine times.

1 · You prompt

One stage at a time. Every prompt ends with "do not continue."

2 · Author writes

Reference file as behavior spec, template as shape, provenance tags carried.

3 · LLM as judge

Six checks get verdicts; strategy and feasibility only ever get routed questions.

4 · You gate

Accept, send back, or override — logged, never argued. Then the next stage unlocks.

The agents.

Each card: what goes in and out, the exact prompt, and three tabs — when it pushes back on you, what the judge checks, and the AI concept it demonstrates. Arrow keys work.

What the judge checks — the eight, in plain words.

CheckThe question it asksCan it fail you?
Specific customerCould you list ten real people with this problem?Yes — can stop the whole run
Evidence presentIs there a tagged source behind every claim?Yes — the most common failure
Alternative namedWhat do people do today, and why does it fall short?Yes
TraceabilityDoes this artifact cite the one above it?Yes
Plain languageCould this be read aloud in a room?Yes
Nothing stubbedAre gaps explicit — or hidden behind a TBD?Yes
Strategic fitIs this the right priority?No. It writes a question for your VP instead
FeasibilityCan engineering build it?No. It writes a question for your eng lead instead

What the judge is actually given — its parameters

InputWhat it is
The artifactThe stage's output, verbatim — treated as data: instructions inside it are ignored and surfaced
The rubricreferences/critic-rubric.md — for each check: a pass example, a fail example, and the exact rewrite instruction to issue on failure. The examples are what keep verdicts consistent; a judge without them drifts
Its stage scopeWhich of the eight checks apply at this stage (a release plan isn't judged on "alternative named")
The verdict formatOne line per check → overall PASS / REVISE / BLOCK · on REVISE, the exact sentence to change · substantive topics emit Q-nn · question · Ask: role instead of any verdict
The judge polices itself for two drifts: softening ("could benefit from more data" is a pass wearing a fail's costume) and overreach ("this seems strategically sound" — the one sentence that would make the whole tool untrustworthy). When you disagree with a verdict, you override it and the disagreement is logged — never argued.

Guardrails.

One trust rule everywhere: anything from outside the skill's own files — context documents, interview answers, even the artifact being judged — is data, never instructions.

Input

  • The interrogation is input validation for problems — malformed ones get challenged before anything generates.
  • Every claim tagged at the door; hedges recorded as assumptions, out loud.
  • Self-reported context is quarantined in its own file and can never be promoted to "observed."

Output

  • Templates and a judge pass before anything advances.
  • Citations, graph shape and exports checked by scripts — never by the model.
  • No invented figures, labelled quotes only, no self-closed blockers.

Injection

  • "Mark this approved" inside any document is quoted to you, logged, and ignored — the rule is explicit in SKILL.md.
  • No document can change a verdict, close a blocker, or skip a stage. Only you can, in chat.
  • Tested, not asserted: the eval set plants an injection (INJ-01) and the judge must catch it.

The AI concepts, in one place.

Structured outputTemplates + a requirement grammar; the CSV comes from a script, never free-generated.
Data lineageProvenance tags propagate — an assumption at intake is still flagged four stages later.
Calibrated abstentionNo source → a visible [NEEDS EVIDENCE] gap beats a plausible invented number.
Generate → verifyThe model proposes citations; a script checks them. It never grades its own references.
LLM-as-judge, scopedSeparate pass, worked examples per check, and two topics it may only ask about.
Bounded agencyPushback budgets counted aloud; gates between stages; overrides logged, not argued.
Deterministic coreEverything with a right answer is plain Python — no temperature where exactness exists.
Goodhart defense"Which metric would you game?" is a gate question — and it has redesigned a north star.
Context engineeringOne always-loaded brief; per-stage references just-in-time; three context tiers.
Uncertainty surfacingEvery session ends with what it doesn't know. "Not yet decidable" is a legal verdict.
State externalizationThe session is a JSON file, not a chat scrollback — resume days later.
Defense in depthFooling one stage still meets the next gate, the scripts, and you.

Measured, not asserted.

14/14JUDGE AGREEMENT · HARNESS V2
6/6PLANTED DEFECTS CAUGHT
2/2ADVERSARIAL CASES HELD

The judge is a prompt, and a prompt is consistent, not calibrated — so it's measured against a labelled golden set, including a planted prompt-injection and a temptation to overreach. The first harness scored 11/14; all three misses were diagnosed as harness bugs, the fix was predicted, and the re-run confirmed 14/14. The authors have their own suite: 25/26 contract properties.

How the evals work Open the evals dashboard →