# Byte-compiled / cache
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
.mypy_cache/
.ruff_cache/
.pytest_cache/
.coverage
htmlcov/
.dmypy.json
dmypy.json

# Virtual envs
.venv/
venv/
.env
.env.*
!.env.example

# Packaging / build
build/
dist/
*.egg-info/
.eggs/
pip-wheel-metadata/

# Jupyter
.ipynb_checkpoints/

# OS / editor
.DS_Store
.idea/
.vscode/
*.swp
*~

# Project outputs (keep directory via .gitkeep)
# Per-seed run dumps are local; proof summaries may be committed.
reports/runs/*
!reports/runs/.gitkeep
# Ignore bulk under summaries except proof JSON + README
reports/summaries/*
!reports/summaries/.gitkeep
!reports/summaries/README.md
!reports/summaries/v0_1_poc_summary.json
!reports/summaries/v1_0_package_synth_summary.json
!reports/summaries/v1_1_package_synth_summary.json
!reports/summaries/v1_1_protocol_synth_mc50_summary.json
!reports/summaries/h5_trust_evidence_summary.json
!reports/.gitkeep

# Large local data (fixtures small enough to commit are OK under data/fixtures)
data/synthetic/generated/
*.parquet
!data/fixtures/**/*.parquet

# Secrets / local overrides
*.pem
credentials.json

# Hermes / agent local
.hermes/plans/

# Real-world audit run dumps (keep data/ + proof JSON; regenerate runs)
evals/realworld/**/runs_*/
evals/realworld/**/*.parquet

# H5 Trust: large local raw + aux caches (fetched/copied locally; frozen
# scores.csv + manifest are committed under evals/h5_trust/data/)
data/h5_trust_raw/
data/h5_trust_aux/
evals/h5_trust/runs_verify/
.hermes/
data/tmp_runs/
