# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg
*.egg-info/
dist/
build/
.eggs/
*.whl

# uv / venv
.venv/
venv/
.uv/

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/

# IDEs
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Prometheus runtime
.prometheus/
*.log
*.sqlite
*.db

# Secrets
.env
.env.*
!.env.example
config/secrets.yaml
config/prometheus.yaml

# Benchmarks output
benchmarks/results/

# Personal config backups and local overrides
*.bak
*.bak.*
config/*.local.yaml
# Secret-bearing config backups (e.g. prometheus.yaml.backup-*) — never commit.
config/*.backup*

# Local data / scratch at repo root (never commit — PII + large artifacts).
# The pre-commit hook only blocks IPs/hostnames, so a blanket `git add -A`
# could otherwise leak these. No CSV/SRT is tracked anywhere in the repo, so
# these globs shadow nothing in the tree; a genuinely-needed data file can
# still be force-added with `git add -f`.
*.csv
*.srt
/Creatrix/
/wiki/

# Loose audit / findings / sprint reports dropped at the repo root.
# Root-anchored so they never shadow tracked docs or source elsewhere.
/AUDIT-*.md
/FINDINGS-*.md
/MEMORY-AUDIT-*.md
/SPRINT-CLOSEOUT-*.md

# Per-session git worktrees (PROMETHEUS.md "Three trees"). This rule lived in
# `.git/info/exclude` until 2026-08-15, which is per-clone and untracked — git
# honoured it, `hatchling` did not, and no other clone had it, so eleven full
# repo copies rode into the sdist. Anything that decides what a release
# artifact contains belongs in version control, where every clone and every
# tool sees the same answer.
.claude/
