Deeper · Fail-closed integrity

Three layers of verification

The first principle is that legal effect must remain identical after transformation. Three independent layers enforce that — grounding, document-level invariants, and debate resolution — and every one of them fails closed.

Layer 1 — Grounding

Every finding has to cite specific text. The grounding verifier string-matches each cited quote against the parsed document. If the quote isn't there, the finding doesn't ship. Hallucination is caught at the citation, not at human review.

Tool: src/mcp/tools/grounding-verifier.ts

Layer 2 — Document checks

Invariants run over the whole deliverable, not just a single finding. The 10-pass verification pipeline driver chains checks for preservation categories — monetary amounts, time periods, jurisdiction and venue, dispute resolution, defined terms, insurance and regulatory language — against the original document.

Tools: verification-engine.ts, document-checks.ts, quality-check.ts

Layer 3 — Debate resolution

Agents post findings to a shared debate board, challenge each other, and resolve only when the orchestrator says so. Disagreements stay visible in the audit bundle. Nothing ships with an open challenge attached.

Tools: debate-board.ts, evaluator-gate.ts, scoring-engine.ts

What "fails closed" means here

The audit bundle

Every engagement ships an audit bundle alongside the deliverable: structured findings, debate resolutions, verification results, and the cost log. This is shared principle #5 — and the reason every tool in this layer also writes provenance, not just outcomes.