Development
uv lock --check && uv sync --frozenuv run pre-commit installuv run pre-commit run --all-filesuv run pytestRead AGENTS.md before
changing generate_families.py or update_families.py: it lists the invariants each
module depends on and the test that guards each one.
This site
Section titled “This site”The documentation lives in docs/, built with Starlight
and starlight-pydocs. The
Python API pages are generated from the docstrings at
build time by Griffe, which runs through uvx
and reads the source without importing it.
cd docsnpm cinpm run dev # http://localhost:4321/mgnifam/npm run build # static site in docs/dist/Requires Node >= 22.12 and uv on PATH. Every push to main deploys the site to
GitHub Pages.