SS2: raw-data freeze — confirmatory battery COMPLETE 180/180, checksummed

Battery output/sor-confirmatory/20260720T060132Z/confirmatory-data finished:
180 cell dirs, each metrics.json + manifest.json + non-empty circuits/ with
per-hop pcaps. Integrity PASS: 0 missing pcaps (27000 pcap + 9000 events.jsonl);
seed provenance verified 180/180 (seed == SHA256(S0=20260719 || cell_id ||
run_index)); R=30 held exactly across all 6 frozen design cells (RQ1{off,on,
on+padding}, RQ2{1house-N,bridge-federated,directory-federated}). No aggregate
battery-results.json (expected, NOT fabricated — 180-cell count is the frozen
completion proxy).

Immutability anchor: SHA256SUMS.txt over 36361 raw artifacts (sorted rel paths);
provenance.json (S0 + seed formula, executor SHA ce68d41, engine=docker
image_digest=null@runtime, timestamps, completion proxy); INTEGRITY-REPORT.md.
Anchors force-added (/output/ gitignored → raw data stays out of git). Raw
metrics.json IMMUTABLE — not recomputed or edited.

SS2 touched structure/checksum/provenance ONLY — no RQ1/RQ2 inferential
statistic (AUC/H/CI) computed or inspected. Next: SS3 frozen-§6 pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
leetcrypt
2026-07-20 22:35:15 -07:00
parent a7c5eb221d
commit 47b2937789
4 changed files with 36495 additions and 0 deletions
@@ -0,0 +1,59 @@
# SS2 raw-data freeze — integrity report
**Battery:** `output/sor-confirmatory/20260720T060132Z/confirmatory-data`
**Frozen prereg SHA-256:** `f22331a72e0d0ccf38b787e63acabbe9d666456ec76076787a6d545c3193425b`
**Frozen §4 sample:** R = 30 runs × C = 50 circuits per cell.
**Completion criterion (frozen):** 180 cells each carrying `metrics.json`**MET**.
## Integrity assertions (all PASS)
| Check | Result |
|---|---|
| Cell dirs | **180** |
| Each has `metrics.json` | ✅ 180/180 |
| Each has `manifest.json` | ✅ 180/180 |
| Each has non-empty `circuits/` | ✅ 180/180 |
| Missing per-hop pcaps (hop0/1/2 × 9000 circuits) | **0** |
| Seed provenance `seed == SHA256(S0‖cell_id‖run_index)` (S0 = 20260719) | ✅ 180/180 match, 0 mismatch |
## Design-lattice mapping (R = 30 balance held)
RQ3 is **not** in the frozen lattice (dropped for the G4+RQ1+RQ2 lead paper). The
6 design cells (3 RQ1 arms + 3 RQ2 arms) each carry exactly R = 30 runs:
| cell_id | runs |
|---|---|
| RQ1/topo=1house/selector=static/bridge=off | 30 |
| RQ1/topo=1house/selector=static/bridge=on | 30 |
| RQ1/topo=1house/selector=static/bridge=on+padding | 30 |
| RQ2/bridge=off/selector=static/topo=1house-N | 30 |
| RQ2/bridge=off/selector=static/topo=bridge-federated | 30 |
| RQ2/bridge=off/selector=static/topo=directory-federated | 30 |
RQ counts: RQ1 = 90, RQ2 = 90. Selector = static; churn_schedule_id = none (RQ1/RQ2 use no churn).
## Immutability anchor
`SHA256SUMS.txt` — SHA-256 over **36361** raw artifacts (27000 per-hop pcaps +
9000 per-circuit `events.jsonl` + 361 `json` = 180 metrics + 180 manifest + 1),
sorted by relative path. Manifest-of-manifests digest:
`3fb67c7a9253c7f61f25a8432224decd85cff1b4baee8f6a1b60baa936707922`.
Raw `metrics.json` are **immutable** — not recomputed or edited in this stone.
## Provenance notes
- No aggregate `battery-results.json` was written (expected; **not** fabricated).
Cell count 180/180 is the completion proxy.
- `engine.image_digest` was recorded `null` at run time (sor-hop image not
digest-pinned by the executor); containment `engine != local` was asserted
per-hop by `ForwarderPlan` at collection time.
- Battery window (mtime proxy): start `2026-07-20T06:11:41Z` → end
`2026-07-21T05:24:09Z` (≈ 23h).
## Blinding
Blinding is **lifted for code-on-real-data**. SS2 touched **only**
structure/checksums/provenance — **no** RQ1/RQ2 inferential statistic (AUC / H /
CI) was computed, aggregated, or inspected. The first real inferential numbers
come from the frozen §6 pipeline in **SS3**, in one auditable pass.