__pycache__/
*.py[cod]
.venv/
.uv/
dist/
# Written by scripts/generate_sbom.py; published as release assets, never committed.
sbom/
build/
*.egg-info/
**/*.egg-info/
.mypy_cache/
.ruff_cache/
.pytest_cache/
.import_linter_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
.python-version

# OS
.DS_Store
Thumbs.db

# Env / secrets
.env
.env.*

# Editors
.vscode/
.idea/

# Logs
*.log

# AI-agent tooling and internal working docs (not part of the published project).
# `.claude/settings.json` and `.claude/hooks/` ARE checked in on purpose: CLAUDE.md
# promises every agent working here gets the auto-format hook, and an ignored hook
# is a promise nobody keeps. Only machine-local state stays out.
.claude/settings.local.json
.claude/scheduled_tasks.lock
docs/superpowers/
.playwright-mcp/
