# ============================================================
# Secrets — NEVER commit
# ============================================================
*.env
.env
.env.*
!.env.example
secrets.env
~/.coderouter/

# ============================================================
# Python
# ============================================================
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Distributions / packaging
build/
dist/
wheels/
*.egg-info/
*.egg
.eggs/

# Virtual environments
.venv/
venv/
env/
ENV/
.python-version-local

# uv
# Note: uv.lock SHOULD be committed (per plan.md §5.4)
# Do NOT add uv.lock here.

# ============================================================
# Tools
# ============================================================
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
*.cover

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

# ============================================================
# Local logs / scratch
# ============================================================
logs/
*.log
scratch/
tmp/

# ============================================================
# Private notes — NEVER commit
# ============================================================
# docs/inside/ is a private scratch area for memos, design drafts,
# and anything not meant for public distribution.
docs/inside/

# docs/articles/ holds Zenn / Note article drafts that are
# published externally (not on GitHub). Keep them out of the repo.
docs/articles/
!.env.publish.tpl
!.env.tpl

# v1.7-A: 1Password publish-time secret reference templates.
# These contain `op://` references, not actual secrets, but kept out
# of the repo because the Vault path includes personal Vault names.
.env.publish.tpl
.env.tpl
