6.0 KiB
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
- Relaunch daemon (script above). Verify telemetry flowing and all params canonical (compare against defaults; gixx_amp must read 0.008).
- Settle: wait until cycle ≥ 2,000.
- Baseline capture B0: ~2,000 cycles (~200 frames) from 5561. Save
analysis\gixx0_B0.npz(cycles + frames). - Set gixx_amp = 0.0. Ack-verify. Record ack cycle.
- 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. - 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. - 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.
- 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.
- 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— baselineanalysis/gixx0_W1.npz— +500 cycles after gixx_amp=0.0analysis/gixx0_W2.npz— +5,000 cyclesanalysis/gixx0_W3.npz— +9,000 cyclesanalysis/gixx0_R.npz— recovery after restore