# secrets
.env
.env.*
!.env.example
*.local

# python
__pycache__/
*.pyc
.venv/
.pytest_cache/
.ruff_cache/
*.egg-info/

# app state
*.sqlite
*.sqlite3
logs/
.tmp/

# coverage
.coverage
.coverage.*
coverage.xml
htmlcov/
/mutants/

# local perf timings (machine-specific; CI uses soft budgets only)
tests/performance/last_local_baseline.json

# docker volumes / local data
data/
.docker/

# os/ide
.DS_Store
Thumbs.db
.idea/
.vscode/

# build artifacts (uv build)
dist/

# internal working notes — never tracked, never published (B-3).
# Root-anchored on purpose: package modules (auto_bi/llm/_structured.py, __init__.py)
# and public nested docs (a hypothetical docs/plan_*.md) must stay unaffected.
# Guarded by CI: scripts/check_repo_hygiene.py fails if one is force-added anyway.
/_*
/audit_*.md
/plan_*.md
/*_NEXT_SESSION*
/presentation.html
/research*.md
/new_plen_*.md
/nl_sql_*.md
/s01-*.md
/x4-*.md
/p8-hf-demo.md
/dashboard_design_research.md
/start-bi-tunnel.cmd
# Grok executor scratch (TASK.md + its reports live in the tree, never in git)
/Grok/
