__pycache__/
*.py[cod]
.venv/
dist/
site/
public/
.moon/cache/
.ruff_cache/
.pytest_cache/
.coverage
logs/
# Claude Code's permission allowlist. It is per-machine by nature -- it accumulates
# absolute paths from wherever the checkout happens to live -- so it belongs in the
# `.local` file, which is the one meant to stay out of git.
.claude/settings.local.json
.cache/
# What `moon run :coverage` writes: per-model detail behind the two numbers the docs
# record. The MSL itself lands under .cache/, covered above.
coverage.json
# What `examples/animate.py` writes. The scenes are in the specs and the renderer is in
# the tree, so the videos are reproducible in a command -- committing tens of megabytes of
# them would be committing a build artefact.
media/
*.mp4
*.gif
# ...but the VS Code extension keeps its hand-written webview under `media/` too, and that is
# source, not a rendered artefact. Track it; keep only its generated corpus snapshot out (a
# 400KB simulation of every model, rebuilt by editors/vscode/scripts/build-data.py).
!editors/vscode/media/
editors/vscode/media/scope.data.json

# Local agent wiring: names cabildo-issues-mcp, which is not a dependency of this
# package. docs/issues/ IS tracked — the register is plain markdown anyone can read.
.mcp.json

# hypothesis keeps the examples that failed, so a rerun starts from them. Local state:
# regenerating it is what the generators are for.
.hypothesis/

# local agent instructions, not shared
AGENTS.md

# generated diagram outputs
/*.svg
/*.png
