Skip to content

Commit 7ca95f0

Browse files
Merge pull request #144 from engineeredsoftware/v39/gate-9-interface-conversation-product-parity
V39 Gate 9: Interface And Conversation Product Parity
2 parents b6a592f + 217211a commit 7ca95f0

28 files changed

Lines changed: 2288 additions & 7 deletions

.bitcode/v39-interface-conversation-product-parity.json

Lines changed: 500 additions & 0 deletions
Large diffs are not rendered by default.

.github/workflows/bitcode-canon-quality.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,9 @@ jobs:
205205
if [ -f scripts/check-v39-gate8-operational-telemetry-repair-readback.mjs ]; then
206206
node scripts/check-v39-gate8-operational-telemetry-repair-readback.mjs --skip-branch-check --skip-package-tests --skip-uapi-tests
207207
fi
208+
if [ -f scripts/check-v39-gate9-interface-conversation-product-parity.mjs ]; then
209+
node scripts/check-v39-gate9-interface-conversation-product-parity.mjs --skip-branch-check --skip-package-tests --skip-interface-tests
210+
fi
208211
fi
209212
else
210213
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2

.github/workflows/bitcode-gate-quality.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,9 @@ jobs:
334334
if [ -f scripts/check-v39-gate8-operational-telemetry-repair-readback.mjs ]; then
335335
node scripts/check-v39-gate8-operational-telemetry-repair-readback.mjs --skip-branch-check --skip-package-tests --skip-uapi-tests
336336
fi
337+
if [ -f scripts/check-v39-gate9-interface-conversation-product-parity.mjs ]; then
338+
node scripts/check-v39-gate9-interface-conversation-product-parity.mjs --skip-branch-check --skip-package-tests --skip-interface-tests
339+
fi
337340
fi
338341
else
339342
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
@@ -413,6 +416,7 @@ jobs:
413416
pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --runTestsByPath src/__tests__/asset-pack-preview-boundary.test.ts --runInBand --forceExit
414417
pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --runTestsByPath src/__tests__/asset-pack-settlement-rights-delivery.test.ts --runInBand --forceExit
415418
pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --runTestsByPath src/__tests__/reading-operational-telemetry-repair-readback.test.ts --runInBand --forceExit
419+
pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --runTestsByPath src/__tests__/reading-interface-product-parity.test.ts --runInBand --forceExit
416420
pnpm --filter @bitcode/api exec jest --config jest.config.cjs --runTestsByPath src/conversations/__tests__/stream-events.test.ts src/conversations/__tests__/privacy.test.ts src/conversations/__tests__/telemetry.test.ts --runInBand --forceExit
417421
pnpm --dir packages/protocol exec node --test --test-force-exit test/conversation-telemetry-proof-hooks.test.js
418422
pnpm --dir packages/protocol exec node --test --test-force-exit test/conversation-rehearsal.test.js
@@ -447,6 +451,9 @@ jobs:
447451
if [ -f packages/protocol/test/v38-promotion-readiness.test.js ]; then
448452
pnpm --dir packages/protocol exec node --test --test-force-exit test/v38-promotion-readiness.test.js
449453
fi
454+
if [ -f packages/protocol/test/v39-interface-conversation-product-parity.test.js ]; then
455+
pnpm --dir packages/protocol exec node --test --test-force-exit test/v39-interface-conversation-product-parity.test.js
456+
fi
450457
pnpm --filter @bitcode/protocol test
451458
452459
- name: Test staged Reading route and Terminal harness contracts
@@ -469,6 +476,7 @@ jobs:
469476
tests/api/conversationTelemetryProofHooks.test.ts \
470477
tests/conversationTelemetryProofPanel.test.tsx \
471478
tests/api/conversationRehearsal.test.ts \
479+
tests/api/conversationReadingInterfaceParity.test.ts \
472480
tests/conversationRehearsalPanel.test.tsx \
473481
tests/conversationSourceSelector.test.tsx \
474482
tests/conversationWritingWorkspace.test.tsx \

BITCODE_SPEC_V39.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,20 @@ checked by `pnpm run check:v39-gate8`.
218218
Gate 9 brings Conversation, MCP/API, ChatGPT App, and package-facing interfaces into the same Reading contract without creating parallel authority.
219219
Every interface must respect accepted-Need gating, source-safe preview, settlement unlock, BTD rights, and delivery boundaries.
220220

