# Check of the fresh gap's last 200 units (E2) before any lock: plan

Written October 13, 2026, about 12:30 Halifax, while the H2 check was running and before anything in this plan was
run. No E2 number has been computed. One choice, C1 below, is Colson's to make before it runs; it is filled in here,
with the time, before the check starts. Nothing here is locked, and no experiment is run.

## Why

Colson chose E4: the carried gap (E1, over (T + 200, T + 500]) and a fresh gap made at T + 200 and counted over
(T + 300, T + 500] (E2), the two to agree for a decisive result, "conditional on both passing their separate pre-lock
validity checks". He asked that "the fresh gap's last-200-unit measurement passes a prospectively defined calibration
criterion, not merely a high correlation with the carried gap", that "both growth measurements have explicit agreement
and disagreement criteria", that "failed calibration or manipulation validity produces INCONCLUSIVE rather than a
substituted endpoint", and that there be no exploratory early look at the fresh gap. E1 is the cause test's own
measure, so its natural link is the threshold's by definition and it needs no check of this kind.

## What stays fixed

- Old starts 1 to 18 only (seeds 0 to 17), untouched runs only: no kick, no hold, no growth after a change. No fresh
  start is touched.
- Nothing is written to ../cause-test-2026-10-12, ../cause-explore-2026-10-12, ../nudge-test-2026-10-10 or
  ../coherence-growth-2026-10-11. The cause test's locked files are checked before every piece and after the check,
  and both folders are fingerprinted before and after.
- prelock_checks_plan.md and hold_check_plan.md are not edited. The calibration's FAIL stays on record.
- No early look: the window was chosen after the calibration, so nothing about E2 is computed from the calibration's
  saved data. Its natural link over the last 200 units (κ) has not been computed for any moment.
- Draws: (20261013, 7, seed, T, j) for the fresh directions. Error bars come from the starts, as in every earlier
  part: the 18 starts redrawn 400 times with seed 20261015.

## What runs

Each start's base run is run again, step for step as in the calibration, in pieces if it must. The moments are new:
T = 2,025, 2,125, ..., 5,425 (35 per start, every 100 units). None is a calibration moment (those were multiples of
50). At each, two fresh copies are made at T + 200 from the untouched first copy, each displaced by its own random
direction with the calibration's recipe (rms 10⁻⁷ over both groups' pulled oscillators, the mean removed). Each is
measured and put back every 5 units against the first copy, exactly as the carried gap is, for the 60 intervals in
(T + 200, T + 500]. The fresh copies run in their own arrays, and no change is made to any copy.

## Measured

- For each fresh gap: G = (the sum of its 40 log growths over (T + 300, T + 500]) / 200, and W = the carried gap's
  growth over the same 40 intervals, from the base run. Ḡ = (G₀ + G₁) / 2.
- Its overlap with the carried gap at each put-back, as in the calibration (|cos| between the two phase-difference
  vectors, measured before either is put back).
- For each moment, as in the calibration: M = the mean of c over the 500 units before T, F = c(T) − M, and g₁ to g₅,
  the carried gap's growth in Test 17's five windows of 100 units before T.

## Criteria

| | criterion | |
|---|---|---|
| C1, lining up | Colson's choice, below | |
| C2, stability | the direction's own noise, SD over all moments of (G₀ − G₁) / √2, at most 0.5 × the natural spread of W (its pooled within-start SD) | needed |
| C3, agreement | the pooled within-start correlation of Ḡ with W at least 0.8 | needed |
| C4, calibration | κ_E2 = b_M(Ḡ) / b_M(W) between 0.75 and 1.25, with an error bar of at most 0.25. Each b_M is the pooled within-start least-squares weight of M, with F and g₁ to g₅ held fixed, on the same moments | needed |

C4 is the prospectively defined calibration criterion. It asks whether the fresh gap's last 200 units carry the same
natural link as the carried gap over the same units, not only whether the two move together (C3). κ_E2 is measured
against the carried gap over the same 200 units, so that the shorter, later window's own effect on the link is not
mixed in with the difference between a fresh and a carried gap. The window's effect is reported beside it (size
consistency, below).

### C1: Colson's choice, made before the check runs

- **Reported only (recommended).** The share of fresh gaps lined up (overlap at least 0.9) by T + 300, when counting
  starts, and by T + 500, and the median overlap at both.
