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

# Build artifacts
build/
dist/

# uv / virtualenv
.venv/
venv/

# Tooling caches
.pytest_cache/
.ruff_cache/
.pyright/
.mypy_cache/

# OS
.DS_Store

# Reenact local store: recordings live here by default and are never
# auto-committed; scenarios are exported to JSONL cassettes explicitly.
.reenact/
*.sqlite
*.sqlite3
*.db
*.db-wal
*.db-shm

# Local-only docs (planning, status, notes) - never committed.
*.local.md

# Environment files with secrets (the committed template is .env.example).
.env
.env.*
!.env.example

# Machine-specific benchmark output (regenerated by `python -m reenact.bench`).
core/bench/results/

# Local build scaffolding for the README demo GIF (the vhs tape + its cassettes).
# Only the rendered GIF (docs/demo.gif) is committed; the tape is kept locally and
# rebuilt from the reenact-demo cassettes when the GIF needs regenerating.
docs/tape/
