# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
# Re-include services/landing/lib/ — Next.js library code, not Python build
# artifacts. The Python `lib/` glob above (line 13) sweeps any directory
# named ``lib`` anywhere in the tree, which accidentally also caught the
# landing dashboard's TypeScript helpers (Phase 31.C audit caught this).
!/services/landing/lib/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Virtual envs
.venv
.venv/
.venv.*
venv/
env/
ENV/

# mkdocs build output
/site/

# Editor / IDE local state
.claude/

# Test / coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.nox/
coverage.xml
*.cover

# Type checkers
.mypy_cache/
.pyre/
.pytype/

# Tool caches
.ruff_cache/
.ipynb_checkpoints/

# JAX / cached compilations
.jax_cache/

# Data — never commit large data, always download on demand
data/
!leaderboard/data/
datasets/
*.h5
*.npz
*.npy
*.mat
*.tar
*.tar.gz
*.zip
!paper/openreview_submission/supplementary.zip

# LaTeX build artefacts — keep .tex + .bib, ignore intermediates
paper/**/*.aux
paper/**/*.bbl
paper/**/*.blg
paper/**/*.log
paper/**/*.out
paper/**/*.toc
paper/**/*.synctex.gz

# Results artifacts larger than a few KB — commit CSV summaries, not raw runs
results/**/checkpoints/
results/**/*.pth
results/**/*.pt

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon

# iCloud Drive auto-duplicate suffixes (" 2.py", " 2.toml", etc.)
*\ 2.py
*\ 2.toml
*\ 2.md
*\ 2.pyc
*\ 2.csv
*LICENSE\ 2

# IDEs
.idea/
.vscode/
*.swp
*.swo

# Secrets
.env
.env.local
*.key

# iCloud Drive duplicate-resolution artifacts
* 2.*
* 3.*
* 4.*
*[0-9].md
*[0-9].py
LICENSE [0-9]
# Phase 31.E — V-Certified standards crosswalk docs deliberately end
# in framework version digits (iso_42001.md, soc2.md). The wildcard
# above otherwise sweeps them out.
!docs/standards/*.md
# Track A preflight — smoke scripts + tests deliberately end in phase
# numbers (smoke_phase29_*.py, test_smoke_phase29.py, etc.). The
# *[0-9].py wildcard above otherwise sweeps them out.
!scripts/preflight/*.py
!tests/preflight/*.py
# Track A preflight — JSON reports + intermediate run dirs are
# regenerated by every smoke invocation (timestamps change each run);
# only SUMMARY.md is the canonical tracked artifact.
reports/preflight/*.json
reports/preflight/phase29_trainer_run/
reports/preflight/phase30_trainer_run/
