# ---------------------------------------------------------------------------
# Internal build briefs — not part of the public repository. Keep them local.
#
# plans/CLAUDE.md is the one exception: it is the *format* rather than a brief,
# and the root CLAUDE.md points at it, so a fresh clone that lacked it would
# teach a reader the context does not exist rather than that it is local.
#
# The `/plans/*` form is required, not cosmetic — git does not descend into an
# excluded *directory*, so `plans/` followed by a negation matches nothing.
# ---------------------------------------------------------------------------
/plans/*
!/plans/CLAUDE.md

# ---------------------------------------------------------------------------
# .NET / Visual Studio
# ---------------------------------------------------------------------------
bin/
obj/
out/
[Dd]ebug/
[Rr]elease/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
[Bb]uild/
[Bb]in/
[Oo]bj/
*.user
*.userosscache
*.suo
*.sln.docstates
.vs/
.vscode/
*.swp
*~

# Build results / packages
*.dll
*.exe
*.pdb
*.nupkg
*.snupkg
project.lock.json
project.fragment.lock.json
artifacts/
nupkgs/

# Test results
[Tt]est[Rr]esult*/
*.trx
*.coverage
*.coveragexml
coverage*.json
coverage*.xml
coverage*.info

# Rider / JetBrains
.idea/
*.sln.iml

# OS
.DS_Store
Thumbs.db

# Local secrets / env
*.env
*.secrets

# ---------------------------------------------------------------------------
# Python
# ---------------------------------------------------------------------------
__pycache__/
*.py[cod]
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
python/dist/
python/build/
python/.venv/
.venv/
