# EXP-01: arousal gene sweep on the fast reward-flip (does any gene setting stabilize reversal?)

- Date: 2026-10-07 (first run), 2026-10-08 (rerun with corrected eval) | Cadence version: v0.75.0 / `88f4dde` (first run); 0.78.0 / `750c8ef` (corrected rerun) | Program iter: none (pre-dates the V(S) program; results logged in EXPERIMENT-RESULTS.md; VS-TRANSFER-PROGRAM.md iter8 only notes that the #164 fix was applied to EXP-01)
- Script: `exp/EXP-01_arousal_gene_sweep.py` (current, with #164 reset fix) and `exp/EXP-01_arousal_gene_sweep.py.bak` (original eval) | Evidence: `exp/EXP-01.out` (v0.75, original eval), `exp/EXP-01-v078.out` (v0.78 per its filename only, the file itself prints no version; timestamped 2026-10-08 13:39, before the script was patched at 21:47, so it is an original-eval run); the corrected 1.000 rerun has no saved output file, its numbers are recorded only in EXPERIMENT-RESULTS.md

## Summary
- Question: does any single arousal gene setting make a small Cadence brain recover and hold near 1.0 accuracy after the reward rule inverts mid-stream?
- Setup: 4-context / 2-action bandit, `Brain.compose(modules=(16, 8))`, continuing-stream `brain.live` with +1/-1 reward and done=True (1-step episodes), 2400 steps, rule flipped at t=1200. 8 arousal configs (default; threshold x0.5 and x2; heat x2; youth x2; decay x0.5; tolerance x0.5; threshold x0.5 + heat x2), seeds 7-12 (6 seeds). Metric: post-flip hold = mean of the last 4 greedy evals of a save/load clone. Pass bar in code: mean hold >= 0.90 means STABILIZED.
- Prediction: none written before running (the docstring only states the question and "A flat 'nothing stabilizes it' is a real result"; the 0.90 pass bar is fixed in code).
- Result: original eval, v0.75: every config below the bar; best slow-decay (decay x0.5) 0.719, default 0.677, worst rouse-hard 0.573; best single seed 1.00 on several configs. Original eval, v0.78 (`EXP-01-v078.out`): best heat x2 0.750, default 0.708, still none >= 0.90. Corrected eval (reset before every probe), 0.78.0 / `750c8ef`: post-flip hold = 1.000 on every config, best seed 1.00 (EXPERIMENT-RESULTS.md). No SEM was printed; 6 seeds per config.
- Verdict: RETRACTED. The first-logged "REFUTED (coarse): no gene region stabilizes the reward-flip" was a measurement bug (GitHub #164, closed by Bernhard as an eval-protocol mismatch). With the corrected eval all 8 configs hold at 1.000, so the bandit reversal does stabilize, including at default genes. Scope (Bernhard's caveat): this bandit only, not a general reversal guarantee.

## Reflection
- What it means: the "sub-1.0 post-flip cap" was not a property of Cadence's arousal dynamics; it was produced by our probe. On this 4-context bandit the default brain already re-learns the flipped rule to ceiling. We still do not know anything about which gene matters, because after the fix every config sits at 1.000 and the sweep cannot rank them.
- Process: (1) Eval bug: the clone ran 4 greedy probes back-to-back without `reset()`, while training used 1-step episodes, so each probe inherited state from the previous one. This produced the entire original result, which was logged as a finding and sent as a sharpened question to Bernhard. (2) The script's comparison line "baseline step path was ~0.64" is a hard-coded string from an earlier run, not measured in this script. (3) Six seeds and no SEM printed. (4) After the fix the metric is at ceiling (1.000 everywhere), so the experiment has no effect window left to discriminate genes. (5) The corrected rerun output was not saved to a file. (6) Stale records: EXPERIMENT-QUEUE.md still shows EXP-01 as "REFUTED (coarse)" and EXP-01b (joint-gene + scale sweep) as ready, both spawned from the retracted result. (7) `EXP-01-v078.out` (a pre-fix v0.78 run) is not mentioned in any log.
- Lesson: when a learner "fails" under a protocol, first check that the evaluation episode structure matches the training episode structure (reset semantics) before attributing the failure to the mechanism. A surprising negative result about someone else's library deserves an eval-protocol audit before it goes to the author.
- Next: the retraction closed #164 and the same reset fix was carried into EXP-08/09/10 and the cadence-reward-flip harnesses. EXP-01b's premise is gone (nothing left to stabilize on this bandit); if gene effects are wanted, a harder task with headroom below ceiling is needed.
