v0.3.0 — M3: extraction and review
M3 complete: the probabilistic edge of the seam is now real, and the correction loop closes.
M3 (#3)
- Extraction adapters — a protocol derived from two implementations (the honest scripted stub and live Docling), emitting renditions per spec D4 with every span verified against the rendition text on emission
- Run envelopes — content-addressed manifests so a whole extraction run can be verified before ingestion and revoked at once (resolves the batch-envelope question deferred from M0)
- Abstention policy — pack-versioned confidence floors enforced by the kernel: below-floor machine facts are excluded at binding with
low_confidencereceipt entries carrying score, threshold, and provenance; packs without a policy remain byte-identical (pinned-hash proven) - Calibration module — temperature, Platt, and split-conformal math with an ECE/Brier/coverage validation harness; deliberately unfitted until real review labels exist, and explicit that the conformal guarantee is marginal, not error-among-accepted
- Review queue — abstentions become dedup'd queue items; human corrections enter the store as first-class superseding facts, flip decisions on re-adjudication, export
(score, correct)calibration pairs, and freeze as replayablereview-*golden cases - The demo arc — extract → abstain → inline human correction → flipped verdict → golden-case export, end to end in the browser
The commercial extraction adapter (Azure DI / Google Document AI) moved to v1.1 by decision: Docling proved the interface against a real converter, and a second provider is a contribution the seam exists to invite.
Also in this tag's tree (#4, #5)
Four statutorily-researched mortgage-closing rule packs — RON eligibility on real state authorization dates (including California's not-until-2030 statute), eSign/eNote routing, TILA rescission with its documented MODELING BOUNDARY, county recording readiness with its own abstention arc — plus a domain-grouped demo (seven scenarios, two domains) and the roadmap restructure that declared M3 complete (M4 reordered by consumer readiness, the alternate Datalog backend split to M5).
Numbers at this tag: 378 tests passing; 251 golden receipts replaying byte-for-byte; six rule packs across two domains; every citation verified against primary sources or marked TODO(verify).
Full diff: v0.2.0...v0.3.0