# --- Proprietary Data ---
rhombic/data/corpus_private.json

# --- Secrets & Credentials ---
.env
.env.*
!.env.example
*.pem
*.key
*.p12
id_rsa*
id_ed25519*
credentials.json
service-account*.json

# --- Claude Code ---
CLAUDE.local.md

# --- Python ---
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
dist/
build/
*.egg
*.whl
.eggs/
venv/
.venv/
*.so

# --- Testing ---
.pytest_cache/
.coverage
htmlcov/

# --- LaTeX ---
paper/*.aux
paper/*.blg
paper/*.log
paper/*.out
paper/*.pdf
paper/*.tar
paper/*.tar.gz
paper/*.fdb_latexmk
paper/*.fls
paper/figures/*.pdf
paper/versions/

# --- Large Generated Data ---
data/geometric/*.json
!data/geometric/dataset_stats.json
*.npy
experiments/

# --- Reference Material (not part of library) ---
paper2_deep-research-report*.md

# --- Training Artifacts ---
*.log
*.pid
training_all.log
training.log
monitor.log

# --- Video Pipeline Build Artifacts ---
assets/video/frames/
assets/video/*.mp4
assets/video/demo_frames/
assets/video/logo_frames/
assets/video/preview/
assets/video/segments/
assets/video/slide_frames/
assets/video/terminal_frames/
assets/audio/

# --- Temp files ---
temp/
temp_gpu.json

# --- Large Untracked Directories ---
competition/
assets/video/captures_ep2/
assets/video/final_frames/

# --- OS & Editor ---
.DS_Store
Thumbs.db
desktop.ini
*.swp
*.swo
*~
.vscode/
.idea/

# Model weights and checkpoints (never commit to public repo)
results/**/merged_model/
*.safetensors
*.pt
results/**/checkpoint-*/

# Heavy media / working assets
assets/video/segments_ep2/
assets/video/frames_ep2/
output/
wandb/
figures/

# Internal / Stream B documents (proprietary — TASUMER MAF)
docs/FALCO_INTELLIGENCE_ROADMAP.md
docs/EXPERIMENT_PROPOSALS.md
docs/NEXT_BATTERY.md
docs/SPRINT_BRIEFING_*.md
docs/PAPER_5_EXPERIMENT_DESIGN.md
docs/CONTEXT_TESSITURA_THESIS.md
orvad-research-*.md
paper/orvad-research-*.md
scripts/run_runpod_corpus.sh
docs/NEMOTRON_*.md
docs/SUBMISSION_DRAFT.md
docs/DEMO_SCRIPT.md
docs/posts/

# Corpus-coupled experiment artifacts (Stream B — proprietary; values must never enter public repo)
scripts/train_loraxs_corpus.py
results/corpus-baselines/
results/loraxs-corpus/
results/fig_corpus_*
docs/THE_24_CELL_THESIS.md
scripts/DEFINITIVE_HACKATHON_DELIVERABLE.md
scripts/fi_001_corpus_internal.py
scripts/fi_002_corpus_pairs.py

# Research suite: full-text PDFs are materialized locally by research/tools/fetch_papers.py
research/pdf/

# Live Asset-1 campaign output (analyzed then summarized; not committed raw)
results/asset1-bank/
results/asset1-smoke/*/
# Archived bs2x8 cohort payload (~1.26 GB of .pt/.npy): preserved on disk
# for the A1 equivalence record, never in git history (the tracked
# a1_spotcheck.json predates this rule and stays tracked). Added
# 2026-07-07 after the A3-A5 hygiene verification flagged the sweep risk.
results/asset1-bank-bs2x8-archive/

# S2 timing-pilot payloads (~38-60 MB of .pt/.npy per run). The pilots are
# timing-only and excluded from every bank, so their adapters are byproducts
# that no analysis will ever read. The MEASUREMENTS are the deliverable and
# ARE tracked: TIMING.md / DRYRUN.md / GATING.md / QUEUE.md / RATES.md plus
# each run's config.json + metrics.json.
results/s2-timing-pilots/*/*/adapter_state.pt
results/s2-timing-pilots/*/*/*.npy
results/s2-timing-pilots/logs/

