.venv/
__pycache__/
*.py[cod]
*$py.class
runs/
scripts/rundev.py
.claude
.mypy_cache
.pytest_cache
.ruff_cache
.r4_phase_a_tmp/
/data/
.coverage
coverage.xml
htmlcov/
dist/
build/
*.egg-info/

# Mutable epoch-recovery checkpoints are operational state, not evidence.
# Ignore atomic temporary variants too, so workspace snapshots never ingest them.
artifacts/**/progress/*.resume.pt*

# Experiment outputs stay local. The two frozen R4 role manifests are protocol
# inputs and remain trackable despite living below the artifact root.
artifacts/*
!artifacts/r4/
artifacts/r4/*
!artifacts/r4/data/
artifacts/r4/data/*
!artifacts/r4/data/cifar10_split_manifest.json
!artifacts/r4/data/openood_role_manifests.json

# The P5 closeout unit tests regenerate diagnostics from these two immutable
# archives. Their file and per-array hashes are sealed in the tracked evaluation.
!artifacts/p5_cifar_exploratory_92ep_v1/
artifacts/p5_cifar_exploratory_92ep_v1/*
!artifacts/p5_cifar_exploratory_92ep_v1/evaluation/
artifacts/p5_cifar_exploratory_92ep_v1/evaluation/*
!artifacts/p5_cifar_exploratory_92ep_v1/evaluation/evaluation_scores.npz
!artifacts/p5_cifar_exploratory_92ep_v1/evaluation/energy_n_fusion_state.npz

# Local planning notes, generated support reports, stdout captures, and archived
# backlogs belong in this workspace and must never enter repository history.
/sup/
