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.

Think
20m
Plan
20m
Build
20m
Verify
6m

Assertion ledger

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

IDSaysMatcher
A001Dead fallback removed from findings resolution on new entryverifiedok
A002Dead fallback removed from build concerns resolution on new entryverifiedok
A003Backfill loop still guards against missing fields in historical entriesverifiedok
A004Both stale commit assertions are removed from artifact testsverifiedok
A005Path resolver accepts an optional cache to avoid redundant filesystem scansverifiedok
A006Cache defaults to a new Map so existing callers work unchangedverifiedok
A007Cached basenames skip the filesystem glob on subsequent lookupsverifiedok
A008Glob results are stored in cache after first lookupverifiedok

Findings 4 total

obspackages/cli/tests/utils/proofSummary.test.tsclosed
Pre-check tag collision — A001-A009 COVERED via tags from prior contracts, not new tags
obspackages/cli/src/utils/proofSummary.tsclosed
globCache parameter widens the public API surface of an exported function
obspackages/cli/src/utils/proofSummary.tsclosed
Cache never invalidated — stale if files created between resolveFindingPaths calls within one writeProofChain invocation
obspackages/cli/tests/utils/proofSummary.test.tsclosed
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