__pycache__/
*.pyc
.venv/
dist/
build/
*.egg-info/
*.so
target/
examples/out/
exploration/out/

# Benchmark and exploration results: regenerate them, never review them.
*.json

# Working notes: session handoffs, plans, measurement logs. They record
# intermediate results and are rewritten constantly, so they are kept on
# disk rather than in history. README.md is documentation and stays.
*.md
!README.md

# Generated documentation. Built by .github/workflows/docs.yml and pushed
# straight to Pages -- it exists on GitHub and nowhere else, so generated
# HTML never lands in a diff, a review, or a working tree.
docs/
docs_build/

# Agent scratch
.claude/
.goose/
.goosehints
.agy/

# Coverage database: rewritten by every test run, so tracking it makes
# each commit carry an unrelated binary diff -- and the pre-commit coverage
# hook rewrites it *after* staging, which fails the commit outright.
.coverage
