Captures the complete position before the build-process pivot, derived from the
repo and live database checks rather than from any summary. Every claim is
marked VERIFIED / INFERRED / UNVERIFIED with the check shown.
THE HEADLINE IS A PRODUCTION REGRESSION FOUND WHILE VERIFYING.
model_snapshots stopped being written on ~2026-08-15: 14,718 rows on 08-12 ->
7,080 -> 378 -> 0 on 08-16 and 08-17. ledger_entries and closing_captures are
still writing normally, so this is one write path failing, not a dead cron.
Cause, verified three ways: retentionService.js:165 declares chain_shadow on
every row; migration 038 was never applied so the column does not exist; and
persist() catches the error because retention is best-effort by design. The
chain-v1 report flagged this exact sequence as a blocking precondition. The
commit was pushed and deployed; the migration was not applied.
Consequence: both pending verdicts are frozen. A8 sits at 623 complete pairs
(MIN_N 500 met) but only 20 of 40 distinct settled games, and has gained
nothing since 08-15. The chain-vs-counter head-to-head has never accrued a row,
because its column does not exist either.
Four premise corrections the verification forced:
- WNBA is BUILT, not ingested. All three WNBA tables are absent; the source is
ESPN, not nba_api (WAF-blocked, package not installed); Basketball-Reference
cannot serve as-of-date aggregates; wehoop has no lineup/on-off data.
- Lineup reconstruction is not pending. It works, 40/40 games to a complete
5-a-side. What is missing is a column to store it in.
- WNBA footprint measures 42.6 MB/season, not ~475 MB. The Pro conclusion may
still hold, but not from that number.
- The chain diagnostic is BOTH a difficulty-correlated component and an
unexplained uniform offset, and the correlation is near-mechanical -- it shows
the wiring reaches the number, not that the adjustment is right.
Also records the fix options for the regression without taking either, since
this order is documentation-only. Reverting retentionService.js:165 restores
retention immediately and needs no credentials; applying 038 is the complete
fix and needs DDL access this environment does not have.
Documentation only. No code, schema, served path or accrual changed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Xcpku8k719mtCWqFKXg287