- Version:
V29 - V29 state: canonical promotion complete; V29 parity truth, product-gate audit, generated proof, and promotion automation are aligned
- Current canonical/latest target:
V29 - Canonical proof-source commit:
3cfa3e71ef553ecb25221ed7116e29eccbc4df24 - Prior canonical anchor:
BITCODE_SPEC_V28.md - Prior generated proof appendix:
BITCODE_SPEC_V28_PROVEN.md - Generated structured artifact inventory: active canonical
.proofs/v29/spec-family-report.json,.proofs/v29/canonical-input-report.json,.proofs/v29/canon-posture-drift-report.json, V29 gate-quality and promotion workflow evidence, andBITCODE_SPEC_V29_PROVEN.mdas the generated proof appendix for V29 promotion - Source parity state: V29 source-side Terminal transaction, wallet/BTC, Reading observability, AssetPack disclosure, settlement repair, organization authority, UX proof, workflow, and promotion surfaces are canonicalized in the promoted V29 file family
- State: draft target parity matrix opened
- Active canonical pointer during draft opening:
BITCODE_SPEC.txt->V28 - Scope: V29 canonical parity ledger for Terminal transaction depth, local/staging readiness, and promotion automation over V28
- Spec companion:
BITCODE_SPEC_V29.md - Notes companion:
BITCODE_SPEC_V29_NOTES.md - Delta companion:
BITCODE_SPEC_V29_DELTA.md - Generated proof appendix: none until V29 promotion
- Last fully realized canonical target preserved in source:
V29
The V29 parity matrix prevents Terminal-depth work from becoming vague product polish. Each gate must name source surfaces, tests, proof evidence, documentation, and accepted boundaries before it closes.
Gate 1 audit basis:
BITCODE_SPEC.txtBITCODE_SPEC_V28.mdBITCODE_SPEC_V28_DELTA.mdBITCODE_SPEC_V28_NOTES.mdBITCODE_SPEC_V28_PARITY_MATRIX.mdBITCODE_SPEC_V28_PROVEN.mdBITCODE_SPEC_V29_NOTES.mdREADME.mdAGENTS.md.github/workflows/bitcode-gate-quality.yml.github/workflows/bitcode-canon-quality.ymlpackage.jsonprotocol-demonstration/src/canon-posture.js- Terminal, Reading pipeline, BTD, pipeline-host, UAPI, and workflow surfaces named by V28 promotion.
No _legacy/ source is active source truth.
| Area | Gate | Source evidence | Judgment | Closure requirement |
|---|---|---|---|---|
| Draft family and branch posture | Gate 1 | BITCODE_SPEC_V29.md, DELTA, NOTES, PARITY, BITCODE_SPEC.txt, branch v29/gate-1-objectives-and-gating |
closed | V29 family validates in draft mode over active V28 and check:v29-gate1 passes. |
| Workflow retargeting | Gate 1 | .github/workflows/bitcode-gate-quality.yml, .github/workflows/bitcode-canon-quality.yml |
closed | CI checks V28 active / V29 draft posture instead of stale V27/V28 posture. |
| Terminal transaction read models | Gate 2 | apps/uapi/app/terminal/terminal-transaction-read-model.ts, apps/uapi/app/terminal/terminal-transaction-query.ts, TerminalTransactionWorkspace.tsx, TerminalTransactionDetailSurface.tsx, UAPI tests, Gate 2 checker |
closed | Terminal transaction state is URL-addressable, recoverable, typed, low-detail by default, and expandable without raw JSON as the ordinary operator contract. |
| Wallet signer/BTC operations | Gate 3 | packages/btd/src/btc-fee-operation.ts, BTC fee route, Terminal Wallet/BTC detail section, BTD and UAPI tests, Gate 3 checker |
closed | Signer session, PSBT, broadcast/finality/reorg/replacement/failure states are ordinary Terminal states. |
| Reading pipeline observability | Gate 4 | packages/pipelines/asset-pack/src/reading-pipeline-observability.ts, packages/pipeline-hosts/src/asset-pack-harness.ts, Terminal stream components, Gate 4 checker |
closed | Pipeline/phase/PTRR/ThricifiedGeneration/tool/prompt/raw-output/parsed-output telemetry is contract-projected, complete, and readable. |
| AssetPack disclosure rights | Gate 5 | asset-pack-disclosure.ts, AssetPack postprocess, sandbox harness, BTD access tests, Terminal disclosure review UI, Gate 5 checker |
closed | Source-safe preview and paid unlock are proven without protected-source leakage. |
| Settlement reconciliation repair | Gate 6 | BTD journal/reconciliation, Supabase readback, sandbox harness settlement evidence, Terminal repair UI, Gate 6 checker | closed | Ledger, database, and metaphysical state drift is classified, proof-rooted, repair-actioned, and visible. |
| Organization permission authority | Gate 7 | packages/btd/src/authority.ts, BTD/API/MCP/ChatGPT App tests, sandbox harness authority evidence, Terminal Authority section, Gate 7 checker |
closed | Registry-derived roles, holdings, read-license authority, settlement, confirmation, and interface admission govern actions. |
| Commercial formalization | Gate 8 | packages/protocol/src/index.js, packages/protocol/src/canon-posture.js, root scripts, protocol package tests, import scans, docs, Gate 8 checker |
closed | Demonstration-origin commercial internals are package-native and no direct demonstration-source imports remain in commercial/runtime sources. |
| Terminal UX quality | Gate 9 | Terminal UX contract, Playwright/Jest/a11y/responsive/browser QA | closed | Complete transaction cockpit is usable by default and inspectable in detail. |
| Promotion readiness | Gate 10 | promotion workflow, promotion command plan, V29 QA ledger, runtime posture preparation, .proofs/v29/*, BITCODE_SPEC_V29_PROVEN.md |
closed | version/v29 can promote to main only after all V29 checks pass and promotion automation can commit generated canon. |
| Area | Required V29 result | Judgment |
|---|---|---|
| Active canon pointer | BITCODE_SPEC.txt remains V28 during V29 gate work |
closed |
| Gate branch pattern | V29 work happens on version/v29 or v29/gate-N-* branches |
closed |
| Spec-family shape | V29 SPEC, DELTA, NOTES, and PARITY satisfy the full spec-family checker | closed |
| Gate 1 script | pnpm run check:v29-gate1 fails closed on stale posture or missing gates |
closed |
| Gate 2 read model | pnpm run check:v29-gate2 proves typed route-owned Terminal transaction reading |
closed |
| Gate 3 wallet/BTC operation | pnpm run check:v29-gate3 proves quote lifecycle, signer recovery, blocked readiness, API posture, and Terminal Wallet/BTC detail |
closed |
| Gate 4 Reading observability | pnpm run check:v29-gate4 proves contract-aware Reading stream telemetry and Terminal rendering |
closed |
| Gate 5 AssetPack disclosure | pnpm run check:v29-gate5 proves source-safe disclosure review, leakage detection, Terminal preview rendering, and PR title enforcement |
closed |
| Gate 7 organization authority | pnpm run check:v29-gate7 proves shared org/interface authority across BTD, API, MCP, ChatGPT App, harness, and Terminal |
closed |
| Gate 8 commercial formalization | pnpm run check:v29-gate8 proves package-native protocol exports, V28/V29 posture, script import cleanup, docs, tests, and CI wiring |
closed |
| Gate 9 Terminal UX browser proof | pnpm run check:v29-gate9 proves named landmarks, explicit state semantics, responsive browser coverage, focused Jest coverage, and CI wiring |
closed |
| Gate 10 promotion readiness | pnpm run check:v29-gate10 proves local/staging readiness, V29 promotion workflow support, runtime posture preparation, promotion dry-run, and generated-canon automation |
closed |
| Requirement | Source evidence | Current V29 judgment |
|---|---|---|
| Active canon remains V28 during V29 draft opening | BITCODE_SPEC.txt contains V28 |
drafted |
| Runtime draft target is V29 | protocol-demonstration/src/canon-posture.js declares V28 active and V29 draft |
drafted |
| V29 SPEC family exists as draft | BITCODE_SPEC_V29.md, DELTA, NOTES, and PARITY |
drafted |
| Gate-quality workflow is V29-aware | .github/workflows/bitcode-gate-quality.yml |
drafted |
| Canon-quality workflow is V29-aware | .github/workflows/bitcode-canon-quality.yml |
drafted |
| README reflects V28/V29 posture | README.md |
drafted |
| V29 Gate 1 checker exists | scripts/check-v29-gate1-objectives-and-gating.mjs and package script |
drafted |
- Gate 1 does not implement Terminal product depth.
- Gate 1 does not create
BITCODE_SPEC_V29_PROVEN.md. - Gate 1 does not promote
BITCODE_SPEC.txtto V29. - Gate 1 may retarget workflows to active V28 / draft V29 so later gates are greenable.
Gate 1 is complete when the V29 draft family validates, check:v29-gate1 passes, workflow posture is V29-aware, README/docs reflect V29 initiation, and the gate branch is committed and pushed for review into version/v29.
| Requirement | Source evidence | Current V29 judgment |
|---|---|---|
| Selected transactions are URL-addressable | terminal-transaction-query.ts, TerminalPageClient.tsx |
drafted |
| Detail focus is typed and recoverable | terminal-transaction-read-model.ts, TerminalTransactionDetailActionBar.tsx |
drafted |
| Low-detail read model exists before raw payloads | terminal-transaction-read-model.ts, TerminalTransactionDetailHero.tsx |
drafted |
| Section navigation exposes availability and blockers | terminal-transaction-read-model.ts, TerminalTransactionDetailSurface.tsx |
drafted |
| Console is blocked outside live execution-history mode | terminal-transaction-read-model.ts, UAPI read-model tests |
drafted |
| Gate 2 checker is wired to package scripts and CI | scripts/check-v29-gate2-terminal-transaction-read-models.mjs, package.json, gate workflow |
drafted |
- Gate 2 does not implement wallet signing, PSBT, broadcast, reorg, or replacement depth.
- Gate 2 does not implement deeper Reading pipeline telemetry; Gate 4 owns that work.
- Gate 2 does not expose protected AssetPack source before settlement.
- Gate 2 does not add versioned API routes or source identifiers.
Gate 2 is complete when Terminal selected transaction state rewrites recoverable URLs, a typed read model drives detail navigation and low-detail summaries, focused tests pass, check:v29-gate2 passes, CI invokes the checker, docs name the implemented source surfaces, and the gate branch is committed and pushed for review into version/v29.
| Requirement | Source evidence | Current V29 judgment |
|---|---|---|
| BTC fee quote lifecycle is package-owned | packages/btd/src/btc-fee-operation.ts, packages/btd/__tests__/btc-fee-operation.test.ts |
drafted |
| Signer-session recovery is explicit and no-custody | buildWalletSignerSessionRecovery, BTD operation tests |
drafted |
| Blocked-readiness receipts name blocker and repair path | buildBtcFeeBlockedReadinessReceipt, BTD operation tests |
drafted |
| Operation posture covers PSBT, broadcast, finality, replacement, reorg, failure | buildBtcFeeOperationPosture, BTD operation tests |
drafted |
| BTC fee route serializes JSON-safe operation posture | packages/api/src/routes/btd-crypto.ts, route typecheck, route tests |
drafted |
| Terminal exposes Wallet/BTC detail section | terminal-transaction-query.ts, terminal-transaction-read-model.ts, TerminalTransactionWalletBtcCard.tsx, terminal-wallet-btc-operation.ts, UAPI tests |
drafted |
| Gate 3 checker is wired to package scripts and CI | scripts/check-v29-gate3-wallet-signer-btc-operations.mjs, package.json, gate workflow |
drafted |
- Gate 3 does not implement full settlement reconciliation repair; Gate 6 owns drift repair and readback repair actions.
- Gate 3 does not expose protected AssetPack source before settlement.
- Gate 3 does not broadcast value-bearing mainnet transactions.
- Gate 3 does not add versioned API routes or source identifiers.
Gate 3 is complete when package primitives model BTC quotes, signer recovery, operation posture, and blocked readiness; API responses serialize operation posture; Terminal has a Wallet/BTC route-owned detail section; focused package and UAPI tests pass; check:v29-gate3 passes; CI invokes the checker and tests; docs name the implemented source surfaces; and the gate branch is committed and pushed for review into version/v29.
| Requirement | Source evidence | Current V29 judgment |
|---|---|---|
| Reading pipeline contracts remain the source of truth | reading-pipeline-contract.ts, contract tests |
drafted |
| Observability inventory covers both Reading pipelines and all contract levels | reading-pipeline-observability.ts, observability tests |
drafted |
| Live sandbox harness stamps stream events with contract ids and output posture | packages/pipeline-hosts/src/asset-pack-harness.ts, harness tests |
drafted |
| Harness evidence exports inventory and coverage readback | readingPipelineObservabilityInventory, readingPipelineObservabilityCoverage, harness tests |
drafted |
| Terminal summaries and execution state expose pipeline, phase, PTRR, ThricifiedGeneration, prompt, tool, and schema fields | terminal-pipeline-harness-client.ts, Terminal harness tests |
drafted |
| Shared execution log header renders contract-aware identifiers without raw JSON first | pipeline-execution-log-header.tsx, header tests |
drafted |
| Gate 4 checker is wired to package scripts and CI | scripts/check-v29-gate4-reading-pipeline-observability.mjs, package.json, gate workflow |
drafted |
- Gate 4 does not add a new execution primitive; it projects existing execution, pipeline, PTRR, and ThricifiedGeneration primitives.
- Gate 4 does not expose protected AssetPack source before settlement.
- Gate 4 does not close disclosure-depth unlock, settlement repair, organization authority, or full browser proof.
- Gate 4 does not add versioned API routes or source identifiers.
Gate 4 is complete when Reading pipeline observability is package-owned, stream events are contract-projected in the sandbox harness, Terminal renders the projection through shared execution components, focused package and UAPI tests pass, check:v29-gate4 passes, CI invokes the checker and tests, docs name the implemented source surfaces, and the gate branch is committed and pushed for review into version/v29.
| Requirement | Source evidence | Current V29 judgment |
|---|---|---|
| AssetPack disclosure review is package-owned | asset-pack-disclosure.ts, package exports, disclosure tests |
drafted |
| Source visibility separates pending, paid, owner, licensee, and denied states | buildAssetPackDisclosureReview, BTD access tests |
drafted |
| Protected source leakage fails closed before preview display | reviewAssetPackProtectedSourceLeakage, assertAssetPackDisclosureSourceSafe, disclosure tests |
drafted |
| Postprocessing persists disclosure review and review root | postprocess.ts, postprocess tests |
drafted |
| Sandbox harness stores and exports disclosure review evidence | packages/pipeline-hosts/src/asset-pack-harness.ts, harness tests |
drafted |
| Terminal preview surface renders disclosure policy before raw evidence | TerminalDepositReadWorkbench.tsx, Terminal harness client tests |
drafted |
| Gate PR title enforcement is automated | .github/workflows/bitcode-gate-quality.yml, PR template, AGENTS/README instructions |
drafted |
| Gate 5 checker is wired to package scripts and CI | scripts/check-v29-gate5-assetpack-disclosure-rights.mjs, package.json, gate workflow |
drafted |
- Gate 5 does not reveal protected AssetPack source before settlement.
- Gate 5 does not perform settlement reconciliation repair; Gate 6 owns ledger/database drift and repair.
Gate 6 closes the settlement reconciliation slice by making drift ordinary data instead of hidden operator guesswork.
Accepted surfaces:
packages/btd/src/reconciliation.tsis the canonical reconciliation primitive for ledger observed facts, database projected facts, private metaphysical canonical facts, settlement conservation checks, projection repair receipts, repair actions, drift-kind counts, report state, and proof roots.packages/api/src/routes/btd-crypto.tsaccepts settlement conservation checks and binds reconciliation proof roots into the Terminal journal entry for reconciliation settlements.packages/pipeline-hosts/src/asset-pack-harness.tsstoresasset-pack/settlement.ledgerDatabaseReconciliation, includes it in evidence, and streams reconciliation state/repair-action count after ledger readback.apps/uapi/app/terminal/terminal-journal-reconciliation.tsprojects the selected transaction into observed facts, projected facts, canonical facts, drift classes, blocking reasons, repair actions, proof roots, and repair receipts.apps/uapi/app/terminal/TerminalTransactionJournalReconciliationCard.tsxrenders the above as a low-detail operator surface with raw payload still available behind expansion.
Accepted failure states:
- Confirmed ledger facts missing from database projection require operator-approved projection repair.
- Reorged or failed fee/anchor finality blocks settlement unlock.
- Database-only orphan projection blocks until quarantined or matched to a ledger observation.
- BTC fee settlement conservation drift blocks unlock and delivery.
- Post-settlement missing pull-request delivery produces a delivery recovery action without exposing protected source.
Gate 6 completion condition:
pnpm run check:v29-gate6passes.- Focused BTD, API, pipeline-hosts, and UAPI tests prove repair classification, conservation drift, proof roots, and Terminal repair visibility.
Gate 5 is complete when AssetPack disclosure review is package-owned, postprocess and sandbox harness evidence include source-safe disclosure review roots, protected-source leakage tests fail closed, Terminal renders the disclosure review through the Reading preview surface, gate PR title enforcement is active, focused package and UAPI tests pass, check:v29-gate5 passes, CI invokes the checker and tests, docs name the implemented source surfaces, and the gate branch is committed and pushed for review into version/v29.
Gate 7 closes the organization authority slice by making action permission a shared BTD decision instead of interface-local convention.
Accepted surfaces:
packages/btd/src/authority.tsis the canonical organization/interface authority primitive for role checks, explicit grants, wallet binding, registry read access, settlement, explicit confirmation, repair approval, source visibility, and authority proof roots.packages/api/src/routes/btd-crypto.tsandapps/uapi/app/api/btd/organization-interface-authority/route.tsexpose JSON-safe authority decisions for application routes.packages/executions-mcp/src/mcp-server/src/auth/middleware.tscan require interface authority after existing permission and BTD read-access checks.packages/chatgptapp/src/tools.tsrequires explicit confirmation, registry read-access evidence, and organization authority evidence before connected-interface writes.packages/pipeline-hosts/src/asset-pack-harness.tsstores and emitsorganizationAuthoritybeside settlement unlock and reconciliation evidence.apps/uapi/app/terminal/terminal-organization-authority.tsandTerminalTransactionOrganizationAuthorityCard.tsxproject the selected transaction into authority metrics, blockers, decision rows, proof roots, and raw payload.
Accepted failure states:
- Missing role, insufficient role, or missing explicit grant blocks authority.
- Missing wallet binding blocks fee payment, source unlock, and delivery when those actions require Reader wallet proof.
- Missing or denied registry read access blocks protected-source unlock and delivery.
- Pending settlement blocks protected-source visibility even when role evidence exists.
- Missing explicit confirmation blocks payment, delivery, repair, and administration actions that cross sensitive boundaries.
- Interfaces may deny actions even when the organization role could authorize them elsewhere.
Gate 7 completion condition:
pnpm run check:v29-gate7passes.- Focused BTD, API, MCP, ChatGPT App, pipeline-hosts, and UAPI tests prove organization holdings, active/expired/revoked license usage, paid delivery admission, unpaid denial, interface denial, connected-interface write gating, harness evidence, and Terminal visibility.
- Gate-quality CI invokes the Gate 7 checker and focused tests.
- Gate 7 does not add broad enterprise RBAC administration beyond Terminal transaction authority; later versions may deepen team policy authoring.
- Gate 7 does not reveal protected source before settlement and does not add versioned API routes or source identifiers.
Gate 8 closes the demonstration-origin commercial formalization slice by moving gate-critical helpers behind the protocol package boundary.
Accepted surfaces:
packages/protocol/src/index.jsexports canonical posture, spec-family validation, canonical-input validation, canon-posture-drift validation, generated artifact builders, and canonical proven-generation helpers.packages/protocol/src/index.d.tsdeclares the same package-native API surface for consumers that type-check against the protocol package.packages/protocol/src/canon-posture.jsdeclares active V28 and draft V29 while V29 gates are in progress.- Root scripts for spec-family checks, canonical-input checks, canon-posture drift, spec quality, pre-commit posture, and proven generation import through the protocol package source boundary.
packages/protocol/test/protocol-package-boundary.test.jsproves package exports, posture, provenance-helper availability, repository-revision deposit behavior, and direct demonstration-source import boundaries.apps/uapi/tests/protocolCommercialBoundary.test.tsremains the commercial application boundary scan proving UAPI depends on@bitcode/protocoland not the standalone demonstration package..github/workflows/bitcode-gate-quality.ymlruns the Gate 8 checker, protocol package typecheck/test, and the commercial protocol boundary test.
Accepted boundaries:
- Gate 8 does not delete the standalone protocol demonstration.
- Gate 8 does not forbid generated proof inventories or historical documentation from citing
protocol-demonstration/as evidence. - Gate 8 forbids direct imports from standalone demonstration source in commercial/runtime source and root scripts.
- Gate 8 does not promote
BITCODE_SPEC.txtto V29. - Gate 8 does not add versioned API routes or source identifiers.
Gate 8 completion condition:
pnpm run check:v29-gate8passes.- Focused protocol package typecheck/test and the UAPI commercial protocol boundary test pass.
- V29 SPEC, DELTA, NOTES, PARITY, protocol package README, package scripts, and gate-quality workflow name the formalized package-native boundary.
- Root scripts use protocol package exports for canonical helpers and do not directly import
protocol-demonstration/src/*.
Gate 9 closes the Terminal UX quality and browser-proof slice by making the transaction cockpit readable, keyboard reachable, responsive, and test-proven.
Accepted surfaces:
apps/uapi/app/terminal/terminal-ux-browser-proof.tsexports the typed contract for Gate 9 landmarks, viewports, states, route checks, and evidence files.TerminalPageClient.tsxexposes a namedmaincockpit region and skip link to the selected transaction workspace.TerminalTransactionWorkspace.tsxexposes a named transaction workspace region, selected activity status, and explicit loading, empty, and error states.TerminalTransactionDetailSurface.tsx,TerminalTransactionDetailHero.tsx, andTerminalTransactionDetailActionBar.tsxexpose a named selected activity detail region, source-safe low-detail detail hero, route-owned section controls, blocked Console posture, and action error alerts.BitcodeTransactionsTable.tsxandBitcodeTransactionsDataTable.tsxexpose table state semantics while containing table overflow inside the table scroller.apps/uapi/tests/terminalUxBrowserProof.test.tsxproves the contract and UI state semantics.apps/uapi/tests/e2e/commercial-mvp.terminal-ux.spec.tsproves the cockpit through a real browser in deterministic mock mode..github/workflows/bitcode-gate-quality.ymlruns the Gate 9 checker, focused Jest test, Playwright browser install, and focused Terminal browser proof.
Accepted boundaries:
- Gate 9 does not redesign Reading into a different flow.
- Gate 9 does not reveal protected AssetPack source before settlement.
- Gate 9 does not add versioned API routes or gate/work-in-progress runtime identifiers.
- Gate 9 does not perform non-mocked staging promotion readiness; Gate 10 owns that slice.
Gate 9 completion condition:
pnpm run check:v29-gate9passes.- Focused UAPI Jest coverage and Playwright Terminal browser proof pass.
- V29 SPEC, DELTA, NOTES, PARITY, Terminal README, package scripts, and gate-quality workflow name the browser-proof contract.
Gate 10 closes the local/staging and promotion-readiness slice by proving that the version branch can become canon through automation rather than operator memory.
Accepted surfaces:
scripts/check-v29-gate10-local-staging-promotion-readiness.mjsvalidates the Gate 10 specification, QA ledger, scripts, workflow wiring, runtime posture, and promotion-mode behavior before and after the generated V29/V30 protocol package posture rewrite..github/workflows/bitcode-gate-quality.ymlruns all V29 gate checks in draft posture and switches to promoted V29 checks after the promotion commit..github/workflows/bitcode-canon-quality.ymlaccepts both V28 active / V29 draft and V29 active / V30 draft states..github/workflows/v29-canon-promotion.ymlis the version promotion workflow forversion/v29pull requests intomain; it validates, promotes, generatesBITCODE_SPEC_V29_PROVEN.md, writes.proofs/v29/*, and commits the pointer update back to the version branch.scripts/promote-bitcode-canon.mjssupports--version V29, includes every V29 gate check, local proof suites, staging-testnet readback verifier, Terminal browser proof, runtime/spec preparation, generated proof creation, and promoted-family validation.scripts/prepare-bitcode-spec-family-promotion.mjsrewrites V29 hand-authored status truth and the promoted V29 implementation matrix/checklist judgments for promoted mode.scripts/prepare-bitcode-runtime-canon-promotion.mjsrewrites standalone demonstration posture and commercialpackages/protocolposture/data for V29 active / V30 draft.BITCODE_V29_QA.mdnames the local and staging-testnet evidence packet without storing environment secrets.
Accepted boundaries:
- Gate 10 does not merge
version/v29tomain; it prepares the version branch for that pull request. - Gate 10 does not commit
BITCODE_SPEC_V29_PROVEN.md; the promotion workflow owns generated canon. - Gate 10 does not require value-bearing mainnet behavior.
- Gate 10 does not add versioned runtime routes or source identifiers.
Gate 10 completion condition:
pnpm run check:v29-gate10passes.npm run promote:canon -- --version V29 --commit HEAD --dry-runproduces a V29 command plan.- Gate-quality CI invokes the Gate 10 checker.
- V29 SPEC, DELTA, NOTES, PARITY, QA ledger, README, package scripts, promotion scripts, runtime posture preparation, and workflows name the promotion readiness boundary.