Goal
Close newly identified physics-governance and model-semantics debt without granting score credit from documentation text.
Findings
P0-1: INV-T2b claim-boundary drift
results/cross_asset_kuramoto/SL_ES_PREREGISTRATION.md records DECISION: REJECT H1 for the Stuart-Landau ES lead claim:
leads_rate = 0.90625
p_value = 0.7647647...
n_episodes = 32
- rejection reason: circular-shift null makes the apparent lead indistinguishable from chance
.claude/commit_acceptors/T2b-stuart-landau-es.yaml correctly says no T2b signal is wired into the shadow rail.
But .claude/physics/INVARIANTS.yaml still exposes INV-T2b as a qualitative P1 invariant-like physics claim. That creates claim-boundary drift: a rejected empirical hypothesis remains in the hard physics registry.
Required fix:
- demote/mark
INV-T2b as REJECTED_DO_NOT_PROMOTE or move it out of invariant registry into a rejected-hypothesis ledger;
- preserve
INV-SL1 and INV-SL2 as universal implementation bounds;
- add a guard preventing rejected empirical hypotheses from appearing as active invariant claims.
P0-2: Stuart-Landau sweep ignores fitted market state
fit_stuart_landau() extracts fitted market amplitude, phase, omega, and mu, but _hysteresis_sweep() receives only mu and omega; it initializes z from seeded random normal values.
That means ES proximity can become a function of mu/omega + seed, not a full sweep of the observed market analytic state.
Required fix:
- pass fitted
z0 = amplitude * exp(1j * phase) into _hysteresis_sweep();
- keep seed only as explicit fallback/noise mode, never as the default fitted-state path;
- add a regression test showing two windows with same
mu/omega but different amplitude/phase produce distinguishable sweep state when physics says amplitude dynamics matter.
P0-3: silent μ clamp without audit surface
_estimate_growth_rate() computes μ as a rate, then clamps to ±1 for Euler stability. That may be a necessary bounds guard, but it silently changes the physical growth-rate distribution.
Required fix:
- expose
mu_raw, mu_clamped, mu_was_clipped, and clipping count/mass in result or diagnostic artifact;
- add a test that pathological μ is clipped visibly, not silently;
- forbid interpreting clipped windows as unmodified physical evidence.
P1-1: rolling physics failures become NaN
rolling_es_proximity() catches ValueError / FloatingPointError and writes NaN. For exploratory plotting this is acceptable; for physics evidence it hides failure reasons.
Required fix:
- add strict mode:
fail_closed=True raises with window index and reason;
- add optional diagnostics ledger for NaN windows;
- evidence-generation path must use strict mode.
Non-claims
- Do not raise physics score from this issue alone.
- Do not promote T2b to shadow rail.
- Do not weaken existing gates.
- Do not erase the rejected OOS result.
Acceptance criteria
- Active registry cannot present rejected empirical hypotheses as live physics invariants.
- Stuart-Landau ES proximity default path is initialized from fitted analytic state, not random seed.
- μ clipping is auditable.
- Rolling failures are fail-closed in evidence mode.
- Tests and artifacts distinguish implementation bounds (
INV-SL1, INV-SL2) from rejected lead claim (INV-T2b).
Goal
Close newly identified physics-governance and model-semantics debt without granting score credit from documentation text.
Findings
P0-1: INV-T2b claim-boundary drift
results/cross_asset_kuramoto/SL_ES_PREREGISTRATION.mdrecordsDECISION: REJECT H1for the Stuart-Landau ES lead claim:leads_rate = 0.90625p_value = 0.7647647...n_episodes = 32.claude/commit_acceptors/T2b-stuart-landau-es.yamlcorrectly says no T2b signal is wired into the shadow rail.But
.claude/physics/INVARIANTS.yamlstill exposesINV-T2bas a qualitative P1 invariant-like physics claim. That creates claim-boundary drift: a rejected empirical hypothesis remains in the hard physics registry.Required fix:
INV-T2basREJECTED_DO_NOT_PROMOTEor move it out of invariant registry into a rejected-hypothesis ledger;INV-SL1andINV-SL2as universal implementation bounds;P0-2: Stuart-Landau sweep ignores fitted market state
fit_stuart_landau()extracts fitted marketamplitude,phase,omega, andmu, but_hysteresis_sweep()receives onlymuandomega; it initializeszfrom seeded random normal values.That means ES proximity can become a function of
mu/omega + seed, not a full sweep of the observed market analytic state.Required fix:
z0 = amplitude * exp(1j * phase)into_hysteresis_sweep();mu/omegabut different amplitude/phase produce distinguishable sweep state when physics says amplitude dynamics matter.P0-3: silent μ clamp without audit surface
_estimate_growth_rate()computes μ as a rate, then clamps to ±1 for Euler stability. That may be a necessary bounds guard, but it silently changes the physical growth-rate distribution.Required fix:
mu_raw,mu_clamped,mu_was_clipped, and clipping count/mass in result or diagnostic artifact;P1-1: rolling physics failures become NaN
rolling_es_proximity()catchesValueError/FloatingPointErrorand writesNaN. For exploratory plotting this is acceptable; for physics evidence it hides failure reasons.Required fix:
fail_closed=Trueraises with window index and reason;Non-claims
Acceptance criteria
INV-SL1,INV-SL2) from rejected lead claim (INV-T2b).