Skip to content

Commit 4c55ff0

Browse files
V41 Gate 7: harden Conversation tool interface prompts
Close the Conversation/tool/interface prompt rewrite gate with source-safe protocol proof generation, checker wiring, workflow checks, regenerated V41 artifacts, and focused Conversation PromptPart rewrites for route authority, source selection, prompt/result disclosure, typed outputs, and fail-closed payload posture.\n\nValidations run: check:v41-gate1 through check:v41-gate7, @bitcode/protocol tests and typecheck, focused ChatGPT tool contract tests, API conversation stream/telemetry tests, Terminal stream-log rendering test, cached diff check, and staged secret scan.
1 parent 39b547b commit 4c55ff0

34 files changed

Lines changed: 3084 additions & 65 deletions

File tree

.bitcode/v41-conversation-tool-interface-prompt-rewrite.json

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

.bitcode/v41-promptpart-prompt-inventory.json

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13703,7 +13703,7 @@
1370313703
"rowRoot": "v41-prompt-inventory-row:d65663df8b30bf932783d1fc",
1370413704
"kind": "PromptPart",
1370513705
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_agent_conversationagent_identity_definition.ts",
13706-
"sourceHash": "485da90f48e8b7355b596c3c",
13706+
"sourceHash": "72c9665579f0db97896b3194",
1370713707
"exportNames": [
1370813708
"PROMPTPART_SPECIFIC_AGENT_CONVERSATIONAGENT_IDENTITY_DEFINITION"
1370913709
],
@@ -13779,7 +13779,7 @@
1377913779
"rowRoot": "v41-prompt-inventory-row:c38394c4b35d940ff9f79408",
1378013780
"kind": "PromptPart",
1378113781
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_agent_conversationagent_ptrrplan_purpose.ts",
13782-
"sourceHash": "5e33ff9d434c3a1cdf5065c2",
13782+
"sourceHash": "0bd1566910a215a7d52d9f8b",
1378313783
"exportNames": [
1378413784
"PROMPTPART_SPECIFIC_AGENT_CONVERSATIONAGENT_PTRRPLAN_PURPOSE"
1378513785
],
@@ -13817,7 +13817,7 @@
1381713817
"rowRoot": "v41-prompt-inventory-row:38b0dcbfc19970de026452c9",
1381813818
"kind": "PromptPart",
1381913819
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_agent_conversationagent_ptrrrefine_purpose.ts",
13820-
"sourceHash": "b7363be71084bda346b55e98",
13820+
"sourceHash": "0661a9bfd5a8063a2536d7b0",
1382113821
"exportNames": [
1382213822
"PROMPTPART_SPECIFIC_AGENT_CONVERSATIONAGENT_PTRRREFINE_PURPOSE"
1382313823
],
@@ -13855,7 +13855,7 @@
1385513855
"rowRoot": "v41-prompt-inventory-row:ce5aa5e1da66dd9a2b9e3d2d",
1385613856
"kind": "PromptPart",
1385713857
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_agent_conversationagent_ptrrretry_purpose.ts",
13858-
"sourceHash": "2ca009cd0afa088e73e825fb",
13858+
"sourceHash": "0a88d2640092a4325ed6bc8e",
1385913859
"exportNames": [
1386013860
"PROMPTPART_SPECIFIC_AGENT_CONVERSATIONAGENT_PTRRRETRY_PURPOSE"
1386113861
],
@@ -13893,7 +13893,7 @@
1389313893
"rowRoot": "v41-prompt-inventory-row:9fa549ef04e400f5e9e6b374",
1389413894
"kind": "PromptPart",
1389513895
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_agent_conversationagent_ptrrtry_purpose.ts",
13896-
"sourceHash": "2ec20c1a9541cbb32d6137a1",
13896+
"sourceHash": "6d063ca6ed8e670daa0a9a9e",
1389713897
"exportNames": [
1389813898
"PROMPTPART_SPECIFIC_AGENT_CONVERSATIONAGENT_PTRRTRY_PURPOSE"
1389913899
],
@@ -13902,22 +13902,25 @@
1390213902
"promptFamilyIds": [
1390313903
"Conversation",
1390413904
"Interface",
13905-
"PromptBenchmark"
13905+
"PromptBenchmark",
13906+
"ReadFitsFindingSynthesis"
1390613907
],
1390713908
"composedPromptMemberships": [
1390813909
"Conversation",
1390913910
"Interface",
13910-
"PromptBenchmark"
13911+
"PromptBenchmark",
13912+
"ReadFitsFindingSynthesis"
1391113913
],
1391213914
"templateVariableNames": [],
1391313915
"benchmarkFixtureIds": [
1391413916
"fixture.conversation.terminal-system-boundary",
1391513917
"fixture.interface.source-safe-user-visible-prompting",
1391613918
"fixture.prompt.task-success",
13917-
"fixture.promptpart.intent-alignment"
13919+
"fixture.promptpart.intent-alignment",
13920+
"fixture.read-fits.find-many-candidates-and-preserve-source-safety"
1391813921
],
1391913922
"disclosureTier": "promptpart_identity_source_safe",
13920-
"validationCommand": "pnpm run check:v41-gate7",
13923+
"validationCommand": "pnpm run check:v41-gate6",
1392113924
"docCommentPresent": true,
1392213925
"benchmarkDefinitionCount": 1,
1392313926
"currentVersionPresent": true,
@@ -31448,7 +31451,7 @@
3144831451
"rowRoot": "v41-prompt-inventory-row:80847dc8e5d8c350fb383fe7",
3144931452
"kind": "PromptPart",
3145031453
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_system_bitcodeterminalconversation_capabilities_list.ts",
31451-
"sourceHash": "ec8e79a1a03230088cdac8e8",
31454+
"sourceHash": "cb04b9ba4b01cd81cec89376",
3145231455
"exportNames": [
3145331456
"PROMPTPART_SPECIFIC_SYSTEM_BITCODETERMINALCONVERSATION_CAPABILITIES_LIST"
3145431457
],
@@ -31457,19 +31460,22 @@
3145731460
"promptFamilyIds": [
3145831461
"Conversation",
3145931462
"Interface",
31460-
"PromptBenchmark"
31463+
"PromptBenchmark",
31464+
"ToolDefinition"
3146131465
],
3146231466
"composedPromptMemberships": [
3146331467
"Conversation",
3146431468
"Interface",
31465-
"PromptBenchmark"
31469+
"PromptBenchmark",
31470+
"ToolDefinition"
3146631471
],
3146731472
"templateVariableNames": [],
3146831473
"benchmarkFixtureIds": [
3146931474
"fixture.conversation.terminal-system-boundary",
3147031475
"fixture.interface.source-safe-user-visible-prompting",
3147131476
"fixture.prompt.task-success",
31472-
"fixture.promptpart.intent-alignment"
31477+
"fixture.promptpart.intent-alignment",
31478+
"fixture.tool-definition.doc-code-contract"
3147331479
],
3147431480
"disclosureTier": "promptpart_identity_source_safe",
3147531481
"validationCommand": "pnpm run check:v41-gate7",
@@ -31486,7 +31492,7 @@
3148631492
"rowRoot": "v41-prompt-inventory-row:28980bf94472ac3fa505df29",
3148731493
"kind": "PromptPart",
3148831494
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_system_bitcodeterminalconversation_identity_corestatement.ts",
31489-
"sourceHash": "b736c6ab10d855982ac27415",
31495+
"sourceHash": "e9a890f6fc8bb33c5205c70f",
3149031496
"exportNames": [
3149131497
"PROMPTPART_SPECIFIC_SYSTEM_BITCODETERMINALCONVERSATION_IDENTITY_CORESTATEMENT"
3149231498
],
@@ -31524,7 +31530,7 @@
3152431530
"rowRoot": "v41-prompt-inventory-row:efa8bfc05dece529473e30cf",
3152531531
"kind": "PromptPart",
3152631532
"sourcePath": "packages/prompts/src/raw_promptparts/specific/promptpart_specific_system_bitcodeterminalconversation_usage_guidance.ts",
31527-
"sourceHash": "1b4aa3bf1583f1067e2efafe",
31533+
"sourceHash": "f8cfc824a9d3f39de3df5fb3",
3152831534
"exportNames": [
3152931535
"PROMPTPART_SPECIFIC_SYSTEM_BITCODETERMINALCONVERSATION_USAGE_GUIDANCE"
3153031536
],
@@ -31533,22 +31539,25 @@
3153331539
"promptFamilyIds": [
3153431540
"Conversation",
3153531541
"Interface",
31536-
"PromptBenchmark"
31542+
"PromptBenchmark",
31543+
"ReadFitsFindingSynthesis"
3153731544
],
3153831545
"composedPromptMemberships": [
3153931546
"Conversation",
3154031547
"Interface",
31541-
"PromptBenchmark"
31548+
"PromptBenchmark",
31549+
"ReadFitsFindingSynthesis"
3154231550
],
3154331551
"templateVariableNames": [],
3154431552
"benchmarkFixtureIds": [
3154531553
"fixture.conversation.terminal-system-boundary",
3154631554
"fixture.interface.source-safe-user-visible-prompting",
3154731555
"fixture.prompt.task-success",
31548-
"fixture.promptpart.intent-alignment"
31556+
"fixture.promptpart.intent-alignment",
31557+
"fixture.read-fits.find-many-candidates-and-preserve-source-safety"
3154931558
],
3155031559
"disclosureTier": "promptpart_identity_source_safe",
31551-
"validationCommand": "pnpm run check:v41-gate7",
31560+
"validationCommand": "pnpm run check:v41-gate6",
3155231561
"docCommentPresent": true,
3155331562
"benchmarkDefinitionCount": 1,
3155431563
"currentVersionPresent": true,

