87 lines
6.0 KiB
Markdown
87 lines
6.0 KiB
Markdown
|
|
# 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
|