# FREEZE RECEIPTS — `house-wide` (arm 1)

Run id **`20260906T092541Z-house0`**, frozen **2026-09-06T09:25:41Z** on the laptop by `estate/bench/ace-house-2026-09/train/freeze_housewide.py`.
Every line is an assertion the prereg names, with the number it checked.

```
PASS  pinned input raw_30s.tsv: 4673e71953852a2e6c15ece1db8784cc59c6f1f62914e3850b741e36e01fe784 · 8399247 B
PASS  pinned input audio_licenses.txt: c207c476d1714dfc9061f5ae9f2047c0490bfaa5d861dc090acc786508948933 · 12686550 B
PASS  pinned input raw.meta.tsv: bb1efa2876536cbe1a8b67db5dda15249ca144f0cff69e481b638803cbdc9aca · 7848074 B
PASS  fence spec sha of record (A-H1): 088e25e57fe25d26f4d755b8915e13b5c34e320d902f365f64a905feaf10a30d · 661 B
PASS  fence-spec.json (derived, A-H1 clause 1): 87859cf9337ac2e552a5d8ba5e1a1d25060a1ba67b88e033194428916e079f5b
PASS  fence-report.json echoes the fence sha: yes
PASS  owed artifact split_rule.py (A-H1 clause 4): ca32d504bff9639d6ab4fffda03594254c7a46c29245a38775f8afcd1ccb475b
PASS  owed artifact tag_words.json (A-H1 clause 4): dc949cb14ebace0db796612c43d4f36de47753ae5d0ceab2e39967f58b046d68
PASS  corpus of record: 416 tracks, ids identical in both manifests
PASS  §2.1(5) median |measured − claimed| duration: 0.030 s (limit 2 s)
PASS  §2.1(5) median measured duration: 290.77 s (floor 60 s; max 905.2 s, min 30.0 s)
PASS  §2.7 per-file digest verdict: {"match": 416, "mismatch": 0, "not_published": 0}
PASS  E4 on measured durations: 0 >= 20 min, 0 < 30 s
PASS  E5 duplicate audio bytes: 0 — every sha256 distinct
note  §5.6 tracks truncated at the 240 s cap: 283 of 416 (68.0 %)
PASS  §4.6 non-empty caption on every entry: 416/416
PASS  §4.2(7) captions byte-identical across a re-run: 236abc0f05d79aee74b29ff1d1827ccf1fe7afb5f7ef45a0dda66179b3d2c3a6
PASS  captions-proposed.jsonl tags agree with the manifest of record: 416/416 (its caption TEXT is a different template and is superseded by §4.2 — §4.5)
PASS  §4.3 de-camelisation table covers the pool: {"genre": 50, "instrument": 34, "mood_theme": 51}
PASS  §3.1(1) straddling artists: 0
PASS  §3.1(2) holdout fraction: 85/416 = 20.43 % (target 20.0 %, band 18–23 %)
PASS  §3.1(3) S3 holdout artists (all unseen): 59
PASS  §3.1(3) N_train: 331
note  §3.1(3) fault (a) — the holdout is small-catalogue BY CONSTRUCTION: held-out catalogues 1–3 tracks (median 1); largest training catalogue 47
PASS  §5.2 steps/epoch = ceil(N_train / 4): 83
PASS  §5.2 epochs (rule row N >= 300): 5
PASS  §5.2 total optimiser steps: 415
PASS  §5.3 effective warmup = min(100, total // 10): 41  (REQUESTED 100 — publish the effective one, confirmed from TensorBoard train/lr after the run)
note  §5.6 projected train: 41.7 min at the full cap · 39.7 min scaled to this pool's mean capped duration
PASS  §2.7(3) Jamendo API terms read first-hand: 31539b0eccf940ff6db8f548425a11934501aa4eb24df3bcd8639d3988ce6320
PASS  §4.6 genre_ratio read back from dataset.json: 0
PASS  dataset.json sample count == N_train: 331
PASS  §3.1(5) held-out track ids in dataset.json: 0
PASS  §4.6 every dataset.json sample has a non-empty caption: 331/331
PASS  §4.6 dataset.json captions sha == renderer output sha: 9b4a6d5662e3af188cd3229a7bfa6f333d255813e74a28587311fe2e5b5df1a3
PASS  record_manifest_sha256 (sha of manifest.jsonl — §2.1(3)): 53a70c3656989d8b23a41402459ac9726c2600aa554b144b9fcb41319780637b
PASS  manifest_sha256 (sha of MANIFEST.sha256 — the 0001_v0 meaning): 2be441bbce3c4a4288e61c6547009044eba289e434b7b1064643c0c5120fd0fe
```

## The arithmetic every later step reads off (§5.2)

```json
{
  "corpus_after_fence_and_e9": 416,
  "n_holdout": 85,
  "holdout_fraction_actual": 0.204327,
  "n_train": 331,
  "grad_accum": 4,
  "steps_per_epoch": 83,
  "epochs": 5,
  "total_steps": 415,
  "warmup_steps_requested": 100,
  "warmup_steps_effective_predicted": 41,
  "projected_train_minutes_at_1.512_s_per_sample": 41.7,
  "projected_train_minutes_scaled_to_mean_capped_duration": 39.7
}
```

## The freeze identity

- `record_manifest_sha256` (sha256 of `corpus/manifest.jsonl`) = `53a70c3656989d8b23a41402459ac9726c2600aa554b144b9fcb41319780637b`
- `manifest_sha256` (sha256 of `corpus/MANIFEST.sha256`, the 0001_v0 meaning) = `2be441bbce3c4a4288e61c6547009044eba289e434b7b1064643c0c5120fd0fe`
- fence spec of record = `088e25e57fe25d26f4d755b8915e13b5c34e320d902f365f64a905feaf10a30d`
- `split_rule.py` = `ca32d504bff9639d6ab4fffda03594254c7a46c29245a38775f8afcd1ccb475b`
- `tag_words.json` = `dc949cb14ebace0db796612c43d4f36de47753ae5d0ceab2e39967f58b046d68`
- Jamendo API terms = `31539b0eccf940ff6db8f548425a11934501aa4eb24df3bcd8639d3988ce6320`
