db_calls.py default timeouts raised from 3s to 30s across all methods
(db_get, url_get, db_patch, db_post, db_put). scouting_batters.py
fetch_data now passes timeout=120 for large card rating queries.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add rarity name cross-reference table in Background section mapping PRD
display names (Replacement/Reserve/Starter/All-Star/MVP/Hall of Fame) to
codebase names (Common/Bronze/Silver/Gold/Diamond/HoF) with IDs
- Fix T4-2: correct Gold OPS threshold from 0.700 to 0.900 (confirmed in
rarity_thresholds.py); add note that 0.700 is the Bronze floor
- Fix T4-1: restate truncation invariant as a single precise assertion —
sum(columns) == 108 - truncated_amount — instead of two independent checks
that can both pass while the sum is wrong for unrelated reasons
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Seven pre-implementation test cases covering: 108-sum invariant
preservation under profile-based boosts, D20 probability shift
magnitude at T4, pipeline collision risk between T4 rarity upgrade
and live-series post_player_updates, HoF rarity cap (non-contiguous
ID ladder), RP T1 achievability, SP/RP/batter T4 parity, and the
cross-season stat accumulation design decision that must be confirmed
before Phase 2 code is written.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>