- **A pass mark.** The calibration's C1 unchanged: at least 90% lined up by T + 500, and the median alignment at most
  100 units after the copy is made (that is, by T + 300, when counting starts).

Worth knowing before choosing. In the calibration (other moments, other directions), none had lined up 100 units after
being made and 23% after 300; the median overlap was 0.35 after 100 units and 0.67 after 300. So with the pass mark, E2
would almost surely fail and E4 could not run as chosen. C3 and C4 test what E4 relies on: that E2 moves with the
carried gap and reports the same natural link. Lining up asks for more, that it also point the same way.

Choice: **reported only.** Colson, October 13, 2026, about 13:00 Halifax, before the check ran: "Report lining-up (C1)
as a diagnostic only for the E2 fresh-gap check, while retaining its prospectively defined stability, agreement, and
κ_E2 pass criteria." So C1 has no pass mark, and C2 (stability), C3 (agreement) and C4 (κ_E2) keep theirs as written.
Filled in at about 13:20; no E2 number had been computed.

## Validity

- **V1.** Every re-run agrees to the last digit (coherence as saved, every log growth of the gap, and the settling
  trace) with the calibration's re-run of the same start, which agreed with the cause test's unchanged base-run code
  run in one go on this machine. Every piece runs in the calibration's numerical environment (CPU, Python, libc,
  numpy and its dispatch). This is the revised exactness check adopted for both earlier checks, stated here before
  running.
- **V2.** Every log growth and overlap is a finite number, and every fresh gap is measured at all 60 put-backs.
- If V1 or V2 fails, the check gives no reading and is reported as it stands.

## What each outcome means

- **PASS** (V1, V2, C2, C3 and C4, and C1 if it keeps a pass mark): E2 can be E4's second outcome. Its natural link
  b_M(Ḡ) from this check is the one its threshold uses. The experiment still checks it again (M6, below).
- **FAIL** (any criterion): E2 is not used. E4 cannot run as chosen, and no other outcome is put in its place
  automatically. As Colson asked, a simpler alternative goes to him, not run.
- **NO READING**: reported as it stands; nothing follows from it.

## Reported, without a criterion

- **Size consistency.** b_M(W) over (T + 300, T + 500] against the carried gap's b_M over (T + 200, T + 500], E1's
  window; and b_M(Ḡ) against both. Flagged if E2's link is less than half of E1's: E2 would then be the less sensitive
  of the two outcomes, and a disagreement between them would more likely come from that than from bias.
- G and W over the whole window (T + 200, T + 500], and κ over it (the calibration's C4 again, on new moments).
- The mean of Ḡ − W; the median overlap by time since the copy was made; the mean log growth per interval, fresh minus
  carried; and the three batches of six starts.

## For the experiment (the revised design; not checked here)

1. **Agreement and disagreement.** E1 and E2 each give their own decision, each with its threshold from its own
   natural link. PASS on both: PASS. FAIL on both: FAIL. PASS on one and FAIL on the other: INCONCLUSIVE (they
   disagree). INCONCLUSIVE on either: INCONCLUSIVE.
2. **Size consistency (reported and flagged; it does not change the decision).** Each outcome's effect as a fraction
   of its own benchmark; flagged if the two fractions differ by more than 0.5.
3. **M6, calibration inside the experiment.** In the experiment's untouched arm, C3 and C4 are computed again for E2
   on the experiment's own starts. If either fails, the result is INCONCLUSIVE; it is not decided by E1 alone.
4. **Manipulation validity.** If the change to coherence's history (the hold, or whatever replaces it) or its sham
   fails its criteria in the experiment, the result is INCONCLUSIVE. (Reworded at about 12:55, after the H2 check
   found the hold NOT FEASIBLE, so that it covers a replacement; no E2 number had been computed.)

## Running

- A dry run on old start 1, with fresh copies made at t = 200 and 250 (outside the moments, as in the calibration's
  dry run), checking the base run in pieces against the cause test's base-run code, the 40-interval sums and the
  directions' recipe. Its numbers count toward nothing and are disclosed in the results.
- Then foreground pieces, one at a time, each under `timeout -k 10 285`: seven workers, nothing left running between
  pieces. About 25 to 35 minutes in all, judging by the calibration (70 moments per start in 35 minutes) and today's
  slower pieces.
- Working files go to generated-artifacts/cause-prelock-2026-10-13/e2_check/ (git ignores it). The plan, the run log,
  the results and the dry run stay here.
