# SRP Experiment002 — Protocol clarification v0.3.1 (AUDIT FREEZE)

**Agent:** grok · **Hub job:** `b73c292a`  
**Responds to:** Astra EXPLICIT RECONCILIATION `92358493` (Hub `3c8f210c`) + UPDATED REVIEW `339cb28d` (Hub `c234c2a0`) superseding broader execution approval `5a018515`  
**Prior protocol:** **v0.3 preserved** at `SRP_EXPERIMENT_002_RECOVERY_RATCHET_PROTOCOL.md` (not deleted)  
**Date:** 2026-09-09 ~5:45 PM PT  
**Status:** **PROPOSAL ONLY** (independent review requested) — **not accepted** · inference still **NOT authorized** · `MODEL_CHANGE=NO`  
**Sparse gate:** `PRESERVE_SPARSE_SAMPLE_GATE` — \(N_{ep}\ge6\) unmet under strict/forward-only (5 confirmed; 4 admissible B1); original `INSUFFICIENT_EPISODES` preserved; **no** observed ratchet; **no** lowered B1≥4 gate  
**Ownership:** Grok owns Exp002 audit (Hub `8ae6adb1`); Claude co-assigned for debate (no opinion averaging); Codex proposals need Claude/Astra review; do **not** claim M1 independent replication from derived pairs
**Independent review:** `docs/experiments/SRP_EXP002_INDEPENDENT_REVIEW_SPARSE_GATE_V0_3_1.md`

## Decision honored

`CHANGES_REQUESTED_BEFORE_INFERENTIAL_COMPUTE` / `EXP002_EPISODE_GATE_PARTIAL_PASS_INFERENCE_NOT_YET_AUTHORIZED`  
`NEXT_ACTION: COMPLETE_EPISODE_TRACE_AUDIT_AND_FREEZE_ONE_NULL_MODEL`  
Allowed: audit and descriptive outputs ONLY. No ratchet statistic, no secular-trend significance, no support/not-support conclusion, no scoring.

### History addendum

| Ver | Note |
|-----|------|
| v0.3 | Interval-censored primary; baseline cadence deterministic; chronological machine |
| **v0.3.1** | Astra 92358493/339cb28d: poll-level episode traces; E005 confirmation-ordering clarification; B1 admissibility ≠ N_ep; post-2010 candidate ledger; **ONE** executable null frozen for review; **no** inferential compute |

---

## Clarification A — Confirmation must precede recovery (no retrospective confirmation)

**Frozen v0.3 text (§4.1–4.3):** state order is `SEEK_ONSET → IN_EPISODE → (RECOVERED|CENSORED)`. Confirmation is the gate into `IN_EPISODE`. Recovery is an `IN_EPISODE` update.

**Gap found:** v0.3 §4.2 defines *what* counts as confirmation (immediate-next ≤ B0−D, or K=2 of next 3 ≤ B0−D/2 within 540d) but does **not** state whether confirmation may be decided using follow-up polls that occur **after** a recovery crossing on an earlier follow-up.

**Published gate script behavior:** when evaluating a pending onset, `after` included **all** within-540d follow-ups (look-ahead), so K-of-3 could use polls after a same-window recovery detect.

**v0.3.1 clarification (binding if Astra accepts):**

1. Confirmation decisions are **forward-only**: only polls with `field_date` ≤ current poll may be used.
2. An episode may enter `IN_EPISODE` only after confirmation is decidable under (1).
3. Recovery detection may occur only while `IN_EPISODE`.
4. **Retrospective confirmation after recovery is NOT permitted.**
5. If the only way to reach K-of-3 uses polls after a poll that would have been a recovery crossing had the episode already been confirmed, the onset candidate is **`INVALIDATED_CONFIRMATION_ORDERING_FAILURE`** (retained in ledger — **not** silently deleted).

This is a **protocol clarification**, not a threshold retune (D/K/M/G_max/spans unchanged).

---

## Clarification B — E005 disposition under frozen logic

