Gate spec-id references on the premise that the repo defines a corpus - #3
Merged
Conversation
The self-sweep's remainder was 0/7 useful: every row was an id cited as an illustrative example inside this tool's own doc comments. The obvious fix — a stricter annotation grammar — is refuted by measurement: across two real corpora (2,880 and 642 sightings) the dominant real-assertion convention is a mid-comment parenthetical id, textually identical to an explanatory example. What separates a claim from a mention is the referent, not the shape. So the gate sits at the premise level: when BuildDefIndex finds no definition anywhere, the repo is not practicing the spec-id convention, and a probe-less reference is a mention with no possible referent — suppressed, counted, and disclosed in the receipt's coverage (dropping remainder rows silently would be the exact dishonesty the remainder exists to prevent). In a repo WITH a corpus nothing changes: orphans still surface (both dogfood corpora yielded true orphans that were real findings), and both produced byte-identical receipts under the gate. Schema 0.0.5: Coverage gains suppressed_mentions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015GeUG1gboWiZSnFyzQghyp
correctful receipt17 claims — ✅ 17 verified · ❌ 0 refuted · Change:
|
| Tier | Claim | Statement |
|---|---|---|
| T1-assertion | TestBuildDefIndexShapes |
Build Def Index Shapes |
| T1-assertion | TestAnchorClaims |
Anchor Claims |
| T1-assertion | TestAnchorClaimsNoCorpus |
Anchor Claims No Corpus |
| T1-assertion | TestAnchorSubVariantFallsBackToParent |
Anchor Sub Variant Falls Back To Parent |
| T1-assertion | TestAnchorChangeScopedDisambiguation |
Anchor Change Scoped Disambiguation |
| T1-assertion | INV-001 |
Remainder Contains Every Unverified Claim |
| T1-assertion | INV-002 |
Refuted Claim Never Enters Remainder |
| T1-assertion | TestVerifiedClaimCarriesProbeTier |
Verified Claim Carries Probe Tier |
| T1-assertion | INV-007 |
Refutation Dominates Verification |
| T1-assertion | TestT0PassConfersNoVerification |
T0 Pass Confers No Verification |
| T1-assertion | TestSuppressedMentionsAreDisclosed |
Suppressed Mentions Are Disclosed |
| T1-assertion | TestRemainderSectionAlwaysRenders |
Remainder Section Always Renders |
| T1-assertion | TestCoverageDisclosesUnreadFiles |
Coverage Discloses Unread Files |
| T1-assertion | TestAnchoringSummaryAndMarkers |
Anchoring Summary And Markers |
| T1-assertion | TestLLMProposedMarker |
LLMProposed Marker |
| T1-assertion | TestRefutedDetailComesFromFailingProbe |
Refuted Detail Comes From Failing Probe |
| T1-assertion | TestReceiptSanitizesPathsAndPinsSHAs |
Receipt Sanitizes Paths And Pins SHAs |
Harvest coverage: 8 files — 4 claimed · 4 scanned · 0 unread
5 spec-id mention(s) not minted as claims — the repo defines no spec-id corpus, so a reference has no possible referent
schema 0.0.5 · exit gate: refuted claims block; the remainder informs, never fails
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the external review's headline finding: the self-sweep remainder was 0/7 useful — every row an example id in this tool's own doc comments.
The reviewer's proposed fix (stricter annotation grammar / explicit invariant marker) was measured and refuted before implementing: across two real corpora (2,880 and 642 spec-id sightings in shipped code), the dominant real-assertion convention is a mid-comment parenthetical id — the exact textual shape of an explanatory example. A grammar strict enough to kill the examples kills ~80% of the real harvest.
The separator is the referent, not the shape. When the repo defines no spec-id corpus anywhere, a probe-less reference has no possible referent — it is a mention, not a claim.
AnchorClaimsnow suppresses those, and the count is disclosed in the receipt's coverage (schema 0.0.5,suppressed_mentions), because silently dropping remainder rows would be the exact dishonesty the remainder exists to prevent.Measured on all three legs before this PR:
What the receipt cannot check here: the measurement numbers above come from repos outside this one; the receipt covers the code and its tests, not the external measurement.
🤖 Generated with Claude Code
https://claude.ai/code/session_015GeUG1gboWiZSnFyzQghyp