Skip to content

feat: add output contract enforcement for all skill stages #340

feat: add output contract enforcement for all skill stages

feat: add output contract enforcement for all skill stages #340

Workflow file for this run

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: 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 context checkpoints
run: python3 scripts/check-context-checkpoints.py repo --root .
- 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-bundle-smoke.sh
- name: Run install/payload bootstrap smoke
run: python3 scripts/check-install-payload-bundle-smoke.py
- name: Run prompt runtime gate smoke
run: python3 scripts/check-prompt-runtime-gate-smoke.py