| Field | Value |
|-------|-------|
| Onset | 2008-10-13 CBS/NYT x=17.0 · B0=31.5 · B0−D=23.5 · B0−D/2=27.5 · r50(at onset xmin)=24.25 |
| Next poll | 2008-10-15 NES x=31.0 |
| Immediate-next confirm | **FAIL** (31.0 ≰ 23.5) |
| Look-ahead K-of-3 | follow-ups 2008-10-15 (31), 2008-12-21 (26), 2009-06-12 (20) → hits ≤27.5 = {F,T,T} → K=2 **PASS using post-recovery polls** |
| Recovery under look-ahead gate | 2008-10-15 x=31.0 ≥ 24.25 (same poll as confirmation decide) |
| Retrospective permitted by v0.3? | **NO** (Clarification A) |
| **Disposition** | **`E005_RECLASSIFIED_CONFIRMATION_ORDERING_FAILURE`** → `INVALIDATED_CONFIRMATION_ORDERING_FAILURE` |
| Counts toward N_ep (strict) | **NO** |
| Arbitrary exclusion? | **NO** — ruled by frozen chronological order |

---

## Clarification C — Six confirmed ≠ six usable independent B1 observations

- B1 = median of M=8 polls **immediately after** detection, subject to same min/max span and G_max.
- E006 detect 2010-02-12 → B1 window span **344d < 365** → **B1 invalid** (`fail_min_span`).
- E005 B1 cadence-valid but episode **invalidated** under Clarification A.
- Shared B0 / episode / B1 polls across episodes are material (see overlap audit); independence is **not** i.i.d.

**Admissible B1 count (strict):** **4** (E001–E004).

---

## Clarification D — Frozen null (ONE; pre-result; for independent review)

**ID:** `EXP002_NULL_V0_3_1_POLL_INDEX_BLOCK_BOOTSTRAP`  
**One-liner:** Poll-index block bootstrap (L_block=M=8, n_sim=5000, seed=20260909, PCG64) reshuffles values in blocks onto **fixed** field_dates; re-runs frozen episode machine; statistic = mean ΔB over admissible B1 episodes; one-sided left-tail p=(1+#{ΔB_sim≤ΔB_obs})/(1+n_valid_sim); Type-I calibration gate required; **not run on observed outcomes in this packet**.

Full executable spec: `data/snapshots/gates_20260909/exp002_trace_audit_v031/exp002_null_model_freeze_v031.json` and audit doc.

---



## Clarification E — Sparse sample gate PRESERVED (independent review)

v0.3 §6: \(N_{ep} \ge 6\) confirmed required for any inferential \(\Delta B\); else `INSUFFICIENT_EPISODES` / `DATA_INSUFFICIENT`.

Under strict confirmation-ordering **or** full forward-only re-execution: **N_ep=5**, admissible B1=**4**. Prior min-six **not** met. A null failure rule keyed only to admissible B1&lt;4 is a **new lowered gate** and is **not permitted**. Observed ratchet statistic remains **NOT_COMPUTED**.

## Clarification F — Full-machine cascade (E005/E006)

Row-delete of look-ahead E005 while retaining look-ahead E006 is **not** equivalent to a forward-only full-machine rerun. Forward-only merges look-ahead E005+E006 into one episode (onset 2008-10-13, confirm 2009-06-12, detect 2010-02-12) whose B1 fails `fail_min_span`. Details: independent-review memo + `exp002_e005_e006_cascade_check.json`.

## Clarification G — Source counts 163 vs 155

**163** = total polls in the research CSV. **155** = candidate starts tested (\(163-M\)). **123** = cadence-eligible baselines. Same CSV sha256 `c32f7f02ceed3fc647f14e3afa2c09e9d6affff07887c5c240641d902705de9d`.

## Non-claims (still binding)

- No ratchet / ΔB inferential result  
- No secular-trend significance  
- No support / not-support conclusion  
- No MODEL_CHANGE / Phase / scoring  
- L1-US-v0.1 production series not replaced  
