Skip to content

Add earth-pulse-harness: MetaHarness Darwin-Mode research pod for the 26-second pulse#620

Draft
ruvnet wants to merge 11 commits into
mainfrom
claude/earth-pulse-metaharness-bxo33p
Draft

Add earth-pulse-harness: MetaHarness Darwin-Mode research pod for the 26-second pulse#620
ruvnet wants to merge 11 commits into
mainfrom
claude/earth-pulse-metaharness-bxo33p

Conversation

@ruvnet

@ruvnet ruvnet commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Summary

A self-contained metaharness bundle at harnesses/earth-pulse-harness/ — a MetaHarness Darwin-Mode research pod for Earth's stable ~26-second microseism (Gulf of Guinea). Freeze the physics, evolve the harness. Built like the sibling harnesses/timesfm-harness, then driven on real data to a localized, characterized discovery.

🔬 Scientific finding (real data, GT.DBIC, IRIS/EarthScope FDSN)

The pulse is a fixed-frequency, narrowband Rayleigh-wave resonance radiating from a fixed point in the Gulf of Guinea, driven at variable strength, decoupled from the local ocean-wave field. Each step has a falsification test:

evidence result
Detection persistent line, median Welch PSD, 252 segments
Precise frequency 27.72 s (0.03607 Hz); canonical 26.0 s shows no excess
Resonance sharpness Q ≈ 66 (resolved; lower bound)
Frequency stability CV ~0.6% every year 1995–1998; no temporal glide of the fundamental
Amplitude varies 36×, independent of its own frequency
Decoupling corr(amplitude, secondary microseism) ~0, p > 0.18 every year
Calm-sea "gold samples" strongest pulses in the quietest seas
Cross-station G.SSB confirms 27.68 s → not a DBIC artifact
Source direction retrograde Rayleigh, back-azimuth ~100° → Gulf of Guinea
Fixed source bearing stable ~96° across seasons + two years
Triangulation only DBIC tracks the line (regionally concentrated) — honest limit

Full method, statistics, honest caveats: docs/research/discovery-resonator-decoupling.md, real-data-proof.md. Derived data under data/seismic/; reproduce with npm run prove | climatology | localize | triangulate.

ruvnet libraries, used for real

  • agenticow (src/memory.ts) — ruVector Copy-On-Write vector branching as planetary memory.
  • @ruvector/mincut-wasm (src/partition.ts, ADR-006) — dynamic min-cut / φ-expander signal-class partition (graceful CC fallback).

Bundle

  • Pipeline (src/): spectrumdetect-26sextract-featuresembed-eventsmemory (agenticow) → partition (mincut) → score-hypothesesvalidate; plus climatology (resonance/decoupling/Q/glide), polarization + triangulate (source localization).
  • .metaharness/: objective, safety-policy, genome. 6 ADRs + research docs.
  • Reproducible scripts: fetch, prove, climatology, localize, triangulate, evolve. .harness/ witness manifest.

Verification (all green)

  • npm test48 passing (pipeline, real-data proof, partition, discovery+replication+cross-station, polarization, triangulation, resonance/glide, install smoke)
  • npm run build (tsc) → exit 0; .harness witness self-verifies

Honest scope

Mainly one station (DBIC, 1995–1998); frequency cross-station confirmed (SSB), source direction localized and shown fixed. Pinpointing the location needs a denser source-proximal 3-component network (the line is regionally concentrated); the gliding-tremor companions and lagged/directional-swell coupling remain open. A defensible, localized, characterized discovery — not a "we solved it" claim.

🤖 Generated with claude-flow

claude and others added 11 commits June 28, 2026 23:15
… 26-second pulse

Create a self-contained metaharness bundle (mirroring harnesses/timesfm-harness)
for investigating Earth's stable ~26s microseism (Gulf of Guinea) and the
associated gliding tremors. Core principle: freeze the physics, evolve the harness.

