Clean Ground for Foundation 3
Three small code fixes before Foundation 3 builds the developer-facing CLI surface on top of `writeProofChain` and `resolveFindingPaths`. Remove dead fallbacks, delete a stale test assertion, and add a glob result cache to `resolveFindingPaths`. The pipeline run doubles as Foundation 2's first non-meta verification — entry #23 is the first time a different scope's Verify agent produces companion YAML using the Foundation 2 template. After `work complete`, audit entry #23 against the Foundation 2 verification checklist.
verdict PASSscore 12 / 12findings 4 (0 risk · 0 debt · 4 obs)duration 46mrejection cycles 1shipped Apr 28, 2026surface cli
Pipeline timeline
Intent to proven code in 46m across Think, Plan, Build, and Verify.
Think20m
Plan20m
Build20m
Verify6m
Assertion ledger
12 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Dead fallback removed from findings resolution on new entry | verified | ok |
| A002 | Dead fallback removed from build concerns resolution on new entry | verified | ok |
| A003 | Backfill loop still guards against missing fields in historical entries | verified | ok |
| A004 | Both stale commit assertions are removed from artifact tests | verified | ok |
| A005 | Path resolver accepts an optional cache to avoid redundant filesystem scans | verified | ok |
| A006 | Cache defaults to a new Map so existing callers work unchanged | verified | ok |
| A007 | Cached basenames skip the filesystem glob on subsequent lookups | verified | ok |
| A008 | Glob results are stored in cache after first lookup | verified | ok |
Findings 4 total
obspackages/cli/tests/utils/proofSummary.test.ts→ closed
Pre-check tag collision — A001-A009 COVERED via tags from prior contracts, not new tags
obspackages/cli/src/utils/proofSummary.ts→ closed
globCache parameter widens the public API surface of an exported function
obspackages/cli/src/utils/proofSummary.ts→ closed
Cache never invalidated — stale if files created between resolveFindingPaths calls within one writeProofChain invocation
obspackages/cli/tests/utils/proofSummary.test.ts→ closed
vi.mock('glob') adds file-level module mock — correct for spying but implicit coupling to all glob-using tests
Integrity seal
scopesha256:1265cd9cea1ea...
contractsha256:95003ecb75f0d...
plansha256:4d31f2bc3505f...
specsha256:9c2a3c837606a...
build-reportsha256:09bf277f3459d...
build-datasha256:b90994a72bb08...
verify-reportsha256:503d9c3d8a660...
verify-datasha256:df2c1b52eda59...
audit cmd$ ana proof audit clean-ground → all hashes match