# compiled paper PDFs stay local while under audit (stale binaries bake in pre-purge text)
paper/paper4/paper4-main.pdf
paper/rhombic-paper3.pdf

# T-001r3 local checkpoint payload (8,979 files; config+results ARE tracked, r2 convention)
results/T-001-full-r3/
results/T-001-full-r3.log
results/asset1-delivery-verify/features/

# Tinker signal pilot (E-T4 pre-step, 2026-07-30). Same convention as the
# Asset-1 bank and the S2 timing pilots: regenerable/large payloads stay on
# disk, the MEASUREMENTS are the deliverable and ARE tracked (run_record.json,
# signal_results.json, spend_ledger.json, data_manifest.json, PILOT_REPORT.md).
# Training text is deterministic output of scripts/tinker_pilot_data.py (45 MB).
results/tinker-pilot/data/*.jsonl
# Exported adapter payloads (~0.2-0.4 GB per run of safetensors).
results/tinker-pilot/*/adapter_model.safetensors
results/tinker-pilot/*/*.safetensors
results/tinker-pilot/smoke/

# E-T4 Tinker mini-bank (54 runs, 2026-08-04). Identical convention: the
# MEASUREMENTS are the deliverable and ARE tracked (run_record.json,
# spend_ledger*.json, billing_usage.json, signal_results.json,
# pairwise_distances.json, merge_lint_results.json, data_manifest.json,
# MINIBANK_REPORT.md, logs/). Training text is deterministic output of
# scripts/tinker_minibank_data.py (202 MB over 18 streams).
results/tinker-minibank/data/*.jsonl
# Exported adapter payloads: 54 x 369 MB = ~20 GB.
results/tinker-minibank/*/adapter_model.safetensors
results/tinker-minibank/*/*.safetensors
# Scratch bank-format copies made only to feed merge_lint.
results/tinker-minibank/_merge_lint_converted/

# Granularity ladder (registered 2026-07-30, locked 2026-08-04). Same
# convention as the Asset-1 bank and the S2 pilots: regenerable/large payloads
# stay on disk, the MEASUREMENTS and the frozen manifests ARE tracked
# (labels/<level>.json with a row_ids_sha256 per class, LABELS_REPORT.md, each
# run's config.json + metrics.json + granularity.json + TIMING.md, the
# per-level analysis JSON/REPORT, TIER_GATES.json, QUEUE_STATE.md).
# The row-id pools (~6.2 MB) are byte-for-byte regenerable by
# scripts/granularity_labels.py and verifiable against the committed hashes.
results/granularity/labels/*_pools.json
results/granularity/*/run_*/adapter_state.pt
results/granularity/*/run_*/*.npy
results/granularity/*/dryrun_*/adapter_state.pt
results/granularity/*/dryrun_*/*.npy
results/granularity/analysis/scratch/
results/granularity/selftest/
results/granularity/logs/

# LaTeX intermediates (workshop builds)
paper/**/*.aux
paper/**/*.out
# D3 merge payloads (5.3 GB of merged-adapter evals; reports are tracked)
results/asset1-d3/merges/

# LAT-001 harness results (SPEC §0: "results write only under
# lat001/results/"). Checkpoints, eval JSON/TXT, and the smoke report are run
# artifacts, not source — the *.pt rule above already covered the checkpoints,
# this covers everything else so a partial or superseded run can never be
# committed as if it were the record (harness review 2026-08-11, B-2).
lat001/results/

# Corpus-derived private sidecars and private tests (never commit) — 2026-09-05
rhombic/data/*_private.json
tests/test_corpus_private.py
