PHASE 1 — the existence risk is resolved. Nineteen commits were local-only
with no push credentials. Three artifacts now exist off the working tree:
~/vyndr-full-history-2026-08-07.bundle 6.8M SELF-CONTAINED, clone it
~/vyndr-session-2026-08-07.bundle 244K needs existing history
~/vyndr-session-patches/ (20 patches) 1.5M
Use the full-history bundle -- `git bundle verify` shows the session bundle
requires ref 6452926, so it only applies onto a repo that already has this
history. The full one clones standalone. Copying one off the machine is
the top non-accrual action item.
PHASE 2 — the watch, today's starting line: 0 eligible rows, 0 eligible
dates, everything WAITING. Zero is correct, since the repair ships in this
session's commits and no settled row can carry the marker yet.
THRESHOLDS ARE ATTEMPT FLOORS, NOT TRUST FLOORS, and this is written into
the ledger so a future session cannot misread it. Reaching 10 dates means
the calibration re-fit CAN BE MEASURED, not that it is trustworthy -- we
lived that distinction tonight with 2-4 cluster CIs, a LODO gate at
1.4-9.3% power, and a >=40 bar that was right for promotion and wrong for
deploy. A 10-date map is thin, deploys PROVISIONAL with auto-demotion, and
its interval will still be wide.
Real-time estimates stated so the wait reads as designed: ~2 weeks for
calibration and hits lift, 3+ weeks for the verdict re-audit and the rbi
gate, since rbi accrues slowest and a date only counts once its props
settle.
PHASE 3 — resumption order fixed, triggered purely by date thresholds:
calibration re-fit @10, hits composed-lift re-measure @10 (the 1.39%
figure is VOID, direction unknown), prior verdict re-audit @14 (not
pre-priced), rbi lineup-slot two-part gate @14. FIRST TRIGGER: when
reAuditEligibility reports 10 eligible calibration dates.
Until then the program is honestly IDLE on modeling. That is the correct
state, not a gap to fill -- the alternative is measuring on reconstructions
of a retired forecast, which this program has now refused by name three
times.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W1sivYNqY2TS5ftykmHBU9
5.3 KiB
The accrual watch — the program is idle on modeling, and that is correct
PHASE 0 — live-surface integrity
| check | result |
|---|---|
| Grade bands not derived from the retired champion | PASS — gradeBands is required by no serving code. Built across several orders, never wired. No stale band can reach a user because none reaches a user at all. |
| No withdrawn-map leak | PASS — CALIBRATION_DEPLOYED is [] and the calibrate loop iterates it, so calibrate() is never called. The only p_win_calibrated assignment sits inside that empty loop. Served p_win is repaired-champion raw. |
| Refusals on the repaired reference | PASS — projectionFor reads l20_avg, which mlbGameLogFeatures now builds from fullLog. |
| Factors still fire post-repair | PASS — the repair moved the base they adjust, so sign was re-verified across it: at base 0.35/0.50/0.65/0.80, defence lowers, pitcher-contact raises, platoon raises at every point. Firing check only; not a lift re-measurement. |
One defect found, and it was mine
The grade card rendered "Last 20 games average: X" from l20_avg — a field
that, after the repair, holds a full-season average. The number moved and the
label did not, so the surface asserted a window that no longer existed. Fixed to
"Season average"; trapDetection's L20 explanations likewise.
Same class as everything else tonight, one layer out: a correct-looking string describing data that moved underneath it.
PHASE 1 — the existence risk, resolved
Nineteen commits (7b85934 → 2391574) were local-only with no push
credentials. Three retrievable artifacts now exist:
| artifact | path | size |
|---|---|---|
| session bundle | ~/vyndr-session-2026-08-07.bundle |
244K |
| full-history bundle (self-contained) | ~/vyndr-full-history-2026-08-07.bundle |
6.8M |
| patch series (20 files) | ~/vyndr-session-patches/ |
1.5M |
Use the full-history bundle — the session bundle verifies as requiring ref
6452926…, so it only applies onto a repo that already has this history. The
full-history one clones standalone:
git clone ~/vyndr-full-history-2026-08-07.bundle vyndr-recovered
This is the top non-accrual action item. Copy one of these off the machine.
PHASE 2 — the accrual watch
repaired champion marker: engine1@2026-08-07-fullwindow
eligible rows: 0 | eligible dates: 0
blocked: no settled rows yet carry the repaired champion marker
| item | need | have | status |
|---|---|---|---|
| calibration re-fit | 10 dates | 0 | WAITING |
| hits factor lift | 10 dates | 0 | WAITING |
| prior verdict re-audit | 14 dates | 0 | WAITING |
| rbi lineup-slot gate | 14 dates | 0 | WAITING |
Zero is the correct starting line: the repair ships in this session's commits, so no settled row can carry the marker yet.
These are ATTEMPT floors, not TRUST floors
Reaching 10 dates means "the calibration re-fit can now be measured." It does NOT mean the re-fit is trustworthy. We lived this distinction the hard way tonight: date-block CIs on 2–4 clusters, a LODO gate with 1.4–9.3% power, and a ≥40 date-cluster bar that was correct as a promotion bar and wrong as a deploy bar. A 10-date map is thin. It deploys PROVISIONAL with auto-demotion, like everything else, and its interval will still be wide.
No future session may read "threshold met" as "answer certified."
Real-time estimates
Roughly one MLB slate per day, but per-stat settled volume differs — hits props are far more numerous than rbi, and a "date" only counts once its props settle.
| item | dates | realistic wall-clock |
|---|---|---|
| calibration re-fit, hits lift | 10 | ~2 weeks |
| verdict re-audit, rbi gate | 14 | 3+ weeks (rbi accrues slowest) |
The wait is designed, not a stall. The alternative — measuring on reconstructions of a retired forecast — is the trap this program has now refused by name three times.
PHASE 3 — the pre-registered resumption order
Triggered purely by eligible-date thresholds. No re-litigation, no re-deciding:
- @10 dates — calibration re-fit on the repaired champion. Low-parameter, LODO where powered, PROVISIONAL, auto-demotion armed, shadow duel restarts on the repaired forecast. The favourite-longshot bias must be re-measured, not assumed to have survived the repair.
- @10 dates — hits factor composed-lift re-measure. The 1.39% figure is void — measured on the broken baseline. Direction unknown.
- @14 dates — prior factor verdict re-audit. Every null and every THEATER was scored against a champion worse than a frequency table. Not pre-priced; some may pass, some may still fail.
- @14 dates — rbi lineup-slot / RISP through the two-part gate. World A
~90%, within-role residual 0.01908 real,
lineup_contextprod-verified (S89).
FIRST TRIGGER: when reAuditEligibility.assess() reports 10 eligible
calibration dates, the next order is the calibration re-fit.
Until then the program is honestly IDLE on modeling. That is the correct state, not a gap to fill.
Invariants
No measurement on reconstructions — held. Phase 0 verified live integrity and
factor firing; it did not re-measure lift or re-fit calibration. Serving change
for the label fix, fingerprinted. p_win never mutated. No Bonferroni slot.