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.

Think
19m
Plan
11m
Build
1278m
Verify
126m

Assertion ledger

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

IDSaysMatcher
A001A degraded scan shows a warning instead of a success checkmarkverifiedok
A002A degraded scan tells the user what analysis was lost in plain languageverifiedok
A003A clean scan confirms no gaps were detectedverifiedok
A004Tree-sitter failures are described in human terms, not technical jargonverifiedok
A005The raw tree-sitter error message is not shown to the userverifiedok
A006Each blind spot shows its area and what went wrongverifiedok
A007Each blind spot shows how to resolve itverifiedok
A008No blind spots means no blind spot section is shownverifiedok

Findings 7 total

debtpackages/cli/tests/commands/init-preflight.test.tsclosed
A014 uses toBeGreaterThan(0) — weak assertion when specific count is knowable
debtpackages/cli/tests/commands/init-preflight.test.tsclosed
A015 uses toBeGreaterThanOrEqual(3) — specific count should be exactly 3 (user.name, user.email, gh)
obspackages/cli/templates/.claude/agents/ana-verify.mdclosed
ana-verify.md wording tweaked — out of scope, harmless formatting change
obspackages/cli/tests/commands/init.test.tsclosed
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.tsclosed
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