.bitcode/v41-readfitsfinding-prompt-hardening.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"generatedAt": "2026-05-26T00:00:00.000Z",
77
"artifactPath": ".bitcode/v41-readfitsfinding-prompt-hardening.json",
88
"sourceSafetyVerdict": "source-safe-readfitsfinding-prompt-hardening-metadata",
9-
"artifactRoot": "v41-readfitsfinding-prompt-hardening:afedf42e15917715625b2afd",
9+
"artifactRoot": "v41-readfitsfinding-prompt-hardening:f5a01c099fd260fca0c081c8",
1010
"passed": true,
1111
"failures": [],
1212
"metricIds": [
@@ -1301,43 +1301,43 @@
13011301
},
13021302
{
13031303
"sourcePath": "BITCODE_SPEC_V41.md",
1304-
"sourceHash": "1f68af704b705c2773d9093b"
1304+
"sourceHash": "d8c0b4c7f8c268964304aed1"
13051305
},
13061306
{
13071307
"sourcePath": "BITCODE_SPEC_V41_DELTA.md",
1308-
"sourceHash": "ab5827f60a5b8a0eec1195e7"
1308+
"sourceHash": "1d015ca6f1ee04481adc4d94"
13091309
},
13101310
{
13111311
"sourcePath": "BITCODE_SPEC_V41_NOTES.md",
1312-
"sourceHash": "12f7a7e1df46db7676936319"
1312+
"sourceHash": "10535375dd3ba572d859cd96"
13131313
},
13141314
{
13151315
"sourcePath": "BITCODE_SPEC_V41_PARITY_MATRIX.md",
1316-
"sourceHash": "6713ea20ec55e70876020853"
1316+
"sourceHash": "00a808cdce6b067b3b74c284"
13171317
},
13181318
{
13191319
"sourcePath": "SPECIFICATIONS_ROADMAP.md",
1320-
"sourceHash": "8860b609a1b9be5e9201534f"
1320+
"sourceHash": "28927ec4df7539979189a250"
13211321
},
13221322
{
13231323
"sourcePath": "README.md",
1324-
"sourceHash": "33d18e61a7912a53df9aba05"
1324+
"sourceHash": "ea094a4cf3ceb26af0572f51"
13251325
},
13261326
{
13271327
"sourcePath": "packages/protocol/README.md",
1328-
"sourceHash": "42eca8a6caade387d8af9630"
1328+
"sourceHash": "a350f4f057f5cfd5378e0bde"
13291329
},
13301330
{
13311331
"sourcePath": "package.json",
1332-
"sourceHash": "3531bab869d789bee183349e"
1332+
"sourceHash": "9bd806a6dbff2448f0e5074e"
13331333
},
13341334
{
13351335
"sourcePath": ".github/workflows/bitcode-gate-quality.yml",
1336-
"sourceHash": "542f3a0ab1f2d85a4c47ce72"
1336+
"sourceHash": "07c24c49b8ab517a4426ed6b"
13371337
},
13381338
{
13391339
"sourcePath": ".github/workflows/bitcode-canon-quality.yml",
1340-
"sourceHash": "282be2d1c1f2e06717d45b47"
1340+
"sourceHash": "36d6ce8158e1595685f7856a"
13411341
}
13421342
],
13431343
"sourceRootsPresent": true,
@@ -1481,7 +1481,7 @@
14811481
"failedPredicateIds": [],
14821482
"failingRowIds": [],
14831483
"hardeningScoreMinimum": 1,
1484-
"readFitsInventoryPromptPartRowCount": 488,
1484+
"readFitsInventoryPromptPartRowCount": 490,
14851485
"readFitsInventoryPromptRowCount": 47,
14861486
"gate4ReadFitsBaselineRowCount": 7,
14871487
"gate5ReadNeedHardeningRowCount": 7

