Files
resonance-engine/TASK_GIXX_ZERO_DISCRIMINATOR.md
2026-07-16 11:57:36 +07:00

87 lines
6.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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,5002,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.7370.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 100150-cycle band.
- Secondary: same for ux, and note whether the ~5763-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 90150 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