# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# uv / packaging
.venv/
venv/
.python-version
uv.lock
pip-log.txt
pip-delete-this-directory.txt

# Testing / coverage
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
htmlcov/

# Type checking
.mypy_cache/
.pyre/
.pytype/
.ruff_cache/

# IDE
.idea/
.vscode/
*.swp
*.swo
*~
.DS_Store

# Env / secrets
.env
.env.local
.env.*.local
*.pem
*.key

# whatifd local artifacts
reports/
.whatifd-cache/
*.whatifd.json

# Skill telemetry — raw transcripts and bulky benchmark outputs.
# Cardinal rule #5 (sensitive data wrapped, never raw) — raw JSONL transcripts
# may contain pasted user content. Per-prompt benchmark .txt outputs are
# regenerable; only grades.md and run-metadata.json carry the time-series
# signal worth committing.
docs/sessions/raw/*.jsonl
!docs/sessions/raw/.gitkeep
tests/skill-benchmarks/results/**/*.txt

# Claude Code session-runtime artifacts (the skill itself IS tracked).
.claude/scheduled_tasks.lock
.claude/cache/
.claude/state/