.bitcode/v41-reading-prompt-benchmark-baselines.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@
571571
"promptFamilyIds": [
572572
"ReadFitsFindingSynthesis"
573573
],
574-
"promptPartRowCount": 488,
574+
"promptPartRowCount": 490,
575575
"promptRowCount": 47,
576576
"benchmarkFixtureIds": [
577577
"fixture.conversation.terminal-system-boundary",
@@ -725,7 +725,7 @@
725725
"promptFamilyIds": [
726726
"ReadFitsFindingSynthesis"
727727
],
728-
"promptPartRowCount": 488,
728+
"promptPartRowCount": 490,
729729
"promptRowCount": 47,
730730
"benchmarkFixtureIds": [
731731
"fixture.conversation.terminal-system-boundary",
@@ -877,7 +877,7 @@
877877
"promptFamilyIds": [
878878
"ReadFitsFindingSynthesis"
879879
],
880-
"promptPartRowCount": 488,
880+
"promptPartRowCount": 490,
881881
"promptRowCount": 47,
882882
"benchmarkFixtureIds": [
883883
"fixture.conversation.terminal-system-boundary",
@@ -1031,7 +1031,7 @@
10311031
"promptFamilyIds": [
10321032
"ReadFitsFindingSynthesis"
10331033
],
1034-
"promptPartRowCount": 488,
1034+
"promptPartRowCount": 490,
10351035
"promptRowCount": 47,
10361036
"benchmarkFixtureIds": [
10371037
"fixture.conversation.terminal-system-boundary",
@@ -1177,7 +1177,7 @@
11771177
"promptFamilyIds": [
11781178
"ReadFitsFindingSynthesis"
11791179
],
1180-
"promptPartRowCount": 488,
1180+
"promptPartRowCount": 490,
11811181
"promptRowCount": 47,
11821182
"benchmarkFixtureIds": [
11831183
"fixture.conversation.terminal-system-boundary",
@@ -1338,7 +1338,7 @@
13381338
"ReadNeedComprehensionSynthesis",
13391339
"ReadFitsFindingSynthesis"
13401340
],
1341-
"promptPartRowCount": 488,
1341+
"promptPartRowCount": 490,
13421342
"promptRowCount": 49,
13431343
"benchmarkFixtureIds": [
13441344
"fixture.conversation.terminal-system-boundary",
@@ -1497,7 +1497,7 @@
14971497
"ReadNeedComprehensionSynthesis",
14981498
"ReadFitsFindingSynthesis"
14991499
],
1500-
"promptPartRowCount": 488,
1500+
"promptPartRowCount": 490,
15011501
"promptRowCount": 49,
15021502
"benchmarkFixtureIds": [
15031503
"fixture.conversation.terminal-system-boundary",
@@ -2881,7 +2881,7 @@
28812881
"readFitsBaselineRowCount": 7,
28822882
"readNeedInventoryPromptPartRowCount": 63,
28832883
"readNeedInventoryPromptRowCount": 8,
2884-
"readFitsInventoryPromptPartRowCount": 488,
2884+
"readFitsInventoryPromptPartRowCount": 490,
28852885
"readFitsInventoryPromptRowCount": 47,
28862886
"baselineScoreMinimum": 1,
28872887
"baselineScoreAverage": 1,

.bitcode/v41-registry-interpolation-contracts.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1241,7 +1241,7 @@
12411241
"sourcePath": ".bitcode/v41-promptpart-prompt-inventory.json",
12421242
"exists": true,
12431243
"legacy": false,
1244-
"sourceHash": "49a887ca2258ef6f797a558d"
1244+
"sourceHash": "927738d4b3bdab4f2f9734e7"
12451245
},
12461246
{
12471247
"sourcePath": "packages/agent-generics/src/agents/factories.ts",

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,9 @@ jobs:
277277
if [ -f scripts/check-v41-gate6-readfitsfinding-prompt-hardening.mjs ]; then
278278
node scripts/check-v41-gate6-readfitsfinding-prompt-hardening.mjs --skip-branch-check --skip-package-tests
279279
fi
280+
if [ -f scripts/check-v41-gate7-conversation-tool-interface-prompt-rewrite.mjs ]; then
281+
node scripts/check-v41-gate7-conversation-tool-interface-prompt-rewrite.mjs --skip-branch-check --skip-package-tests
282+
fi
280283
fi
281284
else
282285
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,9 @@ jobs:
406406
if [ -f scripts/check-v41-gate6-readfitsfinding-prompt-hardening.mjs ]; then
407407
node scripts/check-v41-gate6-readfitsfinding-prompt-hardening.mjs --skip-branch-check --skip-package-tests
408408
fi
409+
if [ -f scripts/check-v41-gate7-conversation-tool-interface-prompt-rewrite.mjs ]; then
410+
node scripts/check-v41-gate7-conversation-tool-interface-prompt-rewrite.mjs --skip-branch-check --skip-package-tests
411+
fi
409412
fi
410413
else
411414
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2

BITCODE_SPEC_V41.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
- Prior canonical anchor: `BITCODE_SPEC_V40.md`
99
- Prior generated proof appendix: `BITCODE_SPEC_V40_PROVEN.md`
1010
- Active canonical pointer during draft opening: `BITCODE_SPEC.txt` -> `V40`
11-
- Generated structured artifact inventory: draft `.bitcode/v41-spec-family-report.json`, draft `.bitcode/v41-canonical-input-report.json`, Gate 2 `.bitcode/v41-promptpart-prompt-inventory.json`, Gate 3 `.bitcode/v41-registry-interpolation-contracts.json`, planned benchmark artifacts, planned promotion-readiness artifact, and eventual `BITCODE_SPEC_V41_PROVEN.md` after V41 promotion
11+
- Generated structured artifact inventory: draft `.bitcode/v41-spec-family-report.json`, draft `.bitcode/v41-canonical-input-report.json`, Gate 2 `.bitcode/v41-promptpart-prompt-inventory.json`, Gate 3 `.bitcode/v41-registry-interpolation-contracts.json`, Gate 4 `.bitcode/v41-reading-prompt-benchmark-baselines.json`, Gate 5 `.bitcode/v41-readneed-prompt-hardening.json`, Gate 6 `.bitcode/v41-readfitsfinding-prompt-hardening.json`, Gate 7 `.bitcode/v41-conversation-tool-interface-prompt-rewrite.json`, planned benchmark telemetry artifacts, planned promotion-readiness artifact, and eventual `BITCODE_SPEC_V41_PROVEN.md` after V41 promotion
1212
- Source parity state: V41 opens prompt-program parity over V40 exhaustive testing, V38 inference correctness, and V39 commercial Reading readiness; source-side prompt and PromptPart rewrites are blocked until catalogue, benchmark, interpolation, registry, callsite, and return-type surfaces are specified and checked
1313
- Notes companion: `BITCODE_SPEC_V41_NOTES.md`
1414
- Delta companion: `BITCODE_SPEC_V41_DELTA.md`
@@ -147,6 +147,9 @@ The artifact may include ids, source hashes, counts, prompt surface ids, parser
147147

148148
Gate 7 applies the same prompt-program discipline to Conversation, tool-definition, MCP API, ChatGPT App, public API, Terminal summaries, and interface prompts.
149149
It must preserve route authority, source selection policy, rich stream log disclosure, tool schemas, and parsed return types.
150+
Gate 7 is closed by the package-backed `buildV41ConversationToolInterfacePromptRewrite` source, deterministic `.bitcode/v41-conversation-tool-interface-prompt-rewrite.json` artifact, `generate:v41-conversation-tool-interface-prompt-rewrite`, `check:v41-conversation-tool-interface-prompt-rewrite`, `check:v41-gate7`, protocol tests, focused prompt-part rewrites, and gate/canon workflow wiring.
151+
The current source-safe rewrite report covers 9 rows and 60 passing source predicates for Conversation PTRR PromptParts, Terminal system prompt composition, rich execution-log prompt/result disclosure metadata, DocCodeToolPrompt composition, ToolPromptRegistry hierarchy, MCP API/public API tool schema posture, ChatGPT App action/tool prompt boundaries, Terminal/public summaries, V38 Conversation/tool parity, and Gate 2 through Gate 6 prompt-program dependency roots.
152+
The artifact may include ids, source hashes, counts, prompt surface ids, parser target ids, tool schema ids, fixture ids, predicate verdicts, dependency roots, and redaction posture, but no raw prompt text, interpolated prompts, raw provider responses, protected source, private context, credentials, settlement private payloads, wallet private material, or unpaid AssetPack source.
150153

151154
## V41 Gate 8 Prompt Benchmark Report And Telemetry Integration
152155

BITCODE_SPEC_V41_DELTA.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ It binds Gate 2 PromptPart/Prompt inventory, Gate 3 registry/interpolation contr
6363
### Gate 7: Conversation Tool And Interface Prompt Rewrite
6464

6565
Apply the same prompt-program discipline to Conversation, tool-definition, MCP API, ChatGPT App, public API, Terminal, and other interface prompts.
66+
Gate 7 is package-backed by `buildV41ConversationToolInterfacePromptRewrite`, emits `.bitcode/v41-conversation-tool-interface-prompt-rewrite.json`, and covers 9 source-safe rewrite rows with 60 passing predicates across Conversation PTRR PromptParts, Terminal conversation system prompt boundaries, rich execution-log prompt/result disclosure, DocCodeToolPrompt and ToolPromptRegistry hierarchy, MCP API/public API prompt contract posture, ChatGPT App action/tool prompt boundaries, Terminal/public summary source-safety, V38 Conversation/tool parity, and Gate 2 through Gate 6 prompt-program dependency roots.
6667

6768
### Gate 8: Prompt Benchmark Report And Telemetry Integration
6869

BITCODE_SPEC_V41_NOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ The artifact binds both Reading pipelines, all five Reading UX steps, Gate 2 pro
8383
Bitcode is active at V40.
8484
V41 now drafts the next canon: every PromptPart and composed Prompt must become catalogue-visible, benchmarkable, registry-bound, interpolation-checked, parser-typed, and source-safe.
8585
The first priority is Reading through `ReadNeedComprehensionSynthesis` and `ReadFitsFindingSynthesis`; Conversation, tool-definition, and interface prompts follow with the same discipline.
86+
Gate 7 currently applies that discipline to Conversation, tool-definition, MCP API, ChatGPT App, public API, Terminal, and other interface prompts with source-safe rows for route authority, source selection, rich stream-log disclosure, tool schemas, parsed return types, and no protected prompt/source/settlement/wallet/unpaid AssetPack payload serialization.
8687

8788
## Simplified-spec reading rule
8889

0 commit comments

Comments
 (0)