221+
The package-owned closure type is `ReadingInterfaceProductParity` in
222+
`packages/pipelines/asset-pack/src/reading-interface-product-parity.ts`.
223+
It projects Terminal, Conversation, public API, MCP API, ChatGPT App, and
224+
package-consumer surfaces into one source-safe contract. Conversation is a
225+
Terminal-delegated handoff, package consumers receive contract readback only,
226+
and API/MCP/ChatGPT actions compose the existing BTD interface contract,
227+
read-license, AssetPack-rights, telemetry hook, and consumer UX primitives.
228+
Every `ReadingInterfaceProductParityRow` proves accepted-Need gating,
229+
Finding Fits admission, source-safe preview, settlement unlock, BTD rights,
230+
authorized delivery, no parallel authority, and locked source-bearing delivery
231+
before settlement and rights transfer. The deterministic source-safe proof
232+
artifact is `.bitcode/v39-interface-conversation-product-parity.json`,
233+
checked by `pnpm run check:v39-gate9`.
234+
221235
### Gate 10: Local And Staging Commercial Reading Rehearsal
222236

223237
Gate 10 proves V39 locally and in staging-testnet.

BITCODE_SPEC_V39_DELTA.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,11 @@ Closure acceptance:
216216

217217
Closure implementation:
218218

219-
- Pending Gate 9 work must define interface parity artifacts and consumer contract tests.
219+
- `ReadingInterfaceProductParity` is implemented in `packages/pipelines/asset-pack/src/reading-interface-product-parity.ts` and persisted under `reading/interfaces`.
220+
- Terminal, Conversation, public API, MCP API, ChatGPT App, and package consumers have parity rows with `sameAuthorityAsTerminal: true`, `parallelAuthorityCreated: false`, accepted-Need gating, source-safe preview, settlement unlock, BTD rights, and delivery-boundary checks.
221+
- The parity primitive composes BTD interface catalog, read-license/AssetPack-rights contracts, telemetry proof hooks, and interface consumer UX proof roots.
222+
- Focused package, Conversation, MCP, ChatGPT App, protocol, and checker tests cover no-bypass posture.
223+
- The generated proof artifact is `.bitcode/v39-interface-conversation-product-parity.json`; `pnpm run check:v39-gate9` validates artifact freshness, protocol tests, package tests, interface tests, docs, source safety, and workflow wiring.
220224

221225
### Gate 10: Local And Staging Commercial Reading Rehearsal
222226

BITCODE_SPEC_V39_NOTES.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,16 @@ compact row-by-row stream while preserving expandable source-safe metadata.
277277
## Gate 9 implementation notes
278278

279279
Gate 9 closes interface and Conversation product parity. Conversation, MCP/API, ChatGPT App, and package consumers may assist the flow but cannot bypass accepted-Need gating, preview disclosure, settlement, rights, or delivery law.
280+
`ReadingInterfaceProductParity` is the package-owned readback for that law. It
281+
binds Terminal, Conversation, public API, MCP API, ChatGPT App, and package
282+
consumer rows to the same Terminal Reading authority. Conversation remains a
283+
source-safe Terminal handoff rather than a second Reading authority. Package
284+
consumers can read contract roots and no-bypass posture but cannot authorize
285+
delivery. API/MCP/ChatGPT rows reuse BTD interface catalog,
286+
read-license/AssetPack-rights, telemetry-hook, and consumer-UX roots. The
287+
runtime and generated artifact both forbid protected source, raw protected
288+
prompts, raw interpolated prompts, raw provider responses, unpaid AssetPack
289+
source, wallet private material, private settlement payloads, and credentials.
280290

281291
## Gate 10 implementation notes
282292

BITCODE_SPEC_V39_PARITY_MATRIX.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ No `_legacy/` source is active source truth.
7777
| AssetPack preview and quote boundary | Gate 6 | `packages/pipelines/asset-pack/src/asset-pack-preview-boundary.ts`, `.bitcode/v39-assetpack-preview-quote-boundary.json`, package tests, protocol tests | implemented | Preview exposes source-safe measurements, deterministic quote, settlement instructions, and withheld delivery posture without source-bearing AssetPack content. |
7878
| Settlement, BTD rights, and delivery | Gate 7 | `packages/pipelines/asset-pack/src/asset-pack-settlement-rights-delivery.ts`, `.bitcode/v39-settlement-rights-delivery.json`, BTD receipt/source-to-shares/reconciliation primitives, package tests, protocol tests | implemented | Payment unlocks rights and delivery only when finality, source-to-shares, BTD rights, reconciliation, and pull-request delivery agree; repair paths are auditable. |
7979
| Operational telemetry and repair | Gate 8 | `ReadingOperationalTelemetryRepairReadback`, `.bitcode/v39-operational-telemetry-repair-readback.json`, package tests, UI tests, protocol tests | implemented | Reading is observable and repairable end to end through source-safe stream events, operator readback, runbook hooks, proof roots, and repair commands. |
80-
| Interface and Conversation parity | Gate 9 | Conversation, MCP/API, ChatGPT App, package contract tests | pending | Interfaces follow Terminal authority and cannot bypass gating, preview, settlement, rights, or delivery boundaries. |
80+
| Interface and Conversation parity | Gate 9 | `ReadingInterfaceProductParity`, `.bitcode/v39-interface-conversation-product-parity.json`, package/Conversation/MCP/ChatGPT/protocol tests | implemented | Terminal, Conversation, public API, MCP API, ChatGPT App, and package consumers share Terminal Reading authority; accepted Need, source-safe preview, settlement, BTD rights, and delivery boundaries cannot be bypassed. |
8181
| Local and staging rehearsal | Gate 10 | local/staging lanes, real-inference gates, depository search, preview, settlement/delivery posture | pending | The full Reading flow rehearses in local and staging-testnet with production-mainnet value-bearing admission blocked. |
8282
| Promotion readiness | Gate 11 | V39 promotion report, generated proof appendix, promotion workflow, command dry-run | pending | V39 promotes only after all commercial Reading gates and source-safety evidence close. |
8383

