.venv/
dist/
build/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
site/
__pycache__/
*.py[cod]
.env
.env.*
!.env.example
.vscode/
.sonar/
.codex/
external_analysis/
# BMAD framework install + its generated output (local tooling, not repo content)
_bmad/
_bmad-output/
.agent/
.agents/
.github/agents/
docs/codebase/
docs/project-scan-report.json
# Local AI-agent context file (solo-dev machine convenience, not shipped repo content)
CLAUDE.md
# BMAD-installed skill packs; only the two curated contributor skills are tracked
.claude/skills/*
!.claude/skills/release-gate/
!.claude/skills/write-adr/
# Generated test/quality reports (TEA output; double space verbatim from _bmad/tea/config.yaml)
# and example run outputs -- local artifacts, never committed
coverage  and quality reports/
examples/http_agent/artifacts/
examples/http_agent/*.json
# Local eval-run artifacts at repo root (can contain prompts/tool args)
agentic-evalkit-runs/
# Secret-adjacent defensive patterns (none tracked today; belt-and-braces)
*.pem
*.key
id_rsa*
.pypirc
.npmrc
.bmad-loop/runs/
.bmad-loop/cache/
.bmad-loop/policy.toml
# bmad-loop hook registrations that bake in an absolute hook-script path (unlike
# .claude/settings.json, which uses $CLAUDE_PROJECT_DIR and is portable). Machine-
# specific, so they are never committed; re-create with `bmad-loop init --cli <name>`.
.gemini/
.github/copilot/
