Diff-Scoped Tag Search
Tag collision (INFRA-064) is the most recurring finding in the proof system — 7 instances across 7 runs. Every contract generates `A001`, `A002`, etc. After 25+ pipeline runs, test files accumulate `@ana A001` tags from dozens of different contracts. Pre-check matches any of them, producing false COVEREDs that degrade the signal.
verdict PASSscore 17 / 17findings 5 (0 risk · 2 debt · 3 obs)duration 21mrejection cycles 0shipped Apr 29, 2026surface cli
Pipeline timeline
Intent to proven code in 21m across Think, Plan, Build, and Verify.
Think8m
Plan8m
Build6m
Verify7m
Assertion ledger
17 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Scoped search uses git diff output instead of reading file contents | verified | ok |
| A002 | Only added lines from the diff are searched for tags | verified | ok |
| A003 | Deleted lines in the diff are not searched | verified | ok |
| A004 | Only comment lines are searched for tags | verified | ok |
| A005 | String literals containing @ana tags do not produce false matches | verified | ok |
| A006 | Old tags from prior features do not produce false covered results | verified | ok |
| A007 | New tags added on the feature branch are correctly detected | verified | ok |
| A008 | Tags in newly created test files are detected | verified | ok |
Findings 5 total
obs→ closed
Contract A016 value imprecise — says parsedMap.size equals 0 but implementation returns size 1 (entry with empty array) for deletion-only diffs
debtpackages/cli/tests/commands/verify.test.ts→ closed
Four pre-existing @ana tags mislabeled for this contract's IDs — A005 on fallback test, A006 on UNVERIFIABLE test, A010 on formatted output test, A011 on UNVERIFIABLE message test
obspackages/cli/src/commands/verify.ts→ closed
Comment filter only matches // and # — block comments (/* @ana A001 */) in added lines are silently ignored
obspackages/cli/src/commands/verify.ts→ closed
No size guard on git diff output — very large diffs loaded entirely into memory before parsing
debtpackages/cli/tests/commands/verify.test.ts→ closed
Substantial test setup duplication across 8 integration tests — each creates git repo, contract, hash, saves from scratch
Integrity seal
scopesha256:2b365e69f9ce2...
contractsha256:37cabad3bf6dc...
plansha256:94ecd908c8152...
specsha256:3c6c413f60418...
build-reportsha256:5382312bf69bf...
build-datasha256:fe0b6c289ea89...
verify-reportsha256:6a14b188f2ade...
verify-datasha256:f5530685ca069...
audit cmd$ ana proof audit diff-scoped-tag-search → all hashes match