V31 Gate 1: Open Auxillaries spec roadmap #172
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Bitcode Gate Quality | |
| on: | |
| push: | |
| branches: | |
| - "v*/gate-*" | |
| - "version/**" | |
| pull_request: | |
| branches: | |
| - "version/**" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| jobs: | |
| gate-quality: | |
| name: Gate Quality | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Validate gate pull request title | |
| if: github.event_name == 'pull_request' | |
| env: | |
| PR_BASE_REF: ${{ github.base_ref }} | |
| PR_HEAD_REF: ${{ github.head_ref }} | |
| PR_TITLE: ${{ github.event.pull_request.title }} | |
| run: | | |
| if [[ "$PR_BASE_REF" == version/* && "$PR_HEAD_REF" =~ ^v([0-9]+)/gate-([0-9]+)- ]]; then | |
| expected_version="V${BASH_REMATCH[1]}" | |
| expected_gate="${BASH_REMATCH[2]}" | |
| if [[ ! "$PR_TITLE" =~ ^${expected_version}[[:space:]]+Gate[[:space:]]+${expected_gate}:[[:space:]].+ ]]; then | |
| echo "Gate pull request titles must begin with: ${expected_version} Gate ${expected_gate}:" | |
| echo "Observed: ${PR_TITLE}" | |
| exit 1 | |
| fi | |
| fi | |
| - name: Validate draft canon posture | |
| run: | | |
| POINTER="$(cat BITCODE_SPEC.txt)" | |
| if [ "$POINTER" = "V28" ]; then | |
| node scripts/check-bitcode-spec-family.mjs --version V28 --mode promoted --current-target V28 | |
| node scripts/check-bitcode-spec-family.mjs --version V29 --mode draft --current-target V28 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V28 --draft-target V29 | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V28 | |
| node scripts/check-v29-gate1-objectives-and-gating.mjs --skip-branch-check | |
| node scripts/check-v29-gate2-terminal-transaction-read-models.mjs --skip-branch-check | |
| node scripts/check-v29-gate3-wallet-signer-btc-operations.mjs --skip-branch-check | |
| node scripts/check-v29-gate4-reading-pipeline-observability.mjs --skip-branch-check | |
| node scripts/check-v29-gate5-assetpack-disclosure-rights.mjs --skip-branch-check | |
| node scripts/check-v29-gate6-settlement-reconciliation-repair.mjs --skip-branch-check | |
| node scripts/check-v29-gate7-organization-permission-authority.mjs --skip-branch-check | |
| node scripts/check-v29-gate8-demonstration-origin-formalization.mjs --skip-branch-check | |
| node scripts/check-v29-gate9-terminal-ux-browser-proof.mjs --skip-branch-check | |
| node scripts/check-v29-gate10-local-staging-promotion-readiness.mjs --skip-branch-check | |
| elif [ "$POINTER" = "V29" ]; then | |
| node scripts/check-bitcode-spec-family.mjs --version V29 --mode promoted --current-target V29 | |
| node scripts/check-bitcode-spec-family.mjs --version V30 --mode draft --current-target V29 | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V29 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V29 --draft-target V30 | |
| node scripts/check-v29-gate10-local-staging-promotion-readiness.mjs --promotion-mode --skip-branch-check | |
| node scripts/check-v30-gate1-roadmap-and-gating.mjs --skip-branch-check | |
| node scripts/check-v30-gate2-protocol-package-api-boundaries.mjs --skip-branch-check | |
| node scripts/check-v30-gate3-bitcoin-taproot-psbt-fee-rigor.mjs --skip-branch-check | |
| node scripts/check-v30-gate4-btd-assetpack-mint-read-receipts.mjs --skip-branch-check | |
| node scripts/check-v30-gate5-testnet-ledger-projection-hardening.mjs --skip-branch-check | |
| node scripts/check-v30-gate6-source-to-shares-proof-cleanup.mjs --skip-branch-check | |
| node scripts/check-v30-gate7-bridge-readiness-research-boundaries.mjs --skip-branch-check | |
| node scripts/check-v30-gate8-protocol-telemetry-proof-hooks.mjs --skip-branch-check | |
| node scripts/check-v30-gate9-interface-integration-regression-proof.mjs --skip-branch-check | |
| node scripts/check-v30-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check | |
| elif [ "$POINTER" = "V30" ]; then | |
| node scripts/check-bitcode-spec-family.mjs --version V30 --mode promoted --current-target V30 | |
| node scripts/check-bitcode-spec-family.mjs --version V31 --mode draft --current-target V30 | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V30 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V30 --draft-target V31 | |
| node scripts/check-v30-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check | |
| node scripts/check-v31-gate1-spec-roadmap-opening.mjs --skip-branch-check | |
| else | |
| echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2 | |
| exit 1 | |
| fi | |
| - name: Validate source casing and imports | |
| run: | | |
| bash scripts/find-uppercase-raw-promptparts.sh | |
| bash scripts/check-import-casing.sh | |
| - name: Type-check gate packages | |
| run: | | |
| pnpm --filter @bitcode/btd typecheck | |
| pnpm --filter @bitcode/api build | |
| pnpm --dir packages/executions-mcp/src/mcp-server run type-check | |
| pnpm --dir packages/chatgptapp exec tsc --noEmit --pretty false | |
| pnpm --filter @bitcode/pipeline-asset-pack typecheck | |
| pnpm --filter @bitcode/pipeline-hosts typecheck | |
| pnpm --filter @bitcode/protocol typecheck | |
| - name: Test gate packages | |
| run: | | |
| pnpm --filter @bitcode/btd test | |
| pnpm --filter @bitcode/btd test -- --runTestsByPath __tests__/btc-fee-operation.test.ts | |
| pnpm --filter @bitcode/btd test -- --runTestsByPath __tests__/btd.test.ts | |
| pnpm --filter @bitcode/api exec jest --config jest.config.cjs --runTestsByPath src/routes/__tests__/btd-crypto.test.ts --runInBand | |
| pnpm --dir packages/executions-mcp/src/mcp-server run test:mcp -- --runTestsByPath src/__tests__/unit/auth.test.ts --runInBand | |
| pnpm --dir packages/chatgptapp exec jest --runTestsByPath src/__tests__/tools.test.ts --runInBand | |
| pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --runTestsByPath src/__tests__/asset-pack-harness.test.ts --runInBand | |
| pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --runTestsByPath src/__tests__/reading-pipeline-observability.test.ts src/__tests__/reading-pipeline-contract.test.ts --runInBand | |
| pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --runTestsByPath src/__tests__/asset-pack-disclosure.test.ts src/__tests__/postprocess.test.ts src/__tests__/read-need.test.ts --runInBand | |
| pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| pnpm --filter @bitcode/protocol test | |
| - name: Test staged Reading route and Terminal harness contracts | |
| run: | | |
| pnpm --dir uapi exec jest --runTestsByPath \ | |
| tests/api/readReviewRoute.test.ts \ | |
| tests/api/pipelineHarnessRoute.test.ts \ | |
| tests/terminalPipelineHarnessClient.test.ts \ | |
| tests/terminalDepositReadWorkbench.test.ts \ | |
| tests/terminalTransactionQuery.test.ts \ | |
| tests/terminalTransactionReadModel.test.ts \ | |
| tests/terminalProtocolProjection.test.ts \ | |
| tests/terminalInterfaceIntegrationRegression.test.ts \ | |
| tests/terminalWalletBtcOperation.test.ts \ | |
| tests/terminalJournalReconciliation.test.ts \ | |
| tests/terminalOrganizationAuthority.test.ts \ | |
| tests/protocolCommercialBoundary.test.ts \ | |
| tests/terminalTransactionDetailCards.test.tsx \ | |
| tests/terminalTransactionDetailSnapshot.test.ts \ | |
| tests/terminalUxBrowserProof.test.tsx \ | |
| tests/pipelineExecutionLogHeader.test.tsx \ | |
| --runInBand | |
| - name: Install Terminal browser proof browser | |
| run: pnpm --dir uapi exec playwright install chromium --with-deps | |
| - name: Browser proof Terminal cockpit | |
| run: pnpm --dir uapi run test:e2e:terminal-ux | |
| - name: Test pipeline readback verifier | |
| run: pnpm test:qa:v28:pipeline-readback | |
| - name: Test protocol demonstration | |
| run: | | |
| npm --prefix protocol-demonstration test | |
| npm --prefix protocol-demonstration run test:v28-mvp-qa | |
| - name: Check diff hygiene | |
| run: git diff --check |