__pycache__/
*.py[cod]
.pytest_cache/
.venv/
dist/
*.egg-info/
gnomon-output/


# secrets
.env
.env.*

# Benchmark corpora are downloaded, not versioned. A `git add -A` swept
# 582 MB of them into history once; GitHub rejects the 290 MB file among
# them, and nothing in the codebase reads these paths.
data/

# Exception: the curated real-data corpora for DossierBench and
# BreachBench ARE versioned. They are small (~220 KB total), the
# benchmarks cannot run without them, and their sha256 is pinned into
# every run's dataset identity — so the exact bytes must travel with the
# code, not a download script that can drift or be unreachable. Both the
# directory and its contents need re-including: git does not descend into
# an excluded directory.
!benchmarks/breachbench/data/
!benchmarks/breachbench/data/**
!benchmarks/dossierbench/data/
!benchmarks/dossierbench/data/**

# CiK's official result cache. Swept in by the same `git add -A`; the runs
# that produced it used --no-cache because the cached path fails on
# object-dtype columns.
inference_cache/

# Benchmark run outputs. Regenerable from benchmarks/configs/*.yaml, and
# large enough (10.5 MB of JSON, PNG, and PDF) that carrying them makes
# every clone pay for one machine's run.
#
# `results/*` rather than `results/`: git does not descend into an excluded
# directory, so the negation below would never be reached under the shorter
# form.
results/*
metric_scaling_cache/

# Except the leakage-trap results — the evidence behind the McNemar figure
# in docs/leakage-trap-results-2026-08.md. 62 KB of text, and a published
# claim should not rest on output nobody can see.
!results/leaktrap/

# And except the future-context A/B pre-registration and its write-up: a
# prediction registered before the run is only worth something if it is
# versioned before the run.
!results/future-context-ab/
results/future-context-ab/cik-*

# Except the proposer-trust warrant registration: the hypothesis is
# versioned before the experiment exists, which is the point of it.
!results/proposer-trust-warrant/

# Same rule for the structural-effects registration.
!results/structural-effects/
!results/seasonal-regime-effects/

# And except the news-regime exploration: pre-registration, summaries, and
# the scripts that regenerate them are versioned; per-task raw outputs are
# not (same rule as the benchmark corpora — regenerable, and bulky).
!results/news-regime-explore/
results/news-regime-explore/raw/

# And the guardrail build's pre-registration and write-up, same rule.
!results/short-history-guardrail/
results/short-history-guardrail/raw/

# Curated aggregate-only benchmark releases. Raw runs remain ignored and are
# retained as CI artifacts; benchmarks.release validates size, provenance,
# digests, and sensitive-field exclusions for these directories.
!results/benchmark-releases/
!results/benchmark-releases/**


# Root-level run scratch: per-machine census JSONs, arm run directories,
# their *-work task trees, and downloaded model checkpoints. The citable
# versions of these live under results/<registration>/ and are
# un-ignored above; these loose copies were drowning every git status.
/census*.json
/*-work/
/results-*/
/models/

# Local content-addressed context receipts and numeric assessment cache.
# These can contain operational source metadata and are never source files.
/.gnomon/
