Session 23: All-day intelligence layer — schedule, game lines, streaks, hot lists, stat filtering, ParlayAPI dead (1567 tests)
This commit is contained in:
@@ -57,6 +57,22 @@ vyndr/
|
||||
└── DECISIONS.md # Architecture decisions log
|
||||
```
|
||||
|
||||
## All-Day Intelligence Layer (Session 23)
|
||||
Free/cheap content that keeps the platform alive when odds-api props are
|
||||
empty. NONE of these spend odds-api credits:
|
||||
- `/api/schedule/:sport` — cache-aside ESPN scoreboard (`scheduleService`),
|
||||
self-heals on cache miss. Per-game `hasOdds`/`hasGameLines` flags peek at
|
||||
other caches without fetching.
|
||||
- `/api/gamelines/:sport` — Tank01 book-by-book lines (RAPID_API_KEY quota).
|
||||
- `/api/streaks/:sport` + `/api/hotlist/:sport` — PURE engines
|
||||
(`streaksService`, `hotListService`) computed from cached game logs. NO
|
||||
API calls. Logs loaded by `rosterLogs.js` (prefetch blob, else Redis SCAN
|
||||
over `gamelogs:{sport}:{player}:{count}`). Empty roster = valid empty state.
|
||||
- `?stat=` filters narrow streaks/hotlist; categories in `config/statFilters.js`
|
||||
(mirror `web/src/config/statFilters.ts`). Discovery: `/api/stats/filters/:sport`.
|
||||
- Dead providers: set `status: 'dead'` in `config/providers.js` to drop a
|
||||
provider from fallback chains + configured list (ParlayAPI host is dead).
|
||||
|
||||
## Active Skills
|
||||
- vyndr-voice (all user-facing output)
|
||||
- prop-analysis (grading methodology)
|
||||
|
||||
Reference in New Issue
Block a user