# --- Python / runtime artifacts ---
__pycache__/
*.py[cod]
.venv/
.pytest_cache/
*.egg-info/
.coverage
.coverage.*
htmlcov/
coverage.xml
junit.xml

# --- Node (dev-only markdownlint tooling; package-lock.json IS committed) ---
node_modules/

# --- Local tooling (not part of the project) ---
.claude/
.gitnexus/
.logfire/
.vscode/settings.json
CLAUDE.md
AGENTS.md

# --- Local config with real host paths (commit clauster.yml.example instead) ---
clauster.yml

# --- All other local-only files live under one dir, so the repo root stays clean
#     and no private filenames need to be enumerated here (planning/spec docs,
#     session notes, UI screenshots, a11y snapshots, Playwright/MCP logs, etc.). ---
scratch/
.playwright-mcp/

# Stray root-level images (design/QA screenshots belong in scratch/ or, if curated
# for the docs, docs/screenshots/) — guards against accidentally committing them.
/*.png
