Rename captureGate → testEvidenceGate (clean rename, no back-compat)
The `ana.json` flag `captureGate` doesn't describe what it does — it gates whether a `build_report.md` save must carry **real captured test-run evidence**. Worse, "capture" is *overloaded*: it names this subsystem (the "capture marker" / seal that proves tests ran) **and** the unrelated provenance subsystem (`processCapture` / `processCaptureStrict`, the harness payload). Two different things wearing one word.
verdict PASSscore 10 / 10findings 6 (0 risk · 2 debt · 4 obs)duration 2h 47mrejection cycles 0shipped Jun 9, 2026
Pipeline timeline
Intent to proven code in 2h 47m across Think, Plan, Build, and Verify.
Think84m
Plan33m
Build47m
Verify6m
Assertion ledger
10 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | New projects turn the test-evidence gate on under its new name | verified | ok |
| A002 | Turning the gate on requires test evidence before a build report saves | verified | ok |
| A003 | Turning the gate off lets a build report save without test evidence | verified | ok |
| A004 | A config with no gate setting is treated as off | verified | ok |
| A005 | The block message tells users about the testEvidenceGate setting | verified | ok |
| A006 | Setting the gate flag is recognized without a warning | verified | ok |
| A007 | Config files can carry the gate setting under its new name | verified | ok |
| A008 | The doctor view reports the gate state from the new key | verified | ok |
Findings 6 total
debtpackages/cli/src/utils/capture-marker.ts→ closed
Residual prose 'capture gate' (concept, not the symbol) survives the total rename in 4 source comments/JSDoc
debtpackages/cli/src/commands/artifact.ts→ acknowledge
artifact.ts comments still call the policy 'the capture gate' in prose (1041, 1073, 1495) — concept now named test-evidence gate
obspackages/cli/tests/utils/capture-marker.test.ts→ acknowledge
capture-marker.test.ts edited but absent from contract file_changes — a necessary consequence of renaming the exported evaluateCaptureGate/CaptureGateResult symbols
obspackages/cli/tests/commands/artifact.test.ts→ monitor
A004's tagged test exercises missing/malformed ana.json, not the precise 'valid config, flag absent' fail-safe; that exact case is covered untagged in init.test.ts
obspackages/cli/tests/commands/doctor.test.ts→ monitor
@ana A006 appears on both config.test.ts (this contract's KNOWN_FIELDS assertion) and doctor.test.ts (a predecessor contract's A006) — tags are not globally unique, muddying traceability
+1more findings
Provenance
Who ran what, and what it cost. Recomputable estimates from the shared price table — subordinate to the verdict, never gating.
model claude-opus-4-8
| session | turns | tools | in | out | cache | cost |
|---|---|---|---|---|---|---|
| plan | 59 | 26 | 4.0k | 33.6k | 1.6M | $2.04 |
| ana | 130 | 47 | 7.5k | 95.2k | 6.4M | $6.55 |
| build | 246 | 125 | 6.3k | 80.2k | 10.6M | $8.22 |
| verify | 64 | 28 | 6.2k | 20.9k | 1.5M | $1.77 |
| TOTAL 4 sessions | $18.58 (table 2026-06-14) | |||||
churn 15 files · +111/−105
completeness ✓ complete (plan 1/1 · build 1/1 · verify 1/1)
Integrity seal
scopesha256:0a8cfa55f425d...
contractsha256:ba2d93a9959fd...
plansha256:13ec65b204b59...
specsha256:4b4fe25053e08...
build-reportsha256:a38990cc8f861...
build-datasha256:33eafc9d3800f...
verify-reportsha256:97ebbf0efb8ff...
verify-datasha256:fe0c46c21b2de...
audit cmd$ ana proof audit rename-capturegate-testevidencegate → all hashes match