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

# make validate output (junit-xml report) — working output, not a repo artifact
.validate/

# capture_fixture.py proposals — untrusted, unaudited candidates.
# Never committed directly; audit_fixture.py --approve copies an
# audited proposal into tests/fixtures/ explicitly.
.fixture_proposals/

# scaffold_capability.py proposals — generated code proposals for
# human review only. Never applied, staged, or committed by the tool.
.capability_proposals/

# Local logs (must never be committed)
*.log
logs/

# Local tooling state — never part of the repository
.claude/

# External AI handoff reports — local symlink to an external reports directory
reports-ai

# Defensive only — no secret material should ever exist in this repo,
# but these patterns guard against an accidental copy.
*.key
*secret*
*credential*
!tests/test_credential_non_disclosure.py
.env
