# ─────────────────────────────────────────────────────────────────────────────
# cordon canonical .gitignore — kept in sync across repos (cordon,
# cordon-starter, …). One shared body, copied verbatim; no per-repo divergence.
# ─────────────────────────────────────────────────────────────────────────────

# OS
.DS_Store
Thumbs.db

# Editors / agents
.vscode/
.idea/
*.swp
.claude/
.gemini/
.obsidian/

# Node deps — commit the lockfile, not the tree.
node_modules/

# Environment / secrets — keep the .example templates (mirrors the
# repository-policy check, which exempts *.example).
.env
.env.*
!.env.example
.dev.vars
.dev.vars.*
!.dev.vars.example

# Python — bytecode and tool caches (the Python reference emitter).
__pycache__/
*.py[cod]
.pytest_cache/
.ruff_cache/
.venv/

# Build output
/dist*
/build/

# Logs
*.log
npm-debug.log*
yarn-debug.log*
pnpm-debug.log*
.logs/

# Backups
*.bak
*.bak.*

# Generated reports — never committed.
.cordon-checks-report.md

# A repo that validates against cordon checks it out here for CI; inert in
# cordon itself. Never committed.
/.cordon/
