Dormant-layer audit: nothing to connect; proj-v1.1 is live and losing
READ-ONLY. Nothing connected, built or wired; the accruing challengers were not touched. "Dormant" meant three different things and in no case is the answer "connect it". DISTRIBUTION LADDER IS NOT DORMANT. projection/distribution.js is consumed by projectionChallenger (proj-v1.1), live on every snapshot at 94.2% coverage (276/293) with 437 settled rows since 2026-07-23. It is a FOURTH accruing challenger, and it is LOSING: resolution 0.108 vs the champion's 0.331. That verdict is no longer thin. It is also PER-STAT and doctrine-correct -- nine distinct league priors (hits 0.90, total_bases 1.45, home_runs 0.15, ...) each feeding a gamma-Poisson posterior into a negative binomial. Correcting the plan: §10.3's "single additive index across hits/Ks/TB" is engine1's GRADE, not this ladder, which made a solved problem look open. SIMILARITY IS WRONG-SPORT. Zero callers, and its weights are NBA vocabulary: pace 0.15, referee_tendency 0.06, lineup_context 0.12, score_state_context 0.05, travel_fatigue 0.08. MLB has no pace and no referees. Connecting it would be the sport-stubbed-in-on-another-sport's- template breach, and it would fail QUIETLY -- missing factors are skipped, so the score would silently collapse onto whatever few dimensions happened to exist. CONSTRUCT, not connect. BAYESIAN WOULD REGRESS THE MODEL. Zero callers, and DISTRIBUTION_SHAPES keys on rbis / runs_scored / strikeouts_batter / outs_recorded / pitcher_strikeouts / walks_allowed / pitches_thrown -- NONE of which are live stat keys (S41: they are rbi / runs / outs / strikeouts). getDistributionShape defaults to 'normal' on an unknown key, so wiring it as-is would model COUNT stats as Gaussian, silently, on most MLB props. It is also superseded by distribution.js. Do not connect; retire or rewrite. DEPENDENCY, inverted: a better mean would help the ladder, but the ladder is already connected and both would-be foundations are unusable -- so this is not "connect similarity first", it is "the ladder is live and underperforming, and strengthening its mean requires BUILDING an MLB similarity layer that does not exist". Next-order pointer moved to diagnosing proj-v1.1: the only candidate already carrying settled evidence, and its diagnosis decides whether the similarity build is worth doing at all. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QJs13VsyiSKYQP6rj3NNmc
This commit is contained in:
+19
-8
@@ -29,16 +29,26 @@ stay provisional until re-run** · documented ≠ verified.
|
||||
|
||||
## ▶ NEXT EXECUTABLE ORDER
|
||||
|
||||
**CONNECT THE STILL-DORMANT LAYERS** — similarity, Bayesian, and the distribution
|
||||
ladder (`projection/distribution.js`, proj-v1.1, built and unconnected). Same
|
||||
pattern that just worked three times: audit what is actually firing, repair the
|
||||
joins, add as a labelled challenger, prove on an axis-filtered holdout.
|
||||
**DIAGNOSE WHY proj-v1.1 LOSES.** The distribution ladder is **not dormant** — it
|
||||
is a **fourth accruing challenger**, live at **94.2%** coverage with **437 settled
|
||||
rows**, and it is **losing**: resolution **0.108** vs the champion's **0.331**.
|
||||
|
||||
*Blocked on nothing.* The alternative next order is
|
||||
**`archetype_x_archetype`** — the matchup ladder's upper rung, which needs the
|
||||
opposing starter classified per game.
|
||||
It is the only one of the candidate layers already carrying real settled evidence,
|
||||
it is the **per-stat distribution §10.3 called the biggest modelling gap**, and its
|
||||
diagnosis decides whether an MLB similarity layer is worth building at all.
|
||||
|
||||
### THREE challengers accruing in parallel — do NOT re-run early
|
||||
**Then, in order:** `archetype_x_archetype` (matchup's upper rung — ready, small
|
||||
radius) → **build** an MLB similarity layer *only if* the diagnosis says a better
|
||||
mean is what proj-v1.1 needs → retire/rewrite `bayesianEngine`.
|
||||
|
||||
**Nothing is left to "connect"** — see `specs/dormant-layer-audit.md`:
|
||||
- **similarity** — BUILT but **NBA-shaped** (pace, referees, score state). For MLB
|
||||
it is **CONSTRUCT, not connect**; wiring it would be the sport-stubbed-in breach.
|
||||
- **bayesian** — BUILT but keys on **7 stat names that are not live** and defaults
|
||||
to `'normal'`, so it would silently model count stats as Gaussian. Also
|
||||
**superseded** by `distribution.js`. **Do not connect.**
|
||||
|
||||
### FOUR challengers accruing in parallel — do NOT re-run early
|
||||
Verified firing on a real prod snapshot (293 grades), not inferred:
|
||||
|
||||
| axis | coverage | mean \|nudge\| | holdout query |
|
||||
@@ -46,6 +56,7 @@ Verified firing on a real prod snapshot (293 grades), not inferred:
|
||||
| **environment** | **84.6%** | 0.057 | *(shares the arch-v1 pattern)* |
|
||||
| **matchup** (`batter_own_split`) | **82.9%** | 0.015 | `scripts/matchup-axis-holdout.sql` |
|
||||
| **opportunity** | 30.0% | 0.142 | `scripts/opportunity-axis-holdout.sql` |
|
||||
| **proj-v1.1** (distribution ladder) | **94.2%** | *(forms the projection, not a nudge)* | 437 settled — **currently LOSING 0.108 vs 0.331** |
|
||||
|
||||
All three orthogonal (r ≈ 0 vs projection, `p_win`, line and each other). Each
|
||||
promotes ONLY on its own axis-filtered holdout, and ONLY if **reliability AND
|
||||
|
||||
Reference in New Issue
Block a user