diff --git a/packages/paperclip-runner/docs/design/phase-6-thin-paperclip-adapter.md b/packages/paperclip-runner/docs/design/phase-6-thin-paperclip-adapter.md index 0521abf97ac..854b0abc563 100644 --- a/packages/paperclip-runner/docs/design/phase-6-thin-paperclip-adapter.md +++ b/packages/paperclip-runner/docs/design/phase-6-thin-paperclip-adapter.md @@ -1,6 +1,6 @@ # Phase 6 Thin Paperclip Adapter Boundary -Status: design approved; remediation 4 implemented; CTO conformance re-review pending +Status: design approved; remediation 8 documentation reconciliation complete; final CTO gate pending Date: 2026-08-09 Decision scope: the first feature-flagged Paperclip native run, including the normative native finalizer and server-owned Section 18 status arbitration @@ -932,7 +932,7 @@ additional resolver kinds remain deferred. The provisional list and seam amendments above remain the decision history. For final diff auditing, their authoritative union is the following exact -93-file allowlist. It matches the Phase 6 branch diff from the parent of the +89-file allowlist. It matches the Phase 6 branch diff from the parent of the authorization commit through this remediation, including the package README, the Section 18.13 checker, package/runtime tests, `canonical.ts`, and `runtime-mode.test.ts`. No file outside this list is authorized as Phase 6 work. @@ -954,21 +954,17 @@ packages/db/src/schema/status_decision_effects.ts packages/db/src/schema/status_decisions.ts packages/db/src/schema/work_assessments.ts packages/paperclip-runner/README.md -packages/paperclip-runner/docs/architecture.md packages/paperclip-runner/docs/design/phase-6-thin-paperclip-adapter.md packages/paperclip-runner/docs/index.md packages/paperclip-runner/docs/phase-06-thin-paperclip-adapter.md packages/paperclip-runner/docs/tutorials/phase-06-thin-paperclip-adapter.md packages/paperclip-runner/knowledge/evidence/2026-08-09-phase-06-verification.md packages/paperclip-runner/knowledge/evidence/index.md -packages/paperclip-runner/knowledge/journal/2026-08-09-phase-06-design.md packages/paperclip-runner/knowledge/journal/2026-08-09-phase-06-implementation.md packages/paperclip-runner/knowledge/journal/index.md packages/paperclip-runner/knowledge/log.md packages/paperclip-runner/package.json packages/paperclip-runner/spec/fixtures/status-authority-phase5.json -packages/paperclip-runner/spec/paperclip-native-runner-implementation-plan.md -packages/paperclip-runner/spec/paperclip-native-runner-spike-spec.md packages/paperclip-runner/src/backends/codex-native-backend.ts packages/paperclip-runner/src/backends/harness-driver-backend.test.ts packages/paperclip-runner/src/backends/harness-driver-backend.ts diff --git a/packages/paperclip-runner/docs/tutorials/phase-06-thin-paperclip-adapter.md b/packages/paperclip-runner/docs/tutorials/phase-06-thin-paperclip-adapter.md index f7bfecfb672..0a8f394635c 100644 --- a/packages/paperclip-runner/docs/tutorials/phase-06-thin-paperclip-adapter.md +++ b/packages/paperclip-runner/docs/tutorials/phase-06-thin-paperclip-adapter.md @@ -36,9 +36,10 @@ pnpm --filter @paperclipai/paperclip-runner trace:phase6 -- \ --target mock --scenario happy-path ``` -Expected: six targeted tests pass and the trace reports `resolvedMode` as -`native`, three replay-stable events, a successful workspace barrier, and one -mock server-owned `done` decision. This tracer does not connect to Paperclip. +Expected: four targeted files and seven tests pass, and the trace reports +`resolvedMode` as `native`, three replay-stable events, a successful workspace +barrier, and one mock server-owned `done` decision. This tracer does not connect +to Paperclip. ## 2. Prove the database-backed Paperclip port diff --git a/packages/paperclip-runner/knowledge/evidence/2026-08-09-phase-06-verification.md b/packages/paperclip-runner/knowledge/evidence/2026-08-09-phase-06-verification.md index ac4ac74aef4..b8afb062cc4 100644 --- a/packages/paperclip-runner/knowledge/evidence/2026-08-09-phase-06-verification.md +++ b/packages/paperclip-runner/knowledge/evidence/2026-08-09-phase-06-verification.md @@ -13,9 +13,10 @@ This record verifies the default-off Phase 6 tracer at the approved `ControlPlanePort`/`NativeSessionBackend` boundary. No browser surface changed, so Phase 6 has command/database evidence rather than screenshots. -The counts below are the PAP-16880 remediation rerun. “Internal canary” means -the selected-task database test through the public package session contract; -it does not mean that a new live Codex provider task was dispatched. +The counts below are from the remediation-7 final rerun on 2026-08-09. +“Internal canary” means the selected-task database test through the public +package session contract; it does not mean that a new live Codex provider task +was dispatched. # Package contract and mock tracer @@ -150,9 +151,35 @@ The final rerun on 2026-08-09 produced: - runner documentation validation: 58 links and the 25-concept/four-index OKF bundle passed; - server TypeScript and runner TypeScript/protocol typechecks passed; -- the design's authoritative 93-file allowlist matched the Phase 6 diff exactly; +- the design's authoritative 89-file allowlist matched the Phase 6 diff exactly; - `git diff --check` passed. +The exact-file claim is mechanically fail-closed. This comparison extracts the +authoritative fenced block, asserts its count, and then compares it with the +committed Phase 6 diff. Any missing or extra path makes `diff` return non-zero: + +```sh +PHASE6_SCRATCH="${PAPERCLIP_RUN_SCRATCH_DIR:-$(mktemp -d)}" +PHASE6_ALLOWLIST="$PHASE6_SCRATCH/phase6-allowlist.txt" +PHASE6_ACTUAL="$PHASE6_SCRATCH/phase6-actual.txt" + +awk ' + /^### Remediation 7 authoritative exact-file reconciliation / { section = 1; next } + section && /^```text$/ { block = 1; next } + block && /^```$/ { exit } + block { print } +' packages/paperclip-runner/docs/design/phase-6-thin-paperclip-adapter.md \ + | LC_ALL=C sort > "$PHASE6_ALLOWLIST" +git diff --name-only 3a38c8f931..HEAD \ + | LC_ALL=C sort > "$PHASE6_ACTUAL" +test "$(wc -l < "$PHASE6_ALLOWLIST")" -eq 89 +test "$(wc -l < "$PHASE6_ACTUAL")" -eq 89 +diff -u "$PHASE6_ALLOWLIST" "$PHASE6_ACTUAL" +``` + +Result: exit 0 with no diff output; 89 documented paths, 89 committed paths, +zero missing, and zero extra. + The final owner review traced the successful audit-only path as `PaperclipControlPlanePort.completeRun -> native_run_results -> finalizeNativeRun -> routePersistedNativeResultAttention -> @@ -168,6 +195,14 @@ create another assessment or mutate the interaction timestamp. Missing or cross-company targets throw before the coordinator commits and enter named retryable recovery with the issue status/version unchanged. +# Remediation 8 documentation self-review + +The final documentation review confirmed that the exact allowlist is the same +89-path set as `git diff --name-only 3a38c8f931..HEAD`, the status header records +the remediation-8/final-gate state, this evidence identifies the remediation-7 +final rerun, and the tutorial expects four package files and seven tests. The +reconciliation changes documentation only and does not alter runtime behavior. + # Compile and migration checks ```sh diff --git a/packages/paperclip-runner/knowledge/journal/2026-08-09-phase-06-implementation.md b/packages/paperclip-runner/knowledge/journal/2026-08-09-phase-06-implementation.md index bdf064a3077..2543e1e84ba 100644 --- a/packages/paperclip-runner/knowledge/journal/2026-08-09-phase-06-implementation.md +++ b/packages/paperclip-runner/knowledge/journal/2026-08-09-phase-06-implementation.md @@ -123,8 +123,9 @@ existing server authority and keep legacy execution as the default. result persistence, the finalizer alone commits the zero-decision outcome, the internal router binds the exact same-company interaction, and committed replay short-circuits without another assessment or target mutation. -- The design's authoritative 93-file allowlist was mechanically compared with - the Phase 6 branch diff and had no missing or extra path, including the README, +- The remediation-8 documentation reconciliation corrected the design's + authoritative allowlist to 89 files and mechanically compared it with the + Phase 6 branch diff with no missing or extra path, including the README, spec checker, canonical helper, runtime-mode test, and database-backed port test paths.