@@ -236,6 +236,23 @@ source leakage. The generated proof artifact is
236236
`.bitcode/v39-operational-telemetry-repair-readback.json` and the gate check
237237
is `pnpm run check:v39-gate8`.
238238

239+
## Gate 9 Parity
240+
241+
V39 Gate 9 is implemented when `ReadingInterfaceProductParity` binds Terminal,
242+
Conversation, public API, MCP API, ChatGPT App, and package-consumer surfaces
243+
to the same Reading authority. Conversation is a Terminal-delegated handoff,
244+
package consumers receive source-safe contract readback only, and API/MCP/
245+
ChatGPT rows reuse BTD interface catalog, read-license/AssetPack-rights,
246+
telemetry hook, and consumer UX proof roots. Each row proves accepted-Need
247+
gating, Finding Fits admission, source-safe preview, settlement unlock, BTD
248+
rights, delivery authorization, no parallel authority, and source-bearing
249+
delivery locked before settlement and rights transfer. The parity source is
250+
`packages/pipelines/asset-pack/src/reading-interface-product-parity.ts`; it
251+
persists `reading/interfaces` productParity, parityRows, noBypassReadback,
252+
interfaceRoots, sourceSafety, and parityRoot. The generated proof artifact is
253+
`.bitcode/v39-interface-conversation-product-parity.json` and the gate check
254+
is `pnpm run check:v39-gate9`.
255+
239256
## completion condition
240257

241-
V39 Gate 8 is complete when `check:v39-gate8`, focused AssetPack operational telemetry package tests, focused rich execution log UI tests, V39 draft spec-family validation, V38/V39 canon-posture drift validation, promoted V38 spec-family validation, and Gate Quality pass on a `v39/gate-8-*` branch.
258+
V39 Gate 9 is complete when `check:v39-gate9`, focused AssetPack interface parity package tests, Conversation handoff parity tests, MCP ingress parity tests, ChatGPT source-safe delivery parity tests, V39 draft spec-family validation, V38/V39 canon-posture drift validation, promoted V38 spec-family validation, and Gate Quality pass on a `v39/gate-9-*` branch.

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,15 @@ operator readback with proof roots, runbook hooks, prompt/result disclosure
310310
posture, and rich execution-log rendering. Use
311311
`pnpm run generate:v39-operational-telemetry-repair-readback` and
312312
`pnpm run check:v39-gate8` before closing the gate.
313+
V39 Gate 9 adds the package-owned `ReadingInterfaceProductParity` and
314+
source-safe generated artifact
315+
`.bitcode/v39-interface-conversation-product-parity.json`. Terminal,
316+
Conversation, public API, MCP API, ChatGPT App, and package consumers now share
317+
the same Reading authority: accepted Need, Finding Fits, source-safe preview,
318+
settlement unlock, BTD rights, and delivery boundaries cannot be bypassed, and
319+
source-bearing delivery remains locked until settlement and rights transfer.
320+
Use `pnpm run generate:v39-interface-conversation-product-parity` and
321+
`pnpm run check:v39-gate9` before closing the gate.
313322
V36 Gate 2 anchors market-wide activity through the package-owned
314323
`ExchangeActivityBook` and the source-safe generated artifact
315324
`.bitcode/v36-exchange-activity-book.json`, including listing, bid, ask,
@@ -481,7 +490,9 @@ through `pnpm run check:v39-gate6` and its generated
481490
wired through `pnpm run check:v39-gate7` and its generated
482491
`.bitcode/v39-settlement-rights-delivery.json` artifact. V39 Gate 8 is wired
483492
through `pnpm run check:v39-gate8` and its generated
484-
`.bitcode/v39-operational-telemetry-repair-readback.json` artifact.
493+
`.bitcode/v39-operational-telemetry-repair-readback.json` artifact. V39 Gate 9
494+
is wired through `pnpm run check:v39-gate9` and its generated
495+
`.bitcode/v39-interface-conversation-product-parity.json` artifact.
485496
V38 Gates 1 through 11 are wired through `pnpm run check:v38-gate1`,
486497
`pnpm run check:v38-gate2`, `pnpm run check:v38-gate3`,
487498
`pnpm run check:v38-gate4`, `pnpm run check:v38-gate5`,

