Surface Awareness Bridge

Make surface awareness visible and queryable beyond the pipeline. Stages 1 and 2 shipped surface detection (scan) and pipeline integration (ana.json schema, scope/plan/build/verify surface flow, proof chain surface field). But the rest of the system — proof chain queries, the quality dashboard, scaffold generators, diagnostics, and the Learn agent — doesn't expose surface knowledge yet. The system can USE surfaces but can't SHOW or QUERY them outside the pipeline flow.

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

Pipeline timeline

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

Think
10m
Plan
9m
Build
23m
Verify
7m

Assertion ledger

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

IDSaysMatcher
A001Health report for a specific surface only includes data from that surfaceverifiedok
A002Health report excludes entries from other surfacesverifiedok
A003Audit for a specific surface only shows findings from that surfaceverifiedok
A004Audit excludes findings from entries belonging to other surfacesverifiedok
A005An unknown surface name produces an error with available surface namesverifiedok
A006An unknown surface name exits with a non-zero codeverifiedok
A007Using --surface on a project without surfaces says they are not configuredverifiedok
A008The dashboard shows a By Surface section when entries have surface dataverifiedok

Findings 7 total

debtpackages/cli/tests/commands/work.test.tsclosed
A021 idempotency test checks pure function determinism, not backfill loop guard
obspackages/cli/src/commands/doctor.tsclosed
assessSurfaces reads ana.json independently — adds to known duplicate-read pattern (add-doctor-command-C3)
obspackages/cli/src/utils/proofSummary.tsclosed
Redundant type annotation: surface?: string | undefined — the ? already implies | undefined
obspackages/cli/src/commands/work.tsclosed
Backfill iterates all chain.entries on every work complete — O(n) with no short-circuit after first fully-backfilled run
obspackages/cli/src/commands/proof.tsclosed
Surface validation reads ana.json from disk on every --surface invocation — consistent with existing patterns but adds to file I/O per command
+2more findings

Integrity seal

scopesha256:adec39d426be0...
contractsha256:db111f789f875...
plansha256:fddb46174c91c...
specsha256:1127b8a4cc9b9...
build-reportsha256:8dcc2b6b06c8f...
build-datasha256:3159b50c5f585...
verify-reportsha256:b0d92b56caffc...
verify-datasha256:a24196da77338...
audit cmd$ ana proof audit surface-awareness-bridge   → all hashes match