Contents:
- Research pipeline (src/): detect-26s -> extract-features -> embed-events ->
  score-hypotheses -> validate, wired by pipeline.ts. Deterministic and offline.
  ruVector-style separate waveform/environment/source embeddings + NN search.
- .metaharness/: objective.json (maximize/minimize + promotion gate),
  safety-policy.json (evolvable surfaces vs forbidden mutations), genome.json.
- 5 ADRs (docs/adr/): freeze-physics, ruVector planetary memory, scoring + gate,
  validation/leakage/contradiction logging, Darwin mutation surfaces + safety.
- Research docs (docs/research/): literature review (Bruland & Hadziioannou 2023),
  bounded benchmark design, ranked hypothesis catalog.
- Research-pod agents: investigator, feature-engineer, hypothesis-scorer, validator.
- Skills (/evolve, /plan-change, /hypothesis-sweep), commands, default-deny MCP policy.
- CLI (init/doctor/pipeline), Darwin evolve scripts, .harness witness manifest.
- Tests: 17 passing (13 offline science pipeline + 4 install smoke). tsc build clean.

Witnessed via .harness/manifest.json + manifest.sha256 over all 52 bundle files.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…r memory

Validate the harness against REAL seismic observations, not just synthetic
fixtures, and implement the ruVector planetary memory with ruvnet's agenticow.

