Point her at a sports channel and she posts live commentary as games happen — World Cup soccer, NBA, and whatever else is in season — in that same sharp bartender voice.
The one idea: she’s not making it up. Every line is grounded in real live data — the actual score, who just scored, box-score numbers, and live odds — pulled the moment she posts. If a feed goes dark, she goes quiet rather than guess.
A pregame setup, a goal reaction, and a check-in — three of the triggers she’ll fire in one game.
When she posts · the trigger timeline
a cadence engine decides “post now? on what?”
She doesn’t post on a fixed timer. A cadence engine watches the game state and fires on moments that actually matter.
Goals and finals fire immediately. Routine check-ins are spaced so she doesn’t flood the channel when three games overlap.
What she talks about · the depth
real data, not vibes
Each post pulls from several pools of live data. The game always leads; the market line is secondary color, not the headline.
Each post picks the sharpest angle from what’s available — she doesn’t dump all four at once.
Where the data comes from
multiple feeds so one outage can’t take her dark
She fans out to several providers every minute. If one is down, another covers. She never invents a number a feed didn’t give her.
Scores + box scores from API-Sports; sportsbook lines from SportsGameOdds with The Odds API as a backup; live market % from Polymarket + Kalshi; post-game clips from Highlightly.
Quality & honesty
she scores herself before posting
Every composed line passes through a quality judge before it goes out. A weak line gets dropped. She quotes only the numbers the feed actually gave her — the score, the stat, the line — never anything invented.
what she does
quotes the real live score
names players by their actual box-score numbers
gives the sportsbook line as-is
goes quiet if a feed is down
drops a post if the quality judge says it’s weak
what she never does
invent a score or a stat
roll a live game forward to a final
make up a betting line
cite a stale pre-match line as live odds
post when data is missing
Setup
A mod picks a sports channel in /menu and can choose which sports to follow (leave it blank and she covers everything in season). She posts there in production; while it’s in staging, lines go to #bot-logs only — so you can read what she’d say before the room sees it.
Move through the stages in /menu → experiments. Staging lets you read her takes before they go public.
One post at a time
concurrent games don’t wall the channel
When several games are live at once, she posts at most one routine read per channel per tick — the rest wait for the next loop. A goal or a final is a milestone and never waits; it goes out the moment it fires, then counts against the tick budget so the next routine read spaces itself around it.
A goal fires the moment it’s detected. Routine reads for other games wait for the next tick — no wall, nothing lost.
The game leads, the line follows
priority order inside every post
She has a strict priority order for what goes in a post. The player standout and the shape of the game come first, always. The betting line is secondary color — one clause that follows the game read, never the lead. And on a goal she never quotes the line at all: the market hasn’t repriced yet, so a % right after a score would be stale.
The player and the game are always the story. The line follows as a single secondary beat — and disappears entirely right after a goal.
Watch which sports
pick the games your room wants
A mod can narrow which sports she follows from /menu → channels. Leave it blank and she covers everything in season. Set a filter and she only tracks those sports — so a World-Cup-only room doesn’t get flooded with NFL and MLB games nobody asked for.
With no filter she covers every sport in season. A two-sport filter means she only fetches and posts for those two — less noise, no wasted API calls.
under the hoodClaude (Sonnet to call it, Haiku to score it) · API-Sports · SportsGameOdds · The Odds API · Highlightly · Polymarket · Kalshi
set it up: /menu → channels, then experiments → live scores · a mod must set the sports channel first