/prep command generates a complete radio show prep package for a given setlist. The agent researches each track, then outputs a ShowPrepPackage component with context cards, talk breaks, social copy, concert events, and — if a guest is listed — interview prep.
Basic syntax
Artist - Track format.
Stations
| Station | Voice and focus |
|---|---|
| 88Nine | Warm, eclectic, community-forward. Indie, alternative, world, electronic, hip-hop. Audience: Milwaukee music lovers who value discovery. Vocabulary: discover, connect, community, eclectic, homegrown. |
| HYFIN | Bold, culturally sharp, unapologetic. Urban alternative, neo-soul, progressive hip-hop, Afrobeats. Audience: young, culturally aware Milwaukee listeners invested in Black art and music. Vocabulary: culture, movement, lineage, vibration, frequency. |
| Rhythm Lab | Curated, global perspective, deep knowledge. Global beats, electronic, jazz fusion, experimental, Afrobeats, dub. Audience: dedicated music heads, DJs, producers, crate diggers. Vocabulary: lineage, crate, connection, thread, sonic, palette. |
Example
What it produces
The agent outputs aShowPrepPackage component — a single container holding all prep elements for the show:
| Component | What it contains |
|---|---|
TrackContextCard | One per track: origin story, production details, genre connections, influence chain, the detail listeners can’t Google, why this audience cares now, Milwaukee connection if any, pronunciation guide, and album art |
TalkBreakCard | One per transition: short (10–15 sec), medium (30–60 sec), and long (60–120 sec) versions, bold key phrases for on-air delivery, cue timing, and pronunciation guide |
SocialPostCard | One per track or for the show overall: Instagram caption, X/Twitter line with hashtag, and a Bluesky community-oriented version |
InterviewPrepCard | If a guest is specified: warm-up questions, deep-dive questions, Milwaukee connection question, and a note on which questions to avoid |
ConcertEvent | Milwaukee-area upcoming shows from Ticketmaster, with venue, date, time, price, and ticket link |
Structured form syntax
For more control, use the structured form with bracket metadata:Metadata fields
| Field | Description |
|---|---|
station | HYFIN, 88Nine, or Rhythm Lab |
shift | Time of day — morning, afternoon, evening, overnight |
dj | DJ name, used in talk break copy |
guest | Guest name, triggers InterviewPrepCard generation |
include | Comma-separated list of sections to generate (see below) |
include= options
Omitting include generates the full prep package. To request only specific sections:
| Value | What it generates |
|---|---|
context | TrackContextCard for each track |
breaks | TalkBreakCard for each transition |
social | SocialPostCard for each track |
events | ConcertEvent entries from Ticketmaster |
interview | InterviewPrepCard for the specified guest |
Research strategy
The agent budgets tool calls based on setlist length:- Up to 8 tracks are fully researched using
research_track(Perplexity-powered) — one call per track returns origin story, production details, connections, and on-air hook - Tracks beyond 8 are covered from the agent’s general knowledge
- If the setlist has 4 or fewer tracks, the agent also fetches album art from iTunes
- After research, one Ticketmaster call fetches Milwaukee concert events (if
eventsis included)
The agent outputs only the
ShowPrepPackage OpenUI block — no narration before or after. All research context is embedded in the component fields.Related commands
/track
Deep dive on a single track before adding it to prep
/news
Daily music news segments to pair with your show
/artist
Full artist profile for a guest or featured artist
/story
Narrative deep dive on an album in your setlist