Real-data proof (src/spectrum.ts, scripts/, docs/research/real-data-proof.md):
- Data: GT.DBIC (Cote d'Ivoire, Gulf of Guinea coast) LHZ, boreal winter 1995,
  from the IRIS/EarthScope FDSN timeseries web service (public, no auth). One
  full real day committed as the offline test fixture; 12-day (288 h) median
  PSD artifact committed.
- Method: FFT + median Welch PSD (rejects earthquake transients) + spectral
  whitening + band-pass, all pure/deterministic TypeScript.
- Result: a persistent narrowband line at 27.68 s (0.0361 Hz), 2.16x whitened
  prominence over 252 segments — the long-period Gulf-of-Guinea microseism
  ("the 26-second pulse"). Reproduces across record lengths and survives
  instrument-response removal (not an artifact). Harness detectPulse on
  band-passed real data recovers it at 27.51 s, 0.937 confidence.
- Honest caveats documented: raw spectrum is dominated by the secondary
  microseism; measured period ~27.7 s sits in the 26-28 s long-period band;
  single station/epoch, not a source inversion.

ruVector planetary memory (src/memory.ts):
- Implemented on agenticow (Copy-On-Write vector branching over ruVector/rvf):
  ingest event embeddings, nearest-analog search, and COW-isolated scenario
  branching (storm/calm weeks) per ADR-002/ADR-004. Exercised on real events.

Adds: src/spectrum.ts, src/memory.ts, scripts/fetch-dbic.mjs (reproducible IRIS
fetch with provenance), scripts/prove-26s.mjs, __tests__/real-data.test.ts
(offline, 5 tests). npm run fetch / npm run prove. Full suite: 22 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
Answer "can we use ruvector dynamic mincut?" — yes, for real. Partition the
pulse-event similarity graph into signal classes with @ruvector/mincut-wasm
(subpolynomial dynamic min-cut + phi-expander hierarchy, crates/ruvector-mincut),
so the harness can cluster events without forcing one theory too early and flag
when a new mechanism enters the record.

- src/partition.ts: builds a weighted cosine-similarity graph over event
  embeddings and drives WasmThreeLevelHierarchy; `classes` = Level-2 cluster
  count, `expanders` reported as a structural diagnostic. streamPartition()
  re-decomposes per batch for regime-change/anomaly detection.
- Graceful degradation (ADR-150): the published wasm's timed paths
  (WasmMinCut.insertEdge, Wrapper.query, globalMinCut) panic under the Node
  wasm runtime ("time not implemented"), so we use the untimed hierarchy and
  fall back to an exact connected-components partition if the module can't init.
- Proven on real data: GT.DBIC 26 s events resolve to ONE coherent signal class
  (a single stable source); the partitioner separates >=2 orthogonal classes and
  detects a new class entering a stream. __tests__/partition.test.ts (4 tests).
- prove-26s.mjs now runs the partition on real events ([5b]); ADR-006 + index,
  README, and real-data-proof.md updated. Full suite: 26 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…cean-wave microseism

Push the science past detection to a real, validated empirical result derived
autonomously from real GT.DBIC observations (1996-1997, 57 two-day windows from
the IRIS FDSN service). Honest, falsifiable, single-station/two-year scope.

Finding — the 26 s pulse behaves like a fixed-frequency resonator driven at
variable strength, decoupled from the local ocean-wave field:
- frequency stable to CV 0.59% (f0=0.03606 Hz, period 27.73 s) while amplitude
  varies 36.5x;
- corr(frequency, amplitude) = 0.17 -> frequency does not shift with drive
  (fixed resonance, not a wandering broadband peak);
- corr(26 s amplitude, secondary/double-frequency microseism) = 0.04,
  permutation p = 0.75 (n=57) -> the 26 s strength does NOT track local
  ocean-wave energy, arguing against "just another microseism".

Also a negative result: no harmonic overtones of the line (rules out a simple
overtone resonator), and the line is a single broadened peak (~27.7 s).

Adds:
- src/climatology.ts: lineMetrics, resonanceStats, pearson, permutationP,
  seasonalPhase (pure, deterministic).
- scripts/climatology.mjs: reproducible multi-year fetch + analysis (npm run
  climatology).
- data/seismic/dbic-climatology-1996-1997.json: 57 per-window metrics + the
  resonance/decoupling statistics (the derived data the finding rests on).
- docs/research/discovery-resonator-decoupling.md: method, numbers, and honest
  caveats (null correlation rules out strong co-forcing, not all coupling).
- __tests__/discovery.test.ts: offline re-derivation of the headline numbers.

Full suite: 31 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…samples

Run the adversarial follow-up tests on the resonator/decoupling finding; it
survives all three. Real GT.DBIC data, IRIS FDSN, 111 windows across 1995-1998.

Test 1 (frequency precision): wide-band (0.0340-0.0400 Hz, includes canonical
26.0s), high-res (6.1e-5 Hz, 288h), parabolic-interpolated refit puts the
dominant long-period line at 27.72s (0.03607 Hz, prominence 2.05x). The
canonical 26.0s (0.03846 Hz) shows NO excess (0.82x, below background) -- so
27.7s is real, not a band-edge/binning artifact. Reported as the 27.7s pulse
with the ~6% offset from the "26s" label flagged for cross-station checks.

Test 5 (replication): the three invariants hold independently in all 4 years --
freq CV 0.53-0.67%, amplitude range 5-36x, freq-amp corr weak, and
corr(line, secondary microseism) never significant (perm-p 0.18-0.59, sign
flips year to year). Not a one-off.

Test 4 (calm-sea gold samples): 10/111 windows have a strong 26s pulse during
quiet local seas; the single strongest pulse (1996-06-22) sits in low seas
while the loudest boreal-winter seas coincide with the weakest pulse -- direct
support for a non-local-ocean driver.

Adds: data/seismic/dbic-replication-1995-1998.json (per-year stats + precise
frequency + gold samples); discovery report + README updated; discovery.test.ts
extended (8 offline assertions). Full suite: 34 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…s out artifact)

Test the biggest caveat (single station) by checking the line at 5 stations on
3 networks at different azimuths/distances (Feb 1996, <=12 days each, IRIS FDSN).

- G.SSB (France, ~4500 km N, GEOSCOPE network G) shows its dominant long-period
  peak at 27.68s -- agreeing with GT.DBIC's 27.77s line to within 0.00012 Hz
  (one frequency bin), on an independent network. The 27.7s line is therefore a
  real propagating signal, NOT a DBIC instrument artifact, and is strongest at
  the source-proximal station (consistent with a Gulf of Guinea source).
