Session 44: Make it visible — VYNDR archetype names, grade intel, schedule fix, landing page (2061 tests)

Frontend + wiring only. Wires existing backend into the pages users see.

- VYNDR Original archetype rename (41) across archetypeService.js + lib/
  archetypes.js + ArchetypeBadge, each keeping legacyName (resolves stale data).
  Judge -> BOMBER. Old POWER PULL slot -> WHIFF strikeout-artist pitcher.
- BACKEND_HANDOFF.md: canonical frontend<->backend data contract.
- Grade card intel: scan/page.tsx now forwards the engine's intel fields
  (season_avg/form/usage/matchup_grade/archetype/...) into mapScanToGradeResult
  -> STAT CONTEXT + VYNDR INTELLIGENCE sections populate. The chain already
  preserved them (tierGating + /api/scan spread); the page was dropping them.
- Schedule freshness: slateAdapter.isRelevantGame drops completed games >24h
  old; Slate.filteredGames applies it. (TTL already 60s.)
- Landing: Features.tsx rewritten to user-facing copy (no Point-biserial/Zone
  14/ABS/Phi-coefficient).
- Depth chart Next proxies added (/api/stats/lineup|depth|cascade) - were 404.
- GameCard swap DEFERRED (Kev): legacy on-demand card stays as a bridge until
  the snapshot pipeline populates the grades cache; vyndr/GameCard swaps in then.

Backend 2045 -> 2061 tests (+16), 167 suites. Web build clean (exit 0).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kev
2026-06-18 20:15:38 -04:00
parent 80683e71b4
commit 7969a4971a
26 changed files with 766 additions and 302 deletions
+56 -2
View File
@@ -4,8 +4,62 @@
2026-06-18
## Current Phase
SHIP BUILD v43.0 — Data pipeline wiring + P0 audit fixes + depth chart
foundation. The Session-42 Player Intelligence architecture now flows REAL data.
SHIP BUILD v44.0 — Make it visible: VYNDR Original archetype names, grade-card
intel wiring, stale-game filtering, landing copy, depth proxies. Frontend +
wiring only (no new backend services).
## Session 44 (2026-06-18) — SHIPPED ✅ MAKE IT VISIBLE
Wired existing backend work into the pages users see + renamed archetypes to
VYNDR Originals. Backend 2045 → **2061 tests** (+16), 167 suites. Web build clean
(exit 0). `BACKEND_HANDOFF.md` added as the canonical data contract.
### VYNDR Original archetype rename (proprietary names)
All 41 archetypes renamed in `archetypeService.js` + `lib/archetypes.js` +
`ArchetypeBadge`, each keeping `legacyName`/`legacy` (never displayed; resolves
for stale data). NBA: TORCH, CONDUCTOR, FORTRESS, ARTILLERY, SURGE, DUAL THREAT,
CONNECTOR, FASTBREAK, PAINT BOSS, LOCKDOWN, SWITCHBOARD, ARCHITECT, PISTON,
SENTINEL, IGNITER. WNBA-unique: DISTRIBUTOR, SHIELD, RANGE, SPARK, ANCHOR. MLB:
BOMBER, BRUSH, DRIVER, ALPHA, WHIFF, GHOST, HYBRID, FLEX, WORKHORSE, CATALYST,
MIRROR, HAMMER, SINKER, BRIDGE, SWITCH. Soccer: FINISHER, MAESTRO, TOWER, MOTOR,
BLADE, WALL. **MLB note:** the old taxonomy had two power hitters (POWER
PULL/POWER SLUGGER) but the new set has one power name (BOMBER), so BOMBER now
fires for any high-HR bat (Judge → BOMBER per the audit checklist) and the freed
slot became a real WHIFF strikeout-artist pitcher (improves pitcher coverage).
`getArchetype`/`archetypeInfo` resolve legacy names → VYNDR Originals.
### Phase 2 — grade-card intel now populates (the real bug)
The chain engine→tierGating→/api/scan proxy already PRESERVED the intel fields
(all spread `...result`/`...data`). The ONE broken link: `scan/page.tsx` called
`mapScanToGradeResult` with a hardcoded field subset and DROPPED season_avg/
form/usage/matchup_grade/etc. Now forwards them (+ extended `ScanResponse`), so
STAT CONTEXT + VYNDR INTELLIGENCE sections light up on a real MLB grade.
### Phase 3 — stale-game filtering
`slateAdapter.isRelevantGame(game, now)`: upcoming/live always show; a COMPLETED
game is dropped once >24h old (no more 5-day-old FINALs). Applied in `Slate`'s
`filteredGames`. Schedule TTL was already 60s (≤30min) — no change.
### Phase 4 — landing copy
`Features.tsx` rewritten: no more "Point-biserial", "Zone 14", "ABS
intelligence", "Auto-calibrating", "Phi-coefficient". User-facing benefit copy
(Player DNA archetypes / Self-improving model / Lineup intel before tip-off /
Deep pitcher-batter matchups).
### Phase 5 — depth chart proxies (404 fix)
Added the missing Next proxies `/api/stats/lineup/[team]`, `/depth/[team]`,
`/cascade/[player]` → return JSON, not 404.
### Phase 1 — GameCard swap DEFERRED (decision: Kev)
The live Slate keeps the legacy "Read"/on-demand grade card as a **temporary
bridge**. The vyndr/GameCard swap lands WITH the snapshot pipeline (next
session): the on-demand "Read" model is being retired for a pre-graded snapshot
model (full slate graded at scheduled intervals, grades locked to the line), and
the new card is designed for that. Swapping now would remove grading + show blank
cards (grades cache unpopulated). BookChip brand colors already render in the
legacy card (S43).
## Session 43 (2026-06-18) — SHIPPED ✅ DATA PIPELINE + AUDIT FIXES
## Session 43 (2026-06-18) — SHIPPED ✅ DATA PIPELINE + AUDIT FIXES