# Python
__pycache__/
*.py[cod]
*.egg-info/
.eggs/
build/
dist/
*.so

# Virtual envs / tooling
.venv/
venv/
.env

# Test / type caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
.hypothesis/
.coverage
htmlcov/
coverage.xml

# uv
uv.lock

# Node (only used by tools/gen_golden.mjs)
node_modules/

# Editors / OS
.idea/
.vscode/
.DS_Store

# Local-only, maintainer-only material (engine reference, port notes,
# publishing runbook, and golden-generation scripts with local source paths)
docs/
tools/
.claude/

# Local-only: everything derived from the reference TS engine. The seeds,
# configs, goldens and violation snapshots are generated from (or are inputs
# to) the private @specforge/validator source, and the parity suites assert
# byte-equivalence against them — they only run where that checkout exists.
# Regenerate with tools/gen_*.mjs (SPECFORGE=<path to the validator checkout>).
fixtures/
tests/test_api.py
tests/test_config.py
tests/test_cross_validation.py
tests/test_expansion_gate.py
tests/test_scoring.py
tests/test_structural.py
tests/test_validate_differential.py
