Test Suite Hygiene
Clean the edges of a fundamentally sound 2000+ test suite. Over 64 pipeline runs, tests have accumulated that don't test behavior: source-reading tests that grep `.ts` files for strings, archaeological tests verifying deleted code stays deleted, mislabeled tests whose names contradict their assertions, weak assertions using `toBeDefined()` on deterministic fields, and dead test helper exports. The suite passes — but passing means less when some tests assert nothing meaningful. This is a hygiene pass, not a rewrite.
verdict PASSscore 30 / 30findings 5 (0 risk · 3 debt · 2 obs)duration 5h 57mrejection cycles 1shipped May 8, 2026surface cli
Pipeline timeline
Intent to proven code in 5h 57m across Think, Plan, Build, and Verify.
Think47m
Plan9m
Build169m
Verify27m
Assertion ledger
30 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Source-reading test that greps production source for --json option registration is removed | verified | ok |
| A002 | Source-reading test that greps skills.ts for branchPrefix is removed | verified | ok |
| A003 | Archaeological source-reading test for step 9a fixup is removed | verified | ok |
| A004 | Import boundary test in proofSummary has an exemption comment explaining why source-reading is acceptable | verified | ok |
| A005 | Import boundary test in verify has an exemption comment | verified | ok |
| A006 | Template tests have comments explaining templates are shipped artifacts | verified | ok |
| A007 | The entire old-system-removed test file is deleted | verified | ok |
| A008 | The cleanup directory is deleted after removing its only file | verified | ok |
Findings 5 total
debtpackages/cli/tests/commands/proof.test.ts→ closed
proof.test.ts L744 redundant toBeTruthy guard before non-null assertion
debtpackages/cli/tests/utils/proofSummary.test.ts→ scope
proofSummary.test.ts parseFindings uses toBeGreaterThanOrEqual on deterministic fixture data
debtpackages/cli/tests/e2e/init-flow.test.ts→ scope
E2E scan regression test uses 5 sole toBeDefined() assertions on scan.json keys
obspackages/cli/tests/utils/proofSummary.test.ts→ closed
Previous Callouts in fixture template strings — stale naming preserved as backward-compat fixtures
obspackages/cli/tests/e2e/init-flow.test.ts→ closed
New conditional skills E2E test depends on scan engine heuristics for prisma/anthropic-sdk detection
Integrity seal
scopesha256:8d665a27a0693...
contractsha256:970febcff1c69...
plansha256:7471595489c6d...
specsha256:fac4c780d645d...
build-reportsha256:dd9623d2836ea...
build-datasha256:a51d08c95e713...
verify-reportsha256:e506787f4c267...
verify-datasha256:145771fd68412...
audit cmd$ ana proof audit test-suite-hygiene → all hashes match