# Python / venv
__pycache__/
*.py[cod]
.venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
*.egg-info/
*.dist-info/
.eggs/
pip-wheel-metadata/
site-packages/

# AI tooling — local only (plan/10 §3.2)
CLAUDE.md
.claude/
.cowork/
.anthropic/
.agent-sessions/
.cursor/
.aider*
.windsurf/
.continuedev/
*.session.jsonl

# Build / OS / spike artefacts
build/
dist/
.DS_Store
*.log
# Local/scratch spike runs are gitignored — they're operator-side
# experimentation, not part of the canonical experimental record.
# Note: we ignore entries *inside* spikes/results/ rather than the
# directory itself, because git will not descend into a fully-
# excluded parent and the carve-out below would have no effect.
spikes/results/*
# Carve-out: canonical stage runs (Stage 1 / 2 / 3) are the
# audit trail required by ADR-007 §Discipline. The result archives
# under spikes/results/stageN-<AXIS>-<DATE>/ MUST be committed so
# the per-axis SpikeRun JSONs are replayable from git. Renamed or
# scratch-prefixed runs (e.g. spikes/results/debug-foo/) remain
# ignored.
!spikes/results/stage[1-3]-*/
# Carve-out: the co-carry ladder's committed evidence (ADR-026 §Decision 4;
# R-2026-06-B §15). The Rung-2 f_max distribution + freeze manifest under
# spikes/results/cocarry/ are the auditable record the frozen incumbent is
# pinned to — they MUST be committed (the manifest is pre-registration-grade).
!spikes/results/cocarry/
# Carve-out: the co-insert ladder's committed evidence (ADR-026 §Decision 4).
# The S1 contact-fidelity spike artifacts under spikes/results/coinsert/ are the
# auditable record of the migrate-vs-stay decision and MUST be committed.
!spikes/results/coinsert/
# Carve-out: the cross-modal handover-and-place Gate-0 spike (ADR-026 §Decision).
# The Stage-0 channel-pre-check finding and the immutable two-limb results archive
# under spikes/results/handover-place-gate0-*/ are the auditable record (the
# pre-check parameterizes the frozen prereg; ADR-007 §Discipline) and MUST be committed.
!spikes/results/handover-place-gate0-*/
# Carve-out: the ADR-027 §Admission protocol report archives under
# spikes/results/admission/ are the Tier-2 entry evidence the task
# registry's admission_status flips cite (chamber-eval admission;
# invariant I8) and MUST be committed.
!spikes/results/admission/
# Carve-out: the ADR-009 (as amended 2026-07-05) partner-set fingerprint
# archives under spikes/results/partner-fingerprints/ are the committed
# behavioural evidence the docs/reference/partners/ cards render from
# (invariant I8) and MUST be committed.
!spikes/results/partner-fingerprints/
.local/
sbom.spdx.json
licences.json
htmlcov/
*.cover
.coverage
coverage.xml

# JetBrains IDEs
.idea/
*.iml
*.iws
*.ipr

# VS Code
.vscode/
*.code-workspace

# ML experiment artefacts
wandb/
outputs/
multirun/
checkpoints/
*.pt
*.pth
*.safetensors
*.ckpt
# Local run-output roots (config: artifacts_root=./artifacts, log_dir=./logs).
# Root-anchored so the committed spikes/results/ audit archives are unaffected;
# *.pt is already ignored above but the .pt.json sidecars + run JSONLs are not.
/artifacts/
/logs/

# Docs build
site/

# OS
Thumbs.db
ehthumbs.db
Desktop.ini

# CHAMBER-Bench leaderboard-campaign result bundles (the preregistered
# baseline campaign; ADR-027 §Reporting rules): every leaderboard number
# is a committed chamber-eval verify-passing bundle, and the power-pilot
# bundles are the committed evidence behind the prereg's locked n.
!spikes/results/benchmark/
out/
