Stage 8b contract: typed claim roles, required slot, diff-carrying bounces

↗ view on GitHub · Eli Ziff · 2026-07-30 · 0c2e4adf

Typed claim roles (schema-shared, all structured arms): claims gain
kind = quotation | conclusion | premise_correction; premise corrections
carry premise_source (question | prior_answer) + premise_text, enforced
as a verbatim substring of the named source - the schema-level premise
distinction. Verified corrections are exempt from the conclusion
allowance and the lint bounce (novel by design), but never from the
stands-for bar (no laundering).

H15 required_slot arm: every cited case's characterization slot must be
filled by an attested-verbatim quote (citator receipt) or the exact
typed refusal sentence; free paraphrase is not a slot value.

H16' diff-carrying rejections: quoteRepair.ts ports the ALR-Quote-
Verifier alignment approach (token-level longest common run) narrowed to
Beaver's contiguous-substring tier - failed quotations bounce WITH the
cited span's closest verbatim excerpt, which clears the tier by
construction when requoted (round-trip proven in tests).

H17 prompt factorization: one base composition prompt shared verbatim by
every structured arm; mechanisms ride as named modules injected only on
applicable cells (attested/slot text only on case-law cells), recorded
per-cell as prompt_modules (runner receipt schema v2).

Instrumentation: every typed rejection archives pre-bounce claims +
rejection text into the receipt event (schema v6), closing the Stage 7
gap. 13 new unit vectors; 40/40 pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012AgUm5EcRKbT3duVFMbrQD
Repository eliziff/Beaver
Author Eli Ziff <eliasziff@gmail.com>
Authored
Parents 3e3d134c
Stats 6 files changed , +958 , -65
Part of Legal grounding and retrieval research

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-0c2e4adf.md from inside the repo you want the change in.

⬇ Download capture-commit-0c2e4adf.md