Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions .github/workflows/validate-workflow-contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,13 @@ on:
- main

jobs:
validate:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13"]
name: validate (Python ${{ matrix.python-version }})
steps:
- name: Checkout
uses: actions/checkout@v7
Expand All @@ -26,7 +31,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: "3.11"
python-version: ${{ matrix.python-version }}

- name: Materialize private AI workflow
run: ./scripts/setup-ai-workflow.sh
Expand Down Expand Up @@ -55,3 +60,13 @@ jobs:

- name: Pytest
run: pytest tests/ -q

# Branch protection requires a check named exactly "validate". Matrix jobs
# report as "validate (Python X.Y)", so this aggregator satisfies the gate.
validate:
needs: test
if: always()
runs-on: ubuntu-latest
steps:
- name: Require matrix success
run: test "${{ needs.test.result }}" = "success"
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed

- `mypy` excludes `build/` (avoids duplicate-module errors after `python -m build`)
- Maintainer setup notes CI Python 3.11 and that workflow validate needs
- Maintainer setup notes that workflow validate needs
`./scripts/setup-ai-workflow.sh` first
- CI product quality gates run on Python 3.11, 3.12, and 3.13 (matrix)
- CI runs `ruff format --check src tests`, `ruff check .`, and `mypy .` in
addition to pytest (matches README / stack-profile quality gates)
- CI / `[dev]` include `bandit` on `--check` dogfood modules (`checks.py`,
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,8 @@ Regex rules on **added** hunk lines. Shorthand or table form with optional

## Tests and quality

Local (same gates as CI on pull requests and `main`):
Local (same gates as CI on pull requests and `main`). CI runs that set on
**Python 3.11, 3.12, and 3.13**:

```bash
pytest
Expand Down
6 changes: 3 additions & 3 deletions docs/ai-workflow-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ diffrat product files under `.ai/project/`, `.ai/docs/project-requirements.md`,
and related paths. Tracked `.ai/ideas/` overlays product entries; template
`implemented/` wins on rematerialize.

CI runs on **Python 3.11**. Local development needs **Python ≥ 3.11** (3.12+ is
fine). Before `./scripts/validate-ai-workflow.sh` or
`python ci/validate-workflow-contracts.py --mode project`, run
CI runs the product quality gates on **Python 3.11, 3.12, and 3.13**. Local
development needs **Python ≥ 3.11**. Before `./scripts/validate-ai-workflow.sh`
or `python ci/validate-workflow-contracts.py --mode project`, run
`./scripts/setup-ai-workflow.sh` so materialized `.ai/` path references resolve.

## Full workflow validation (local)
Expand Down
Loading