chore: archive P4b.5 plan package and mark milestone complete #219
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: CI | |
| on: | |
| pull_request: | |
| push: | |
| jobs: | |
| sync-and-version-guard: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Sync skills | |
| run: bash scripts/sync-skills.sh | |
| - name: Ensure sync produced no changes | |
| run: git diff --exit-code | |
| - name: Check skills sync | |
| run: bash scripts/check-skills-sync.sh | |
| - name: Check version consistency | |
| run: bash scripts/check-version-consistency.sh | |
| runtime-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Check builtin catalog drift | |
| run: | | |
| tmp="$(mktemp)" | |
| python3 scripts/generate-builtin-catalog.py --output "$tmp" >/dev/null | |
| python3 - runtime/builtin_catalog.generated.json "$tmp" <<'PY' | |
| import difflib | |
| import json | |
| from pathlib import Path | |
| import sys | |
| def normalize(path_str: str) -> list[str]: | |
| payload = json.loads(Path(path_str).read_text(encoding="utf-8")) | |
| payload.pop("generated_at", None) | |
| return json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True).splitlines() | |
| left_path, right_path = sys.argv[1], sys.argv[2] | |
| left = normalize(left_path) | |
| right = normalize(right_path) | |
| if left != right: | |
| for line in difflib.unified_diff(left, right, fromfile=left_path, tofile=right_path, lineterm=""): | |
| print(line) | |
| raise SystemExit(1) | |
| PY | |
| - name: Check fail-close contract | |
| run: python3 scripts/check-fail-close-contract.py | |
| - name: Check context checkpoints | |
| run: python3 scripts/check-context-checkpoints.py repo --root . | |
| - name: Check pull request checkpoint metadata | |
| if: github.event_name == 'pull_request' | |
| run: | | |
| python3 scripts/check-context-checkpoints.py pr-body \ | |
| --root . \ | |
| --event-path "$GITHUB_EVENT_PATH" \ | |
| --base-sha "${{ github.event.pull_request.base.sha }}" \ | |
| --head-sha "${{ github.event.pull_request.head.sha }}" | |
| - name: Run hard gate tests (contract + smoke + distribution) | |
| run: | | |
| pip install --quiet pytest | |
| python3 -m pytest tests -m "not implementation_mirror" -v | |
| - name: Run implementation-mirror tests (advisory) | |
| if: always() | |
| continue-on-error: true | |
| run: python3 -m pytest tests -m "implementation_mirror" -v | |
| - name: Run runtime smoke check | |
| run: bash scripts/check-runtime-smoke.sh | |
| - name: Run skill eval quality gate | |
| run: python3 scripts/check-skill-eval-gate.py |