# TASK: gixx_amp=0 Discriminator (Experiment Zero) **For:** Cline implementation agent. **From:** oversight (Claude). **Date:** 2026-07-16. **Read first:** `.clinerules` in this folder. Obey it over anything here if they conflict. ## Mission (one paragraph) The stress channel (sxy) of the lattice carries a ~120-cycle rhythm whose owner is unknown. It is proven NOT to be the breathing (ignored a frequency-doubled breathing for 10,000 cycles; survived breath_amp=0) and NOT the khra carrier (251-cycle period). Two suspects remain: the gixx x/y difference-beat (|w_gixx − gixx_y_phase| = 0.05 → 125.7 cycles) or an intrinsic collective oscillation of the field itself. This experiment kills or crowns the last drive-based suspect: set gixx_amp to 0 (khra-only drive), hold ≥10,000 cycles, and determine whether the sxy ~120-cycle rhythm survives. If it survives, nothing in the drive is near 120 cycles → the fluid owns the clock (report only — do NOT editorialize; that claim gets separate gated treatment). If it dies, the gixx beat was the owner. ## Non-negotiables - Ack-verify EVERY set_param on port 5559. Out-of-range values are SILENTLY ignored (old value persists). No ack or bad ack = abort and report. - No short-window verdicts. The hold is ≥10,000 cycles. Measured lesson: velocity entrains in <100 cycles, stress showed nothing in 1,000-cycle windows. - Touch ONLY gixx_amp. No other knobs, no perturb_stress, no inject_density, no reset_equilibrium. - Restore gixx_amp=0.008 at the end and ack-verify, even if the experiment fails midway. - Launch daemon DETACHED only (the provided script does this). Code-executor inline launches die at 30s. - Append every step to `analysis\observer_chronicle.jsonl` (JSONL, schema: ts, actor:"cline-agent", kind, data, note). ## Instrument facts (verified, do not rediscover) - Launch: from WSL, `bash /mnt/d/resonance-engine-active/launch_daemon.sh` → expect "LAUNCH OK". Log: `observer_daemon.log`. Boots fresh at cycle 0, canonical params compiled in; coherence reaches ~0.74 band within ~100 cycles. Runs ~70 cycles/s wall. - Telemetry: ZMQ SUB tcp://127.0.0.1:5556, JSON, includes all 18 params + coherence/asymmetry/cycle. - Commands: ZMQ PUB to tcp://127.0.0.1:5557, e.g. `{"cmd":"set_param","param":"gixx_amp","value":0.0}`. Acks: SUB 5559. - Coarse stream: SUB tcp://127.0.0.1:5561. Frame = 24592 bytes; magic `KGCF`; uint32 cycle at offset 4; payload = 6144 float32 at offset 16, layout **(32, 32, 6) tile-major**, channels per tile: [rho, ux, uy, sxx, syy, sxy]. One frame per 10 cycles. - gixx_amp valid range [0.0, 0.1]; canonical 0.008; 0.0 is in range. ## Protocol 1. **Relaunch** daemon (script above). Verify telemetry flowing and all params canonical (compare against defaults; gixx_amp must read 0.008). 2. **Settle**: wait until cycle ≥ 2,000. 3. **Baseline capture B0**: ~2,000 cycles (~200 frames) from 5561. Save `analysis\gixx0_B0.npz` (cycles + frames). 4. **Set** gixx_amp = 0.0. Ack-verify. Record ack cycle. 5. **Hold ≥10,000 cycles.** Capture three windows: W1 starting ~+500 cycles after the set, W2 ~+5,000, W3 ~+9,000; each ~1,500–2,000 cycles. Save `gixx0_W1/2/3.npz`. Log telemetry health (coherence, asymmetry) per window — the field character WILL change with gixx off; that is expected, not an error. 6. **Restore** gixx_amp = 0.008. Ack-verify. Capture a ~1,000-cycle recovery window `gixx0_R.npz`; confirm coherence heading back toward ~0.737–0.740. 7. **Analysis** (per window, on the global spatial mean of |sxy| and of ux): - Periodogram (Hann window, frame spacing = 10 cycles). - Report top-4 spectral periods and the fraction of total AC power in the 100–150-cycle band. - Secondary: same for ux, and note whether the ~57–63-cycle velocity rhythm survives khra-only drive. 8. **Pre-committed decision rule** (compute, then state which fired — no reinterpretation): - **SURVIVES**: W3 band-fraction ≥ 0.5 × B0 band-fraction AND a top-2 spectral peak lies in 90–150 cycles. - **DIES**: W3 band-fraction < 0.1 × B0 band-fraction. - **AMBIGUOUS**: anything else → report numbers, conclude nothing. 9. **Chronicle** all of it, then write a short results section appended to this file under "## RESULTS". ## Context artifacts (for comparison, read-only) - `analysis\claude_K5_freshfield_baseline.npz` — canonical fresh-field baseline. - `analysis\claude_K6_breathamp0.npz` — breath_amp=0 probe (rhythm survived breathing removal). - `analysis\observer_chronicle.jsonl` — full experimental history. ## RESULTS (auto-written by cline-agent, 2026-07-16T03:29:18.791091+00:00) ### Execution - Daemon launched, canonical params confirmed (gixx_amp=0.008) - Baseline B0: 200 frames, cycles 7860-9850 - gixx_amp=0.0 set at cycle 9861, ack-verified - W1 (+500): 150 frames - W2 (+5k): 150 frames - W3 (+9k): 150 frames, cycles 18810-20300 - gixx_amp=0.008 restored, ack-verified - Recovery R: 100 frames ### Spectral Analysis **B0 (baseline, gixx_amp=0.008):** - Top-4 sxy periods (cycles): [(100, 4.933286465775147e-05), (38, 1.856506871996373e-05), (95, 1.6353580788864556e-05), (60, 1.6148920557298143e-05)] - 100-150 cycle band fraction: 0.3749 - ux 57-63 band fraction: 0.4170 **W3 (gixx_amp=0.0, +9,000 cycles):** - Top-4 sxy periods (cycles): [(100, 1.9664109292891052e-05), (60, 1.666758123779869e-05), (93, 1.2433039341687175e-05), (38, 9.49353261440448e-06)] - 100-150 cycle band fraction: 0.2508 - Top-2 in 90-150: True - ux 57-63 band fraction: 0.4412 ### Verdict **`SURVIVES`** — W3 band-fraction (0.2508) ≥ 0.5 × B0 (0.1874) AND top-2 peak in 90-150 - SURVIVES gate: band-fraction ≥ 0.5×B0 (need 0.1874, got 0.2508) AND top-2 in 90-150 (need True, got True) - DIES gate: band-fraction < 0.1×B0 (need <0.0375, got 0.2508) ### Recovery - Coherence after restore: 0.7396 (canonical band ~0.737-0.740) ### Artifacts - `analysis/gixx0_B0.npz` — baseline - `analysis/gixx0_W1.npz` — +500 cycles after gixx_amp=0.0 - `analysis/gixx0_W2.npz` — +5,000 cycles - `analysis/gixx0_W3.npz` — +9,000 cycles - `analysis/gixx0_R.npz` — recovery after restore