NAI OS

Four shapes of verification

Rigor matched to what a wrong answer costs — not to how sophisticated the system can be.

Four shapes of verification

Back to the pattern. Every system prepares and stops; none of them ships without a human reading the result. But "check before you hand it over" is not one mechanism here — it's four, chosen per system for what a wrong answer would cost and whether a second pass could actually fix it.

ShapeSystemsWho checksIterates?
Bounded generator/critic loop/nai-option-study option-verifier, web-groundedYes — ≤3 rounds, only on FAIL
Single adversarial pass/nai-review, /nai-spec-drafter finding-checker, spec-rule-checkerNo — one pass, verdict stands
Orchestrator-computed tie-out/nai-tax-theo the orchestrator itself, no checker subagentNo — deltas are ✓ or flagged
No cross-check, by design/nai-chief-of-staff, /nai-newsletter, /nai-paper-ingest nonen/a

Bounded loop

An option's premise can be wrong and get better on revision, so /nai-option-study runs a generator/critic loop, capped at 3 rounds, and only a FAIL verdict triggers another round. The full mechanics — why the critic can't grade its own homework, why the critique travels by file — are the worked example in 08 Option Studies/loop-pattern.md.

Single adversarial pass

A finding's cited evidence either holds or it doesn't — there is nothing for a second round to improve. So /nai-review and /nai-spec-drafter check once and stop: a citation that fails is flagged for the human, never sent back for redrafting.

“One adversarial verify pass, no loop… iterating would let the drafter rewrite findings until they slip past the checker.” — .claude/commands/nai-review.md. The same line, almost verbatim, is in nai-spec-drafter.md. Rewriting prose to satisfy a checker would corrupt the exact citation discipline the check exists to enforce.

Orchestrator-computed tie-out

/nai-tax-theo has no dedicated checker subagent. Its reconciliation.md is a table the orchestrator itself computes — bank balance vs. summed transactions, salary vs. payroll, loan transfers vs. schedule — each row marked ✓ or ✗ with the delta. When the check is arithmetic, not judgement, dispatching a subagent to re-verify addition would be theatre.

No cross-check

/nai-chief-of-staff and /nai-newsletter run no verification step at all. Deliberately: a morning briefing or a newsletter draft is disposable and time-boxed, wrong today is corrected tomorrow, and the human reads every line before it goes anywhere. The safety here lives in the tool grant — see why the promise holds — not in a second agent's judgement.

The rule these four serve

Match verification rigor to the cost of being wrong, and to whether a second pass can actually fix it. Expensive-and-fixable earns a loop. Expensive-and-binary earns one adversarial pass with no way back. Cheap-and-arithmetic earns a computed tie-out, no subagent. Disposable-and-reviewed earns no check at all — the tool boundary is the safety net.

Full write-up, with citations, at docs/verification-patterns.md.

NextWhy the promise holds