Clear the Deck Phase 2
Continuation of Clear the Deck. Phase 1 fixed 7 items identified by the proof chain — types, ESLint, dead tests, save-all parity, custom namespace. Phase 2 cleans the next layer: agent templates running at 20% context capacity, a callout file resolution gap that affects customer repos, missing test coverage for proof chain accumulation, and small corrections across the pipeline.
verdict PASSscore 21 / 21findings 5 (0 risk · 0 debt · 5 obs)duration 31mrejection cycles 0shipped Apr 27, 2026surface cli
Pipeline timeline
Intent to proven code in 31m across Think, Plan, Build, and Verify.
Think8m
Plan8m
Build16m
Verify7m
Assertion ledger
21 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Every agent session gets the full 1M context window | verified | ok |
| A002 | Verify asks the developer before starting verification | verified | ok |
| A003 | Build no longer tells agents to skip asking permission | verified | ok |
| A004 | Verify callouts use project-relative paths for better data quality | verified | ok |
| A005 | Setup reads validation schema files to understand project patterns | verified | ok |
| A006 | Setup surfaces validation and test findings in the context draft | verified | ok |
| A007 | Setup reads auth config when the project has authentication | verified | ok |
| A008 | The confusing slugDir2 variable name is cleaned up | verified | ok |
Findings 5 total
obspackages/cli/src/commands/work.ts→ closed
Defensive `|| []` on guaranteed field: `packages/cli/src/commands/work.ts:809` — `entry.build_concerns || []` is passed to `resolveCalloutPaths` even though `build_concerns` is set to `proof.build_concerns ?? []` two lines above (line 803). The `|| []` is dead code for the new entry path. For existing entries at line 814, `|| []` remains useful since chain data from JSON could theoretically lack the field despite backfill. Harmless but slightly misleading on line 809.
obspackages/cli/src/utils/proofSummary.ts→ closed
globSync has no performance guard: `packages/cli/src/utils/proofSummary.ts:345-349` — `globSync('/' + basename, { cwd: projectRoot, ... })` traverses the entire project tree synchronously for each unresolved basename. Called up to 4 times per `writeProofChain` invocation (2 for new entry, 2 for each existing entry). On large monorepos this could be slow. No timeout, no file count limit, no early termination. Currently harmless — callout counts are small — but worth noting if the proof chain grows to dozens of entries with unresolved basenames.
obs→ closed
Template assertions rely on tag collision for coverage: Contract assertions A001-A007 target template content. Pre-check reports COVERED because `@ana A001` etc. tags exist in test files from OTHER features. No test in this build actually verifies template frontmatter values or template content. Templates are text-only, so manual verification (which I performed) is the correct approach, but the coverage signal is misleading.
obspackages/cli/templates/.claude/agents/ana-setup.md→ closed
AC6 mentions "test patterns" but template omits them: The spec says "validation schemas and test patterns surfaced in Step 5 draft." The template at `packages/cli/templates/.claude/agents/ana-setup.md:261` says "Include validation patterns and auth setup" — no mention of test patterns. The contract assertion (A006) only checks for "validation" so it passes, but the next spec for setup should consider whether test pattern surfacing belongs in the architecture draft.
obspackages/cli/src/utils/proofSummary.ts→ closed
globSync exception if projectRoot is invalid: `packages/cli/src/utils/proofSummary.ts:345` — If `projectRoot` points to a non-existent directory, `globSync` will throw. The callers in `work.ts` pass `projectRoot` from `writeProofChain`'s parameter, which comes from `findProjectRoot()` — a validated path. But `resolveCalloutPaths` doesn't validate its own input. Consistent with the existing pattern (no defensive validation in utility functions), but worth knowing.
Integrity seal
scopesha256:b9106937887df...
contractsha256:e0f767bf92303...
plansha256:57334305a3c8e...
specsha256:8c04cf1f3706d...
build-reportsha256:2ff4cc55a9a77...
verify-reportsha256:547440cc887e1...
audit cmd$ ana proof audit clear-the-deck-2 → all hashes match