- Distant stations (II.ASCN, G.TAM) and the far control (IU.ANMO, New Mexico)
  show only a marginal ~26.6s feature (~1.2x) -- and since the control shows it
  too, NO separate 26s line is claimed from this short window.

Adds data/seismic/dbic-crossstation-1996.json and a cross-station assertion to
discovery.test.ts; discovery report updated with the table and an honest scope
revision (frequency now cross-station confirmed; decoupling stats still single
station; full localization needs multi-station beamforming). Suite: 35 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…at the Gulf of Guinea

Dig deeper to Level 2 (source). Three-component Rayleigh-wave polarization at
GT.DBIC locates the source DIRECTION from a single station, from real data.

Method (src/polarization.ts): a fundamental-mode Rayleigh wave is retrograde
elliptical in the vertical-radial plane, so Hilbert(Z) correlates with the
radial pointing at the source. We sweep trial azimuth and maximize the
amplitude-weighted projection (Pearson would normalize out the radial amplitude
-- fixed). Validated to recover known back-azimuths exactly on synthetic waves.

Real result (GT.DBIC LHZ/LHN/LHE, June 1996, 5 days, 96 windows, 27.7s band):
- motion is RETROGRADE -> fundamental-mode Rayleigh (surface wave, not body wave)
- back-azimuth 99deg (whole record) / 101deg (quality-weighted mean), R=0.76
- expected to source: Bight of Bonny 109deg, Sao Tome 118deg
=> the 27.7s wave arrives from ~100deg, straight into the Gulf of Guinea, within
single-station uncertainty -- independent localization of the source direction,
corroborating the decades-old attribution from first principles.

Adds: src/polarization.ts (hilbert, rayleighBackAzimuth, greatCircleAzimuth);
scripts/localize.mjs (npm run localize); data/seismic/dbic-3comp-1996-06-20.json
(committed 12h 3-component window) + dbic-backazimuth-1996.json;
__tests__/polarization.test.ts (synthetic recovery + real-data offshore bearing).
Discovery report + README updated. Suite: 40 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…egionally confined

Keep digging toward source LOCATION. Two real results, one positive, one an
honest negative that is itself informative.

Positive -- the source DIRECTION is fixed. Re-measuring DBIC's Rayleigh-wave
back-azimuth in four windows: 1996-01 86deg (R .68), 1996-06 101deg (R .76),
1996-09 96deg (R .76), 1997-06 100deg (R .87). Stable at ~96deg (spread 15deg)
across winter/summer/autumn and two years -> a fixed Gulf-of-Guinea source,
matching the literature's decades-long persistence.

Negative (informative) -- tight triangulation is not achievable this era.
Measured back-azimuths at 5 stations (DBIC, TAM, ASCN, LBTB, SSB): only the
source-proximal DBIC cleanly polarizes the 27.7s line (R 0.76, points at the
Gulf of Guinea). Distant stations have low concentration R and bearings that do
NOT point at the source -- TAM/ASCN are dominated by other ~26.1-26.6s lines
(outside the 27.7s band) and SSB's polarization points NW/N at North Atlantic
sources. So the 27.7s line is regionally concentrated near its source, not a
globally-dominant teleseismic arrival -- consistent with the multi-line
long-period microseism picture from the cross-station test.

Adds: src/triangulate.ts (bearing-intersection grid search, validated on
synthetic to <20km) + distanceKm; scripts/triangulate.mjs (npm run triangulate);
data/seismic/triangulation-1996.json + dbic-backazimuth-stability.json;
__tests__/triangulate.test.ts (synthetic recovery + fixed-direction + honest
single-station-only assertions). Discovery report + README updated. Suite: 44.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
Quantify HOW sharp the resonance is and whether the fundamental glides in time,
on the 12-day continuous Jan-1995 GT.DBIC record.

