Files
PaperClipAI/packages/paperclip-runner/docs/phase-07-future-binding-boundary.md
T
DottaandClaude Opus 4.8 ab7b85878a docs(runner): strip leaked generation wrappers, sync Phase 7 counts, guard against regressions
Remove trailing generation-wrapper markup (</content>, plus </invoke> in the
tutorial) that had leaked at EOF into eleven committed Phase 7 reference,
tutorial, evidence, and OKF-journal files.

Sync the stated suite counts in the current-state docs (tutorial,
scenario-explorer reference, verification-commands reference, and OKF journal)
to the verified results: test:phase7 49, test:browser:phase7 25,
docs:validate 73 files / 28 OKF concepts / 5 indexes. Drop a brittle wall-clock
timing from the journal. The dated 7F verification evidence and log.md milestone
entry keep their point-in-time 45/19 figures on purpose.

Add a wrapper-markup guard to docs:validate (via scripts/lib/doc-wrappers.mjs)
that fails with the exact file and line when generator envelope tags reappear,
plus a node:test regression suite wired into the package test script.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-09 14:46:49 +00:00

2.4 KiB

Phase 7 Future Binding Boundary (Phase 8 / ACPX)

Phase 7 is a package-local model. It does not integrate the runner into Paperclip, and it must not. This page states exactly what Phase 7 defers to Phase 8 and what clean seam it preserves so the deferral stays cheap.

What Phase 7 does not do

Nothing in Phase 7 contacts a real Paperclip control plane, database, ACPX session, or provider credential. The 106-case conformance suite and the browser explorer run entirely against the in-process mock ControlPlanePort and checked-in fixtures. The forbidden-imports boundary rejects any import that crosses into server/, ui/, cli/, @paperclipai/db, or other Paperclip workspace internals.

The preserved seam

The dependency arrow always points from an implementation toward a contract. The package owns two contracts a future consumer implements:

  • ControlPlanePort — the narrow surface through which a runner opens a run, appends ordered events, records semantic operations, and submits a terminal result. Phase 7 injects the mock adapter behind this port; Phase 8 injects a real one. The catalog, authorization engine, and conformance suite bind to the port, not to any adapter.
  • NativeSessionBackend — the normalized session surface for a future control-plane consumer.

Because the port is the only coupling point, Phase 8 replaces the adapter without touching the tool catalog, the authorization rules, or the eval-derived conformance suite. The package remains independently buildable, testable, and runnable against the mock adapter after the real one exists.

What Phase 8 (ACPX) will bind

Phase 8 binds a real Paperclip ControlPlanePort implementation behind the same seam so the semantic tools and authorization engine act against a live control plane instead of the mock. That work is out of scope here and requires separate CTO approval at the Phase 7 checkpoint (PAP-16908). Until then:

  • ACPX is Phase 8, not Phase 7.
  • No Phase 7 documentation claims Phase 8 capability.
  • Real integration is a separately reviewed phase, consistent with the future integration rule recorded for every prior phase.