ADR 0013: blocking severity requires measured precision evidence (+ golden seed) #122
No reviewers
Labels
No labels
area:ci
area:docs
area:engineering
area:framework-fp
area:test-coverage
dogfood:fn
dogfood:fp
dogfood:friction
dogfood:tp
phase:b
phase:c
severity:critical
severity:high
severity:low
severity:medium
source:deepseek-v4-pro
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/fallow-py!122
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/adr-0013-blocking-precision"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Canary Context Pack
Product story
The 2026-06-15 precision audit (PR #113) measured the only
blockingrule,missing-runtime-dependency, at 3% precision — it fails CI onTYPE_CHECKING/try-except-guarded imports. Ablockingrule at 3% precision violates ADR 0007's conservative-classification promise. The operator's direction: makeblockinga function of measured precision — and make the enforcement real, not theater.What changed
decisions/0013-blocking-requires-precision-evidence.md— ADR establishing that a rule may carryblockingseverity only if its measured precision (via the precision harness) is ≥ 90% over ≥ 15 adjudicated findings, enforced by a required CI test (the blocking-precision contract). Immediate consequence:missing-runtime-dependencydowngradedblocking → decision_neededuntil #115/#117 raise its precision past the bar.benchmarks/precision/golden-adjudication-2026-06-15.json— the frozen ground truth: 236 audit verdicts (157 fp / 23 tp / 56 opinion), each keyed by stablefingerprintfor cross-run matching. This is the seed the precision harness (#119) and the contract test (B-bis) consume.benchmarks/precision/README.md— provenance + how the golden set is used + refresh cadence.decisions/README.md— index updated.No analyzer/CI/config code changes in this PR — it records the decision and lands the golden seed. The enforcement implementation is tracked as the B-bis issue (depends on harness #119).
Why it changed
This is the classification layer's application of ADR 0006 (evidence over imagination): severity stops being an author's declaration and becomes a measured, mechanically-enforced property. The operator named the failure mode to avoid directly — "a principle without enforcement is theater" — so the ADR is paired with a named CI gate, not left as prose.
Runtime evidence
python3 -c "import json; json.load(open('benchmarks/precision/golden-adjudication-2026-06-15.json'))"— valid, 236 verdicts, all fingerprintedKnown constraints
precision-snapshot.json. Until #119 + B-bis land, ADR 0013 is accepted-but-not-yet-mechanically-enforced; the golden seed here unblocks both.Explicit out-of-scope
missing-runtime-dependencydowngrade (→ B-bis issue).Requested decision
approve_mergeif ADR 0013's principle + enforcement design are sound and the golden seed is correct. Block on a threshold you disagree with, or if the enforcement mechanism is not actually enforceable as described.Merge blockers
An enforcement design that is in fact theater (no real CI gate), a wrong golden verdict that changes a headline, or a threshold the operator rejects.
Refs: ADR 0006/0007/0008/0009, audit PR #113, harness #119, fixes #115/#117.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.