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.
Think10m
Plan9m
Build23m
Verify7m
Assertion ledger
25 claims, each independently verified. Showing 8 — show all →
| ID | Says | Matcher | |
|---|---|---|---|
| A001 | Health report for a specific surface only includes data from that surface | verified | ok |
| A002 | Health report excludes entries from other surfaces | verified | ok |
| A003 | Audit for a specific surface only shows findings from that surface | verified | ok |
| A004 | Audit excludes findings from entries belonging to other surfaces | verified | ok |
| A005 | An unknown surface name produces an error with available surface names | verified | ok |
| A006 | An unknown surface name exits with a non-zero code | verified | ok |
| A007 | Using --surface on a project without surfaces says they are not configured | verified | ok |
| A008 | The dashboard shows a By Surface section when entries have surface data | verified | ok |
Findings 7 total
debtpackages/cli/tests/commands/work.test.ts→ closed
A021 idempotency test checks pure function determinism, not backfill loop guard
obspackages/cli/src/commands/doctor.ts→ closed
assessSurfaces reads ana.json independently — adds to known duplicate-read pattern (add-doctor-command-C3)
obspackages/cli/src/utils/proofSummary.ts→ closed
Redundant type annotation: surface?: string | undefined — the ? already implies | undefined
obspackages/cli/src/commands/work.ts→ closed
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.ts→ closed
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