# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info

# Virtual environments
.venv

# Tooling
.pytest_cache/
.ruff_cache/
# The pre-commit mypy hook writes this, and it is the one tool cache the list
# was missing -- so `git add -A` after a hook run stages sixteen multi-megabyte
# `.db` files and `check-added-large-files` refuses the commit.
.mypy_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
.hypothesis/
.mutmut-cache
mutants/
.cosmic-ray/
cosmic-ray.sqlite*
uv.lock
.claude/worktrees/
site/

# `scripts/mutation.py` builds a detached worktree here and runs the session
# in it, because cosmic-ray's `local` distributor mutates the working tree in
# place. Nothing in it is worth keeping between runs except the time the sync
# took, which is why the script reuses it rather than recreating it.
.mutation/
.worktrees/
*.pyc
.mutmut-cache/
.task-prompt.md
HANDOVER.md
.claude/tackline/memory/sessions/2026*.md
.specops/cache/
.specops/locks/
.specops/worker_leases/
