Init must surface scan quality and pipeline readiness
`ana init` tells users what it found but never what it missed. Tree-sitter failures are silently swallowed — the user sees "Analysis complete" with a checkmark and walks away thinking they got a full deep scan when they got surface-tier only. Init also never checks whether the tools needed for the pipeline (`gh`, `git user.name`/`user.email`) are available, leaving users to discover gaps at the worst time — mid-pipeline, after investing real work. The user wants init to be honest about scan quality and upfront about what the pipeline needs.
verdict PASSscore 22 / 22findings 7 (0 risk · 2 debt · 5 obs)duration 23h 35mrejection cycles 1shipped May 10, 2026surface cli
Pipeline timeline
Intent to proven code in 23h 35m across Think, Plan, Build, and Verify.
Think19m
Plan11m
Build1278m
Verify126m
Assertion ledger
22 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | A degraded scan shows a warning instead of a success checkmark | verified | ok |
| A002 | A degraded scan tells the user what analysis was lost in plain language | verified | ok |
| A003 | A clean scan confirms no gaps were detected | verified | ok |
| A004 | Tree-sitter failures are described in human terms, not technical jargon | verified | ok |
| A005 | The raw tree-sitter error message is not shown to the user | verified | ok |
| A006 | Each blind spot shows its area and what went wrong | verified | ok |
| A007 | Each blind spot shows how to resolve it | verified | ok |
| A008 | No blind spots means no blind spot section is shown | verified | ok |
Findings 7 total
debtpackages/cli/tests/commands/init-preflight.test.ts→ closed
A014 uses toBeGreaterThan(0) — weak assertion when specific count is knowable
debtpackages/cli/tests/commands/init-preflight.test.ts→ closed
A015 uses toBeGreaterThanOrEqual(3) — specific count should be exactly 3 (user.name, user.email, gh)
obspackages/cli/templates/.claude/agents/ana-verify.md→ closed
ana-verify.md wording tweaked — out of scope, harmless formatting change
obspackages/cli/tests/commands/init.test.ts→ closed
A018/A019/A020 assert on template source content — violates 'never assert on source code content' rule but acceptable for static templates
obspackages/cli/tests/commands/init.test.ts→ closed
A022 asserts on scan-engine.ts source content — same pattern, acceptable for 'not modified' assertion
+2more findings
Integrity seal
scopesha256:f9aeaa5dd9c3d...
contractsha256:fa21c1b5d37eb...
plansha256:50d38ccbbf1cf...
specsha256:1d4659af029ff...
build-reportsha256:2bb251a5e9fc1...
build-datasha256:e22143a0341d4...
verify-reportsha256:799e168b2e690...
verify-datasha256:1ce317f26164d...
audit cmd$ ana proof audit init-scan-quality → all hashes match