Skip to content

Commit 1404567

Browse files
V46 Gate 5: Bind interface claim contracts
Add the package-backed V46InterfaceClaimContracts canonical artifact for public API, MCP API, ChatGPT App, Bitcode Chat, and package-consumer source-safe InterfaceClaim contracts. Update V46 spec, delta, notes, parity matrix, roadmap, README, protocol package exports, package scripts, workflows, deterministic generator, focused checker, and protocol tests. Regenerate dependent V46 artifacts and make Gate 3/Gate 4 roadmap predicates durable against later gates by checking closure anchors instead of moving latest/current status. Validation: pnpm run check:v46-gate1 --skip-branch-check; pnpm run check:v46-gate2 --skip-branch-check; pnpm run check:v46-gate3 --skip-branch-check; pnpm run check:v46-gate4 --skip-branch-check; pnpm run check:v46-gate5; pnpm --filter @bitcode/protocol typecheck; pnpm --filter @bitcode/protocol test; focused BTD, MCP, ChatGPT App, and UAPI conversation suites; git diff --check.
1 parent 555ddeb commit 1404567

22 files changed

Lines changed: 1921 additions & 55 deletions

.bitcode/v46-interface-claim-contracts.json

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

.bitcode/v46-product-route-comprehension-readback.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
{
22
"artifactId": "v46-product-route-comprehension-readback",
33
"artifactPath": ".bitcode/v46-product-route-comprehension-readback.json",
4-
"artifactRoot": "v46-product-route-comprehension-readback:5bc3193c537a60994221614c",
4+
"artifactRoot": "v46-product-route-comprehension-readback:f1a5d0211f739510cb8d2154",
55
"schemaId": "bitcode.v46.productRouteComprehensionReadback.v1",
66
"version": "V46",
77
"currentTarget": "V45",
88
"sourceSafetyVerdict": "source-safe-product-route-comprehension-readback",
99
"sourceRoots": {
1010
"activePointer": "BITCODE_SPEC.txt:674f33696f4048b636f67e13",
11-
"spec": "BITCODE_SPEC_V46.md:4cc45d3f347055f6e1c41dfb",
12-
"delta": "BITCODE_SPEC_V46_DELTA.md:d3a9827a2ab22d7586c9068a",
13-
"notes": "BITCODE_SPEC_V46_NOTES.md:ec27a9894f9b42082fce5ceb",
14-
"parity": "BITCODE_SPEC_V46_PARITY_MATRIX.md:fa329d3d950173391cc942b5",
15-
"roadmap": "SPECIFICATIONS_ROADMAP.md:5c6e23123d158007377d52ec",
16-
"packageJson": "package.json:a45f631d26b4b87124be7849",
17-
"packageIndex": "packages/protocol/src/index.js:60ed0a4f219845b39e07e4bb",
18-
"packageTypes": "packages/protocol/src/index.d.ts:1dddeb9bb40d80b131a30ce5",
19-
"packageSource": "packages/protocol/src/canonical/v46-product-route-comprehension-readback.js:373f5861ee772d21f052de38",
11+
"spec": "BITCODE_SPEC_V46.md:3b619dd4971f05e9f26d2d52",
12+
"delta": "BITCODE_SPEC_V46_DELTA.md:ae7a032374ef3a15afc165b1",
13+
"notes": "BITCODE_SPEC_V46_NOTES.md:553cd172a2197af62d359f90",
14+
"parity": "BITCODE_SPEC_V46_PARITY_MATRIX.md:f136e996c7f10fec0294d763",
15+
"roadmap": "SPECIFICATIONS_ROADMAP.md:1deef7aebb8b8ffaa629800b",
16+
"packageJson": "package.json:c34b3c2fad27dcdda5681997",
17+
"packageIndex": "packages/protocol/src/index.js:7d253665b2eb8abc2c84ef31",
18+
"packageTypes": "packages/protocol/src/index.d.ts:91eb37870471a544f284be49",
19+
"packageSource": "packages/protocol/src/canonical/v46-product-route-comprehension-readback.js:c7b3e44d22703ca4b8f17ac3",
2020
"packageTest": "packages/protocol/test/v46-product-route-comprehension-readback.test.js:3118d40ad600a9fb1d025bf6",
2121
"generator": "scripts/generate-v46-product-route-comprehension-readback.mjs:131473a8dcd0d665f74f56a7",
2222
"checker": "scripts/check-v46-gate4-product-route-comprehension-readback.mjs:483822ed6cd2809c20ee8fe5",
23-
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:5ce1c8681bb2ef5d0ac25066",
24-
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:0b6dfb96c5cbee7d42652666",
23+
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:5146b7aad831ade15738e8e8",
24+
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:c0dcd99e25b780873e412123",
2525
"productRouteShell": "uapi/components/base/bitcode/routes/product-route-shell.tsx:e71f90c289dec52fd158568a",
2626
"packsClient": "uapi/app/packs/PacksPageClient.tsx:68c61c8fd312e6c750d742ba",
2727
"packsModel": "uapi/components/base/bitcode/activity/pack-activity-model.ts:88d0334af8bc699e071ca2a1",
@@ -484,7 +484,7 @@
484484
"passed": true
485485
},
486486
{
487-
"id": "roadmap-records-current-gate4",
487+
"id": "roadmap-records-gate4-closure",
488488
"sourcePath": "SPECIFICATIONS_ROADMAP.md",
489489
"passed": true
490490
},

.bitcode/v46-protocol-comprehension-object-model.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@
88
"sourceSafetyVerdict": "source-safe-protocol-comprehension-metadata",
99
"sourceRoots": {
1010
"activePointer": "BITCODE_SPEC.txt:674f33696f4048b636f67e13",
11-
"spec": "BITCODE_SPEC_V46.md:4cc45d3f347055f6e1c41dfb",
12-
"delta": "BITCODE_SPEC_V46_DELTA.md:d3a9827a2ab22d7586c9068a",
13-
"notes": "BITCODE_SPEC_V46_NOTES.md:ec27a9894f9b42082fce5ceb",
14-
"parity": "BITCODE_SPEC_V46_PARITY_MATRIX.md:fa329d3d950173391cc942b5",
15-
"roadmap": "SPECIFICATIONS_ROADMAP.md:5c6e23123d158007377d52ec",
16-
"readme": "README.md:316f79e40a6922fa0bf29961",
17-
"protocolReadme": "packages/protocol/README.md:3a3d3a1340fb98b87f722375",
18-
"packageJson": "package.json:a45f631d26b4b87124be7849",
19-
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:5ce1c8681bb2ef5d0ac25066",
20-
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:0b6dfb96c5cbee7d42652666",
21-
"packageIndex": "packages/protocol/src/index.js:60ed0a4f219845b39e07e4bb",
22-
"packageTypes": "packages/protocol/src/index.d.ts:1dddeb9bb40d80b131a30ce5",
11+
"spec": "BITCODE_SPEC_V46.md:3b619dd4971f05e9f26d2d52",
12+
"delta": "BITCODE_SPEC_V46_DELTA.md:ae7a032374ef3a15afc165b1",
13+
"notes": "BITCODE_SPEC_V46_NOTES.md:553cd172a2197af62d359f90",
14+
"parity": "BITCODE_SPEC_V46_PARITY_MATRIX.md:f136e996c7f10fec0294d763",
15+
"roadmap": "SPECIFICATIONS_ROADMAP.md:1deef7aebb8b8ffaa629800b",
16+
"readme": "README.md:72b51bb4c1dd930185f6f4d6",
17+
"protocolReadme": "packages/protocol/README.md:72af480ca278f8f038ee27af",
18+
"packageJson": "package.json:c34b3c2fad27dcdda5681997",
19+
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:5146b7aad831ade15738e8e8",
20+
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:c0dcd99e25b780873e412123",
21+
"packageIndex": "packages/protocol/src/index.js:7d253665b2eb8abc2c84ef31",
22+
"packageTypes": "packages/protocol/src/index.d.ts:91eb37870471a544f284be49",
2323
"packageSource": "packages/protocol/src/canonical/v46-protocol-comprehension-object-model.js:a55974c399c15656961c7370",
2424
"packageTest": "packages/protocol/test/v46-protocol-comprehension-object-model.test.js:b3dd4b276e9c00b76becb15e",
2525
"generator": "scripts/generate-v46-protocol-comprehension-object-model.mjs:814f07e809e47d359485ba46",

.bitcode/v46-public-operator-claim-boundaries.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,22 @@
88
"sourceSafetyVerdict": "source-safe-public-operator-claim-boundary-metadata",
99
"sourceRoots": {
1010
"activePointer": "BITCODE_SPEC.txt:674f33696f4048b636f67e13",
11-
"spec": "BITCODE_SPEC_V46.md:4cc45d3f347055f6e1c41dfb",
12-
"delta": "BITCODE_SPEC_V46_DELTA.md:d3a9827a2ab22d7586c9068a",
13-
"notes": "BITCODE_SPEC_V46_NOTES.md:ec27a9894f9b42082fce5ceb",
14-
"parity": "BITCODE_SPEC_V46_PARITY_MATRIX.md:fa329d3d950173391cc942b5",
15-
"roadmap": "SPECIFICATIONS_ROADMAP.md:5c6e23123d158007377d52ec",
16-
"readme": "README.md:316f79e40a6922fa0bf29961",
17-
"protocolReadme": "packages/protocol/README.md:3a3d3a1340fb98b87f722375",
18-
"packageJson": "package.json:a45f631d26b4b87124be7849",
19-
"packageIndex": "packages/protocol/src/index.js:60ed0a4f219845b39e07e4bb",
20-
"packageTypes": "packages/protocol/src/index.d.ts:1dddeb9bb40d80b131a30ce5",
21-
"packageSource": "packages/protocol/src/canonical/v46-public-operator-claim-boundaries.js:c13ecca31452effec4966ea7",
11+
"spec": "BITCODE_SPEC_V46.md:3b619dd4971f05e9f26d2d52",
12+
"delta": "BITCODE_SPEC_V46_DELTA.md:ae7a032374ef3a15afc165b1",
13+
"notes": "BITCODE_SPEC_V46_NOTES.md:553cd172a2197af62d359f90",
14+
"parity": "BITCODE_SPEC_V46_PARITY_MATRIX.md:f136e996c7f10fec0294d763",
15+
"roadmap": "SPECIFICATIONS_ROADMAP.md:1deef7aebb8b8ffaa629800b",
16+
"readme": "README.md:72b51bb4c1dd930185f6f4d6",
17+
"protocolReadme": "packages/protocol/README.md:72af480ca278f8f038ee27af",
18+
"packageJson": "package.json:c34b3c2fad27dcdda5681997",
19+
"packageIndex": "packages/protocol/src/index.js:7d253665b2eb8abc2c84ef31",
20+
"packageTypes": "packages/protocol/src/index.d.ts:91eb37870471a544f284be49",
21+
"packageSource": "packages/protocol/src/canonical/v46-public-operator-claim-boundaries.js:03799d116974cb5d9efba096",
2222
"packageTest": "packages/protocol/test/v46-public-operator-claim-boundaries.test.js:0afae65791ef7d7081b2a87a",
2323
"generator": "scripts/generate-v46-public-operator-claim-boundaries.mjs:5a7e5f8c9013c83e3c3818fb",
2424
"checker": "scripts/check-v46-gate3-public-operator-claim-boundaries.mjs:b958086681492633958639bf",
25-
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:5ce1c8681bb2ef5d0ac25066",
26-
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:0b6dfb96c5cbee7d42652666",
25+
"gateWorkflow": ".github/workflows/bitcode-gate-quality.yml:5146b7aad831ade15738e8e8",
26+
"canonWorkflow": ".github/workflows/bitcode-canon-quality.yml:c0dcd99e25b780873e412123",
2727
"publicCopy": "uapi/components/base/bitcode/layout/bitcode-public-copy.ts:9b39322f872b899e1c752701",
2828
"publicExplainers": "uapi/components/base/bitcode/layout/bitcode-public-explainers.ts:4e3b84dda50607ea8ea2b73e",
2929
"landingShared": "uapi/app/(root)/components/landing/marketing-landing-shared.tsx:27c33bd46ea46fd7608fd093",

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,9 @@ jobs:
431431
if [ -f scripts/check-v46-gate4-product-route-comprehension-readback.mjs ]; then
432432
node scripts/check-v46-gate4-product-route-comprehension-readback.mjs --skip-branch-check --skip-package-tests
433433
fi
434+
if [ -f scripts/check-v46-gate5-interface-claim-contracts.mjs ]; then
435+
node scripts/check-v46-gate5-interface-claim-contracts.mjs --skip-branch-check --skip-package-tests
436+
fi
434437
fi
435438
else
436439
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,9 @@ jobs:
560560
if [ -f scripts/check-v46-gate4-product-route-comprehension-readback.mjs ]; then
561561
node scripts/check-v46-gate4-product-route-comprehension-readback.mjs --skip-branch-check --skip-package-tests
562562
fi
563+
if [ -f scripts/check-v46-gate5-interface-claim-contracts.mjs ]; then
564+
node scripts/check-v46-gate5-interface-claim-contracts.mjs --skip-branch-check --skip-package-tests
565+
fi
563566
fi
564567
else
565568
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
@@ -610,6 +613,9 @@ jobs:
610613
if [ -f BITCODE_SPEC_V46.md ] && [ -f scripts/check-v46-gate4-product-route-comprehension-readback.mjs ]; then
611614
node scripts/check-v46-gate4-product-route-comprehension-readback.mjs --skip-branch-check --skip-package-tests
612615
fi
616+
if [ -f BITCODE_SPEC_V46.md ] && [ -f scripts/check-v46-gate5-interface-claim-contracts.mjs ]; then
617+
node scripts/check-v46-gate5-interface-claim-contracts.mjs --skip-branch-check --skip-package-tests
618+
fi
613619
fi
614620
if [ "$POINTER" = "V43" ] && [ -f scripts/check-v44-gate1-scaled-economy-roadmap-opening.mjs ]; then
615621
node scripts/check-v44-gate1-scaled-economy-roadmap-opening.mjs --skip-branch-check

BITCODE_SPEC_V46.md

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,50 @@ The source-safe generated artifact for this Gate 4 atom is
315315
`.bitcode/v46-product-route-comprehension-readback.json`; it is generated by
316316
`buildV46ProductRouteComprehensionReadback` and checked by `check:v46-gate4`.
317317

318+
## V46 interface claim contract law
319+
320+
Gate 5: API/MCP, ChatGPT App, And Bitcode Chat Claim Contracts binds machine,
321+
assistant, conversation, and package-consumer surfaces to the same
322+
`InterfaceClaim` taxonomy as public docs and website routes. These surfaces
323+
may carry requests, responses, tool descriptors, action descriptors, source-safe
324+
rendering metadata, proof roots, denied states, and handoff metadata, but they
325+
must not become parallel protocol authority or serialize private payloads.
326+
327+
The public API is the versionless machine contract for source-safe schema
328+
compatibility. It must expose only source-safe request/response fields, proof
329+
roots, denied repair states, and compatibility posture. It must not expose
330+
protected source, unpaid AssetPack source, raw prompts, provider responses,
331+
credentials, wallet private material, private settlement payloads, or
332+
value-bearing mainnet authority.
333+
334+
The MCP API is the package-owned tool contract for source-safe protocol entry.
335+
It may expose tool registry names, permission requirements, provider binding
336+
blockers, write-admission posture, proof roots, queue metadata, and denied
337+
repair states. MCP does not settle BTC, transfer BTD rights, unlock source, or
338+
deliver source-bearing AssetPacks by itself.
339+
340+
The ChatGPT App is the package-owned assistant action contract for Reading and
341+
delivery-adjacent actions. It may render source-safe Need, Finding Fits,
342+
preview, quote, settlement-blocker, delivery-lock, and proof-root metadata.
343+
It must require explicit write admission for stateful actions and must show
344+
settlement/right/delivery denied states until proof readback authorizes the
345+
next boundary.
346+
347+
Bitcode Chat is the website conversation overlay and stream/handoff surface.
348+
It may guide Reading, summarize route-local state, display source-safe stream
349+
events, preserve proof roots, and hand off to `/read`; it cannot advance
350+
protocol state, settle, transfer rights, unlock source, or bypass Terminal,
351+
route, ledger, wallet, or proof authority.
352+
353+
Package consumers receive stable source-safe contracts and generated readback
354+
metadata. Package exports may help consumers reason about claims, but package
355+
consumers do not get a separate state machine, value-bearing authority, or
356+
source disclosure boundary beyond the same proof-backed protocol law.
357+
358+
The source-safe generated artifact for this Gate 5 atom is
359+
`.bitcode/v46-interface-claim-contracts.json`; it is generated by
360+
`buildV46InterfaceClaimContracts` and checked by `check:v46-gate5`.
361+
318362
## V46 whole Bitcode operator chain
319363

320364
The V46 operator chain is: connect source and organization policy, synthesize
@@ -811,6 +855,7 @@ and quality summary.
811855
| `.bitcode/v46-protocol-comprehension-object-model.json` | protocol comprehension object and claim taxonomy artifact | Gate 2 |
812856
| `.bitcode/v46-public-operator-claim-boundaries.json` | public/operator claim-boundary artifact | Gate 3 |
813857
| `.bitcode/v46-product-route-comprehension-readback.json` | product route comprehension readback artifact | Gate 4 |
858+
| `.bitcode/v46-interface-claim-contracts.json` | API/MCP, ChatGPT App, Bitcode Chat, and package-consumer claim-contract artifact | Gate 5 |
814859
| `.bitcode/v46-inference-synthesis-proof.json` | inference proof-family artifact | future proof gate |
815860
| `.bitcode/v46-prompt-completeness-proof.json` | prompt proof-family artifact | future proof gate |
816861
| `.bitcode/v46-static-code-analysis-proof.json` | static-code proof-family artifact | future proof gate |
@@ -830,8 +875,9 @@ V46 specifying generated artifacts must include `.bitcode/v46-spec-family-report
830875
`.bitcode/v46-canonical-input-report.json`,
831876
`.bitcode/v46-protocol-comprehension-object-model.json`,
832877
`.bitcode/v46-public-operator-claim-boundaries.json`,
833-
`.bitcode/v46-product-route-comprehension-readback.json`, all nine V46
834-
proof-family artifacts, `.bitcode/v46-source-safe-e2e-rehearsal.json`,
878+
`.bitcode/v46-product-route-comprehension-readback.json`,
879+
`.bitcode/v46-interface-claim-contracts.json`, all nine V46 proof-family
880+
artifacts, `.bitcode/v46-source-safe-e2e-rehearsal.json`,
835881
`.bitcode/v46-promotion-readiness-report.json`, and future
836882
`BITCODE_SPEC_V46_PROVEN.md`; each artifact becomes required only when its own
837883
gate closes.
@@ -886,6 +932,7 @@ Gate 1 validates only active V45 plus draft V46 posture:
886932
- `pnpm run check:v46-gate2`
887933
- `pnpm run check:v46-gate3`
888934
- `pnpm run check:v46-gate4`
935+
- `pnpm run check:v46-gate5`
889936

890937
## V46 promotion canon
891938

@@ -996,9 +1043,11 @@ artifact roots.
9961043

9971044
## Appendix D. Validation and checking gate catalog
9981045

999-
Validation commands include `check:v46-gate1`, draft V46 spec-family checks,
1000-
active V45 promoted checks, V45/V46 canon posture drift checks, and later
1001-
parity, proof, implementation, rehearsal, and promotion commands.
1046+
Validation commands include `check:v46-gate1`, `check:v46-gate2`,
1047+
`check:v46-gate3`, `check:v46-gate4`, `check:v46-gate5`, draft V46
1048+
spec-family checks, active V45 promoted checks, V45/V46 canon posture drift
1049+
checks, and later parity, proof, implementation, rehearsal, and promotion
1050+
commands.
10021051

10031052
## Appendix E. Current canonical source map
10041053

BITCODE_SPEC_V46_DELTA.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,36 @@ Accepted Gate 4 decisions:
145145
prompts, raw provider responses, credentials, wallet private material,
146146
private settlement payloads, or value-bearing mainnet authority.
147147

148+
## Gate 5: API/MCP, ChatGPT App, And Bitcode Chat Claim Contracts
149+
150+
Gate 5 adds `V46InterfaceClaimContracts` as a source-safe generated artifact
151+
at `.bitcode/v46-interface-claim-contracts.json`. It binds public API, MCP
152+
API, ChatGPT App, Bitcode Chat, and package-consumer surfaces to the Gate 2
153+
`InterfaceClaim` taxonomy, Gate 3 public/operator claim boundaries, and Gate 4
154+
product-route readback law.
155+
156+
Accepted Gate 5 decisions:
157+
158+
- The public API exposes versionless source-safe schema compatibility, proof
159+
roots, denied repair states, and compatibility posture without protected
160+
source or private payload serialization.
161+
- MCP exposes package-owned tool contracts, permission requirements, provider
162+
binding blockers, write-admission posture, proof roots, queue metadata, and
163+
denied repair states; it does not settle BTC, transfer BTD rights, unlock
164+
source, or deliver source-bearing AssetPacks by itself.
165+
- The ChatGPT App exposes package-owned Reading and delivery-adjacent action
166+
contracts, source-safe rendering, explicit write admission, proof roots, and
167+
settlement/right/delivery denied states until proof readback authorizes the
168+
next boundary.
169+
- Bitcode Chat exposes route-local conversation, stream, proof-root, and
170+
terminal-delegated handoff metadata; it does not advance protocol state or
171+
create parallel state authority.
172+
- Package consumers receive stable source-safe contracts and generated
173+
readback metadata, not a separate state machine or disclosure boundary.
174+
- Gate 5 remains source-safe metadata and contract readback work. It does not
175+
authorize runtime behavior changes, source disclosure, settlement, delivery,
176+
or value-bearing mainnet behavior.
177+
148178
## Commit-Body Direction
149179

150180
V46 commit bodies should name the gate class, protocol law or interface claim

0 commit comments

Comments
 (0)