docs(adr): record that verification guards earn default-on by measured precision - #1364
docs(adr): record that verification guards earn default-on by measured precision#1364kyle-sexton wants to merge 1 commit into
Conversation
…d precision Adds ADR 0003 capturing the #1270 guard program's generalizable lesson: a sound oracle is necessary but not sufficient to ship a PostToolUse verification guard default-on. asserted-path-verify's contract suite passed 61/61 yet a full-corpus sweep (#1314) found 231/975 files firing, 389 findings, zero true positives -- a scoping defect a hand-picked contract suite cannot surface. skill-reference-verify (#1319) shipped on the same evidentiary basis at 0.51% firing, 57% precision. The ADR extends ADR 0002's verification-promotion discipline one lifecycle stage earlier and defers to docs/conventions/hook-precision/README.md rather than restating it. Closes #1352 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 29s —— View job PR Review
SummaryThis is a clean, well-evidenced ADR. The core argument (sound oracle ≠ sufficient scope) is correctly established, the numbers are concrete and internally consistent (231/975 = 23.7% checks out), the cross-references all resolve, and the five-point decision section gives implementers an unambiguous checklist. One structural gap and one minor clarity nit worth addressing before merge. FindingsMissing "Revisit triggers" section — both ADR 0001 and ADR 0002 close with a "Revisit triggers" section; ADR 0003 has none. For a process rule like this, relevant triggers do exist: e.g., the corpus-sweep tooling changes (invalidating the measurement approach), the repo scope changes significantly (new file classes the sweep should cover), or a withdrawn guard later finds a valid rescoping and re-ships. Omitting the section is a divergence from the established pattern in this repo and leaves the "when does this rule change?" question unrecorded. CHANGELOG exclusion rationale missing from the precision figure — line 29 states What checks out
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3181da97d6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Closing as superseded by #1357, which merged the same ADR at the same path and closed the same issue (#1352).
The one review finding not covered by the merged ADR — that decision rule 1 says "the real corpus" without scoping the sweep to a plugin-shipped guard's actual deployment surface (arbitrary consuming repos, not this marketplace) — is filed against the merged ADR as #1438 so it does not die with this branch. |
Closes #1352
Summary
Adds
docs/adr/0003-verification-guards-earn-default-on-by-measured-precision.md, recording the #1270 guard program's generalizable lesson: a sound oracle is necessary but not sufficient to ship aPostToolUseverification guard default-on. Two of three scoped guards did not survive contact with the repo — the version-vs-manifest guard was dropped before implementation (already covered bycheck-changelog-parity.sh --check-bump), andasserted-path-verifywas built to 61 contract cases, fully reviewed, then withdrawn on a full-corpus sweep: 231/975 markdown files (23.7%) fired, 389 findings, zero true positives (#1314).skill-reference-verifyshipped (#1319) on the same evidentiary basis at 0.51% firing, 57% precision. The ADR records the decision that a guard measures firing rate and precision against a real corpus before shipping default-on, that the number appears in the PR, that zero true positives disqualifies regardless of oracle soundness, and that "wrong oracle" versus "wrong scope" decides deletion versus rescoping. It extends ADR 0002's verification-promotion discipline one lifecycle stage earlier and defers todocs/conventions/hook-precision/README.mdfor the post-ship precision rules rather than restating them.Test plan
markdownlint-cli2 docs/adr/0003-*.md— 0 issueslychee --config lychee.toml docs/adr/0003-*.md— 1/1 links OK (cross-reference to ADR 0002 resolves)docs/adr/0002-*.md,docs/conventions/hook-precision/README.md) exists and its cited content matchesRelated
Refs #1270 — original guard-program scoping (version-vs-manifest guard dropped there).
Refs #1284 — superseded PR that first shipped
asserted-path-verify(closed).Refs #1319 — PR that shipped
skill-reference-verifyand withdrewasserted-path-verifyon measurement.Refs #1314 — full-corpus sweep measurement for the withdrawn
asserted-path-verifyguard.🤖 Generated with Claude Code