CI/CD Pipeline

This guide maps the repository quality gates to a workflow you can run locally and in GitHub Actions.

1. Keep local resources aligned

When workflow prompts or templates are bundle-owned, refresh the IDE export after module changes:

specfact init ide --repo . --ide cursor --force

Install the repository hooks locally so the same guardrails run before you push:

pre-commit install
pre-commit run --all-files

2. Run the repository quality gates locally

The repository gate order is:

hatch run format
hatch run type-check
hatch run lint
hatch run yaml-lint
hatch run verify-modules-signature --require-signature --payload-from-filesystem --enforce-version-bump
hatch run contract-test
hatch run smart-test
hatch run test

Use the same order locally before pushing changes that affect docs, bundles, or registry metadata.

2.1 CI/CD stage mapping

Map the local commands to the pipeline stages this repository enforces:

  • Pre-commit stage: pre-commit run --all-files
  • Quality gates stage: hatch run format -> hatch run type-check -> hatch run lint -> hatch run yaml-lint
  • Release-readiness stage: hatch run verify-modules-signature --require-signature --payload-from-filesystem --enforce-version-bump
  • Validation stage: hatch run contract-test -> hatch run smart-test -> hatch run test

3. Add scoped workflow checks while developing

specfact code review run docs/guides/cross-module-chains.md --no-tests
specfact govern enforce sdd legacy-api --no-interactive

These commands complement the repository gates when your branch specifically changes workflow docs or bundle enforcement behavior.

4. Build the docs site before publishing

bundle exec jekyll build --destination ../_site

Run this when you changed published documentation so link, redirect, and front-matter issues are caught before PR review.