Pre-surface behavior cleanup

Clean up pre-surface-era code that's now inconsistent or dead. Three items share one disease: code written before surfaces existed that hasn't been updated to reflect the surface-aware world.

verdict PASSscore 14 / 15findings 6 (0 risk · 0 debt · 6 obs)duration 1h 6mrejection cycles 0shipped May 21, 2026surface cli

Pipeline timeline

Intent to proven code in 1h 6m across Think, Plan, Build, and Verify.

Think
26m
Plan
9m
Build
18m
Verify
8m

Assertion ledger

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

IDSaysMatcher
A001Proof chain gains a migrations field after work complete runsverifiedok
A002Surface backfill marker is set to true after backfill runsverifiedok
A003Lesson-to-closed marker is set to trueverifiedok
A004Surface backfill loop is skipped when marker is already presentverifiedok
A005Entries without surface remain unchanged when backfill is skippedverifiedok
A006Lesson migration code is removed from the maintenance loopverifiedok
A007The lesson backward-compat line in computeChainHealth is preservedverifiedok
A008Outer surface guard uses simplified check instead of Object.keys lengthverifiedok

Findings 6 total

obsclosed
Contract A010 spec error — assumes ?: implies | undefined but exactOptionalPropertyTypes: true makes them distinct. Proposed change would break compilation.
obspackages/cli/tests/commands/work.test.tsclosed
Migration marker tests use heavyweight completeWork integration path — each test creates a full git repo, plan artifacts, and runs the complete flow for a 4-line code change
obspackages/cli/src/commands/work.tsclosed
Bracket notation inconsistency: backfill guard uses chain.migrations?.['surface_backfill'] but marker is set with dot notation via spread
obsclosed
surface-awareness-bridge-C4 directly resolved — backfill now gated by migration marker, no longer O(n) on every work complete
obsclosed
remove-lesson-status-C1 directly resolved — migration marker behavior now has dedicated tests
+1more findings

Integrity seal

scopesha256:606e503bf2613...
contractsha256:4ede6d351999c...
plansha256:f82670a63e4b9...
specsha256:8e18af60e79bb...
build-reportsha256:d51fa1ff71174...
build-datasha256:062f5b76a06c0...
verify-reportsha256:ce65c5d975056...
verify-datasha256:9d9a46e58adc4...
audit cmd$ ana proof audit proof-migration-cleanup   → all hashes match