Clean proofSummary.ts

`proofSummary.ts` is the hottest file in the system — 1865 lines, 8 active findings, touched by 7 pipeline runs. It carries a dead predecessor function (86 lines, zero production callers), a loose type that hides behind a cast, and a path-matching bug that produces false positives in monorepos. Three independent fixes, one file, the diff mostly red. Clean the file every pipeline run reads.

verdict PASSscore 15 / 15findings 5 (0 risk · 2 debt · 3 obs)duration 3h 44mrejection cycles 0shipped May 2, 2026surface cli

Pipeline timeline

Intent to proven code in 3h 44m across Think, Plan, Build, and Verify.

Think
8m
Plan
8m
Build
208m
Verify
8m

Assertion ledger

15 claims, each independently verified. Showing 8 — show all →

IDSaysMatcher
A001The dead generateActiveIssuesMarkdown function is removed from the codebaseverifiedok
A002The dead ProofChainEntryForIndex interface is removedverifiedok
A003The dead MAX_ACTIVE_ISSUES constant is removedverifiedok
A004FindingWithFeature interface is preserved for generateDashboardverifiedok
A005The dashboard function is unchanged except for a comment updateverifiedok
A006Proof result type only allows PASS, FAIL, or UNKNOWN — not any stringverifiedok
A007The parseResult function return type matches the tightened unionverifiedok
A008The type cast workaround in work.ts is no longer neededverifiedok

Findings 5 total

debtpackages/cli/src/utils/proofSummary.tsclosed
Redundant `stored === queried` in both-directories guard — exact match already caught at line 1641
obspackages/cli/src/utils/proofSummary.tsclosed
`as 'PASS' | 'FAIL'` cast in parseResult relies on regex constraint, not type-level proof — safe but brittle if regex changes
debtpackages/cli/tests/utils/proofSummary.test.tsclosed
A010-A012 use toBeGreaterThan(0) instead of toBe(1) — each test creates exactly one finding, so the specific count is known
obspackages/cli/src/utils/proofSummary.tsclosed
fileMatches `includes('/')` treats `./census.ts` as directory-qualified — theoretical false negative for dot-slash prefixed paths
obsclosed
Stale finding 'fileMatches overmatch on same-basename different-directory paths' likely resolved by this build

Integrity seal

scopesha256:a62947b834502...
contractsha256:4d40ab536982c...
plansha256:7dc8d2713815d...
specsha256:c84b0a26d8e9f...
build-reportsha256:0f071498ccbb9...
build-datasha256:0496c0947c517...
verify-reportsha256:bac2fcd4dc31c...
verify-datasha256:83e16e629825e...
audit cmd$ ana proof audit clean-proofsummary   → all hashes match