Skip to content

chore(release): v1.2.0 doc alignment #66

chore(release): v1.2.0 doc alignment

chore(release): v1.2.0 doc alignment #66

Workflow file for this run

name: checks
on:
push:
branches: [main]
pull_request:
# Lets release.yml reuse this job on tag push, so the canonical list of
# checks lives only here.
workflow_call:
concurrency:
group: checks-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
verify:
runs-on: ubuntu-latest
strategy:
matrix:
# 3.9 mirrors the oldest system python contributors run the lints
# under via bare `python3` (PR #7 / #6): a 3.10+-only construct that
# passes on 3.12 alone would still crash local builds. 3.12 is the
# current baseline.
python-version: ["3.9", "3.12"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Manifest parse lint
run: |
pip install --quiet pyyaml
python3 scripts/check_manifests.py
- name: Invariant lint
run: python3 scripts/check_invariants.py
- name: Pack schema lint
run: python3 scripts/check_pack_schema.py
- name: Verbatim block sync
run: python3 scripts/check_verbatim_blocks.py
- name: Version consistency
run: python3 scripts/check_version_consistency.py
- name: Mutation + unit tests
run: |
pip install --quiet pytest
python3 -m pytest scripts/ -q
- name: claude.ai zip build
run: bash scripts/build_claude_ai_zip.sh
- name: Manifest parse lint (post-build zip)
# The pre-build run skips the zip-frontmatter check (no artifact yet);
# re-run after the build so the SKILL.md that actually ships is parsed.
run: python3 scripts/check_manifests.py
- name: Portable build
# The portable build carries its own wording gates (filesystem/router
# vocabulary must not survive the rewrite); running it here makes those
# gates fire on every push, not only on a maintainer's machine.
run: bash scripts/build_portable.sh