SPECIFICATIONS_ROADMAP.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
- Current active canonical pointer: `BITCODE_SPEC.txt` -> `V38`
66
- Current active canon: `BITCODE_SPEC_V38.md`
77
- Current draft target: `BITCODE_SPEC_V39.md`.
8-
- Current working gate: V39 Gate 8 Operational Telemetry, Repair, And Operator Readback.
9-
- Next queued gate after V39 Gate 8 closure: V39 Gate 9 Interface And Conversation Product Parity.
8+
- Current working gate: V39 Gate 9 Interface And Conversation Product Parity.
9+
- Next queued gate after V39 Gate 9 closure: V39 Gate 10 Local And Staging Commercial Reading Rehearsal.
1010
- Latest closed version: V38 Inference Correctness, which promoted pipeline execution call-stack law, PTRR/Failsafe/Thricified parity, prompt and PromptPart benchmarking, source-safe inference telemetry, ReadNeedComprehensionSynthesis hardening, ReadFitsFindingSynthesis search and embeddings, AssetPack economic traceability, local/staging inference rehearsal, and V38 promotion readiness.
1111
- Recent V38 closure anchor: V38 Gate 11 Promotion Readiness generated V38 proof support, promoted `BITCODE_SPEC.txt` to `V38`, prepared V38 active / V39 draft runtime posture, and closed inference correctness canon.
12+
- V39 Gate 9 closure anchor: commercial Reading readiness now owns package-backed `ReadingInterfaceProductParity`, deterministic `.bitcode/v39-interface-conversation-product-parity.json`, Terminal/Conversation/API/MCP/ChatGPT/package-consumer no-bypass rows, source-safe contract readback, BTD interface root composition, focused package/interface tests, and workflow wiring through `check:v39-gate9`.
1213
- V34 Gate 2 closure anchor: deployment-depth now owns package-backed `DeploymentHostCapabilityCatalog` and `EnvironmentLaneContract` source, deterministic `.bitcode/v34-deployment-host-capability-catalog.json` and `.bitcode/v34-environment-lane-contracts.json`, and visible `value-bearing-mainnet` blocking through `blocked_future_canon_required`.
1314
- V34 Gate 3 closure anchor: deployment-depth now owns package-backed `DistributedExecutionRuntimeReceipt` source, deterministic `.bitcode/v34-distributed-execution-runtime-receipts.json`, `request_response_not_required` long-running work posture, and source-safe roots for pipeline, PTRR agent, ThricifiedGeneration, tool, ledger, wallet, proof, object-storage, and repair work.
1415
- V34 Gate 4 closure anchor: deployment-depth now owns package-backed `DeploymentStoragePosture` source, deterministic `.bitcode/v34-deployment-storage-posture.json`, ledger/database/object-storage drift repair fixtures, retention/encryption/backup/rollback/audit posture, and source-bearing AssetPack storage remains locked before settlement.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,9 @@
236236
"generate:v39-operational-telemetry-repair-readback": "node scripts/generate-v39-operational-telemetry-repair-readback.mjs",
237237
"check:v39-operational-telemetry-repair-readback": "node scripts/generate-v39-operational-telemetry-repair-readback.mjs --check",
238238
"check:v39-gate8": "node scripts/check-v39-gate8-operational-telemetry-repair-readback.mjs",
239+
"generate:v39-interface-conversation-product-parity": "node scripts/generate-v39-interface-conversation-product-parity.mjs",
240+
"check:v39-interface-conversation-product-parity": "node scripts/generate-v39-interface-conversation-product-parity.mjs --check",
241+
"check:v39-gate9": "node scripts/check-v39-gate9-interface-conversation-product-parity.mjs",
239242
"generate:v38-inference-surface-inventory": "node scripts/generate-v38-inference-surface-inventory.mjs",
240243
"check:v38-inference-surface-inventory": "node scripts/generate-v38-inference-surface-inventory.mjs --check",
241244
"check:v38-gate2": "node scripts/check-v38-gate2-inference-surface-inventory.mjs",

0 commit comments

Comments
 (0)