# Python
__pycache__/
*.py[cod]
.venv/
*.egg-info/
.pytest_cache/

# Spike tape artifacts (regenerated by running the spike)
*.tape.sqlite
/tmp_tapes/

# Exception: the committed replay-fixture corpus (replay --check regression
# gate) — these tapes are checked in, not regenerated per-run.
!/experiments/replay_fixtures/*.tape.sqlite

# Runtime artifacts (CLI output, regenerated on demand)
/store.db
/report.html
/blame_*.json
/tournament_*.json
/validation_report.json
/bench_report.json
/examples/demo_report.html
/junit.xml
/export.json

# Build, coverage, and tool caches (regenerated on demand)
/dist/
.coverage
.coverage.*
htmlcov/
.mypy_cache/
.ruff_cache/

# Local-only planning scaffolding (workspace convention)
docs/superpowers/
.beads/
planning/
.superpowers/
blame_*.md

# Untracked local-only analysis and dev-tool scaffolding: hatchling's default
# sdist file-selection sweeps by .gitignore pattern, not git-tracking status,
# so anything landmine-adjacent here must be listed explicitly rather than
# relying on staying untracked. docs/shepherd-gap-analysis.md in particular
# must never land in a built artifact -- see this repo's naming policy.
docs/shepherd-gap-analysis.md
.hypothesis/
.claude/
