# Kahlus Implementation Status Single source of truth for lane status. This sprint adds **infrastructure and synthetic falsification scaffolding only** — no scientific victory, no A100 jobs. ## Lane status | Lane | State | This sprint | |------|-------|-------------| | **v1** | **built / evidenced — FREEZE** | Untouched. Current evidence-gated EEG forecasting result lane is preserved. Do not mix v2/v3/EM into the v1 paper or result path. | | **v2** | **proposed bridge — synthetic falsifier PASSED** | Sprint 0 scaffold + Sprint 1A falsification benchmark. On the synthetic system the dual-field split is recoverable and meaningful (fast/slow latent recovery, EEG↦N / BOLD↦H dependence, lagged neural→hemo path, two-field beats one-field, stable long rollout). Narrow synthetic claim (`synthetic_dual_field_recovery`) passes its gate with adequate data; degenerate/tiny data correctly fails. Still synthetic only, no real data. | | **v3** | **proposed moonshot — synthetic operator-recovery falsifier PASSED** | Sprint 0 Transition Gym + KTM scaffold, hardened in Sprint 1B. On the synthetic gym the hidden operators are recoverable, held-out AB/BA compositions are predicted, the battery is non-commutative, and response profiles are separable. Baseline leaderboard incl. retrieval_knn + KTM; the **untrained KTM scaffold loses to ridge** (reported honestly) — this validates the benchmark/operator-recovery machinery, **not** v3 model superiority. Narrow scope `synthetic_transition_operator_recovery` passes its gate. Still synthetic only. | | **EM** | **v3 side module — artifact audit first** | Stage 0 no-human artifact-audit + passive-logging scaffolds only. Report generator (severity score, contamination map, HTML/MD) is Sprint 1C (not yet built). | Sprint 1B.5 extracted a shared, lane-neutral falsification core (`src/neurotwin/falsification.py`) that v2 and v3 benchmarks both use; future lanes (EM Sprint 1C) reuse it. See `docs/roadmap/sprint_ledger.md` for the full trail (tags, PRs, verdicts) and `docs/research/falsification_core.md` for the core API. ``` v1 = built/evidenced, freeze current result lane v2 = proposed bridge, synthetic only v3 = proposed moonshot, synthetic Transition Gym first EM = v3 side module, artifact audit first ``` ## What exists after this sprint - Unified, branch-aware evidence gate: `src/neurotwin/gates/` (dossier schema: `branch, dataset, split_audit_passed, baseline_table_present, finite_metrics, calibration_checked, claim_scope, scientific_claim_allowed, failure_reasons`). This is **separate** from the load-bearing v1 gate at `src/neurotwin/reports/evidence_gate.py`. - v2 dual-field synthetic scaffold: `src/neurotwin/models/dual_field/`. - v3 Transition Gym: `src/neurotwin/transition_gym/`; KTM scaffold: `src/neurotwin/models/ktm/`. - Shared baseline runner: `src/neurotwin/baseline_runner.py` (reuses existing baselines + metrics). - Kahlus-EM Stage 0: `src/neurotwin/em/`. - Smoke scripts: `scripts/run_dual_field_synthetic.py`, `scripts/run_transition_gym_baselines.py`, `scripts/run_ktm_synthetic.py`, `scripts/run_em_artifact_audit.py`, `scripts/run_em_passive_logging_analysis.py`. - Configs: `configs/models/dual_field_synthetic.yaml`, `configs/em/stage0_artifact_audit.yaml`, `configs/em/stage1_passive_logging.yaml`. ## Claim boundaries (hard) - No scientific-superiority or SOTA claim. The shared runner computes no calibration, so the evidence gate correctly returns `scientific_claim_allowed=false` for every sweep. - No `do(a)` / causal language unless an intervention is actually randomized/assigned in data. - No A100/cluster jobs until local synthetic tasks, baselines, tests, and evidence gates pass. - No fake results or placeholder "wins"; every artifact is marked synthetic/scaffold/proposed. ## EM safety boundary (hard) - Stage 0 is **no-human artifact audit** + passive logging only. - No stimulation, no 20kV equipment, no DBD plasma, no gas canisters, no homemade coils, no God Helmet replication, no high voltage, no clinical diagnosis/treatment claim. - `geomagnetic_fetcher` is **offline only** (never accesses the network). - `EMContext.field_strength_arb` is an arbitrary synthetic magnitude for differentiating audit conditions in simulation — it is never a delivered physical dose.