__pycache__/
*.py[cod]
*$py.class
*.so
*.egg-info/
dist/
build/
.eggs/
*.egg
.Python
env/
venv/
.venv/
*.log
.DS_Store
.env
.env.*
!.env.example
.idea/
.vscode/
*.swp
*.swo
*~
coverage/
htmlcov/
.tox/
.nox/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.bandit
.coverage
.agentdrill/

# Field test caches (do not commit third-party agent repos)
field/agents/
field/.llm_cache/

# Superpowers skill directory (local agent skill caches)
.superpowers/

# Local docker test artifacts
test-results/

# Field test results (contains live API keys in LLM request/response captures)
field/results/
field/results.*/

# Field-test harness results are PERSISTED in git (all runs committed).
# They are sanitized before commit: see scripts/fieldtest/scan_results.py and
# `make fieldtest-scan` (the harness fails a case whose artifacts carry an
# unmasked secret). The per-case logs (commands/stdout/stderr) are preserved
# evidence — un-ignored below; only the throwaway .build.log is ignored.
!field-test/*/results/**
field-test/*/results/**/.build.log
field-test/**/__pycache__/

# ...the setup/readiness transcript is preserved too (must).
!field-test/*/results/_setup/*.log

# Generated data and vector stores
data/

# uv lock file (using pyproject.toml only)
uv.lock

# ruff cache and reports
.ruff_cache/

# OS generated files
.DS_Store