- Sharpness: f0=0.03607 Hz, FWHM=5.5e-4 Hz, Q=f0/FWHM ~66 (resolved, 9 bins) --
  a genuine narrowband resonance (broadband would be Q~1). Reported as a LOWER
  bound: the 12-day-averaged line is broadened by slow frequency wander, so the
  instantaneous resonance is sharper.
- Temporal: tracking the line's peak frequency hour-by-hour over 285 windows,
  the longest monotonic frequency run is 3h (noise-level) -- the fundamental
  does NOT sustain a glide; its frequency is fixed in time, not just on average.

This fits the literature anomaly: the gliding tremors (Bruland & Hadziioannou
2023) are companion signals that glide UP from the 26s fundamental, not the
fundamental drifting -- consistent with a stable narrowband carrier.

Adds: spectralLineQ + glideStats in src/climatology.ts;
data/seismic/dbic-resonance-q.json; __tests__/resonance.test.ts (synthetic
tone-vs-chirp validation + committed-artifact assertions). Discovery report
updated. Suite: 48 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…on log)

Continue to the marquee anomaly -- the Bruland & Hadziioannou (2023) gliding
tremors -- and let the harness's contradiction discipline catch a false positive.

A naive spectrogram ridge-tracker finds 15 apparent upward-gliding episodes
(0.05->0.09 Hz over hours) in the 12-day GT.DBIC record. Two checks reject them:
1. Bandwidth: the dominant 0.04-0.095 Hz feature is BROAD (Q~3.7) -- the
   secondary microseism, not a narrow tremor line.
2. Source coherence (decisive): a true tremor of the 26s source must share the
   fundamental's back-azimuth (~95deg, Gulf of Guinea, R 0.76). The band where
   the "glides" live is NOT source-coherent (R 0.17) and points ~174deg away
   (269deg). It is ordinary secondary microseism wandering with ocean state.

Verdict: REJECTED. The candidates are secondary-microseism frequency wander, not
gliding tremors of the Gulf-of-Guinea source. Isolating the real tremors needs
array/beamforming (as in B&H 2023); single-station raw-count analysis cannot
separate them. The honest null is logged, not dressed up as a detection -- the
ADR-004 behavior that keeps the other findings trustworthy.

Adds: src/spectrogram.ts (glideSearch + sourceCoherenceVerdict contradiction
test); data/seismic/dbic-gliding-search.json; __tests__/gliding.test.ts
(chirp-vs-tone + verdict validation + committed honest-null assertions).
Discovery report updated. Suite: 52 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
…ecord (1995-2002)

Continue to multi-decadal hardening. Extend the line-frequency measurement
across GT.DBIC's entire operational lifetime.

Result: 1995=27.77s, 1997=27.77s, 1998=27.68s, 1999=27.77s, 2000=27.77s,
2002=27.68s -- every year at 0.0360-0.0361 Hz, within ONE frequency bin
(mean 27.74s, CV 0.16% over 8 years). Confirms the decades-scale persistence the
literature emphasizes, measured from first principles at the source station.
Hardens the earlier 4-year replication to a full 8-year span.

Honest limit: a true >=20-year direct measurement is NOT achievable with open
data. DBIC (the only station that cleanly resolves the narrow line) ends in 2002;
distant stations do not isolate it (II.ASCN 1995 prominence at 27.7s = 0.96,
below background; G.SSB picks 29s weakly); and NO LHZ stations existed near the
Gulf-of-Guinea source in 2015 (region under-instrumented -- itself part of why
the phenomenon stays under-studied). Logged rather than overstated.

Adds: data/seismic/dbic-decadal-stability.json; __tests__/decadal.test.ts
(8-year stability + honest-limit assertions). Discovery report updated.
Suite: 55 passing.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01UQ6tMNicTnBHgF3bAi6gf9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants