# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg
*.egg-info/
dist/
build/
eggs/
parts/
var/
sdist/
wheels/
pip-wheel-metadata/
share/python-wheels/
.installed.cfg
*.egg-info
MANIFEST

# Virtual envs
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
.python-version

# uv
.uv/
uv.lock

# Secrets
.env
.env.*
!.env.example

# Testing / coverage
.tox/
.nox/
.coverage
.coverage.*
coverage.xml
*.cover
*.py,cover
htmlcov/
.pytest_cache/
.hypothesis/

# Type checking
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/

# Docs
/site/
docs/_build/

# crucible-ai runtime output
reports/
*.jsonl
!tests/fixtures/**/*.jsonl

# IDE
.idea/
.vscode/
*.swp
*.swo
.DS_Store
Thumbs.db

# Pre-commit
.pre-commit-cache/

# Claude Code local settings (machine-specific)
.claude/settings.local.json
.claude/.pending_review.flag

# Per-developer skills installed via `npx skills add`
# Skills are personal/optional; document the recommended set in README,
# don't version-control the skill bodies (heavy, may change upstream).
.claude/skills/
skills-lock.json
