Skip to content

Gate 3: Implement staged Read Need-Fit boundary #117

Gate 3: Implement staged Read Need-Fit boundary

Gate 3: Implement staged Read Need-Fit boundary #117

name: Bitcode Canon Quality
on:
push:
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
bitcode-spec-basics:
name: Bitcode Spec Basics
runs-on: ubuntu-latest
container:
image: node:22-bookworm
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Validate active canon and V28 draft posture
run: |
node scripts/check-bitcode-canonical-inputs.mjs --current-target V27
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V27 --draft-target V28
node scripts/check-bitcode-spec-family.mjs --version V28 --mode draft --current-target V27
bitcode-demonstration-mvp:
name: Bitcode Demonstration MVP
runs-on: ubuntu-latest
needs: bitcode-spec-basics
container:
image: node:22-bookworm
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run V28 protocol-demonstration MVP QA
run: npm --prefix protocol-demonstration run test:v28-mvp-qa
bitcode-spec-commit-conformance:
name: Bitcode Spec Commit Conformance
runs-on: ubuntu-latest
needs: bitcode-spec-basics
container:
image: node:22-bookworm
env:
SPEC_TITLE: ${{ github.event_name == 'pull_request' && github.event.pull_request.title || github.event.head_commit.message }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run V28 strict draft conformance for spec-title changes
run: |
case "$SPEC_TITLE" in
spec:\ V28*|spec:\ v28*)
node scripts/check-bitcode-spec-family.mjs --version V28 --mode draft --current-target V27
;;
*)
echo "Skipping strict spec-title conformance; title is not a V28 spec change."
;;
esac