Radio show preparation — generates station-voiced track context, talk breaks, social copy, and interview prep from a pasted setlist
Load the station YAML profile matching the user's request (88nine, hyfin, or rhythmlab). If no station is specified, ask which station before proceeding. The profile defines voice tone, vocabulary, break length defaults, social hashtags, recurring features, and local context.
Available stations:
Parse the user's message for:
If tracks are provided, proceed with full prep. If not, ask for the setlist.
search_recording + get_recording_credits — canonical metadata, producer, engineer, studiosearch_discogs + get_release_full — release year, label, catalog number, album contextsearch_songs + get_song — annotations, verified artist commentary, production contextsearch_bandcamp + get_album — artist statements, liner notes, community tags, independent statusget_track_info + get_similar_tracks — listener stats, similar tracks, top tagsFrom the raw data, generate:
For each transition point between tracks, generate talk breaks in the station's voice:
Bold the key phrases — the parts that really land on air. Include pronunciation guides for unfamiliar artist/track names.
For each track (or the show overall), generate platform-specific posts:
Never reproduce lyrics. Tone matches the station profile.
If the DJ mentions interviewing a guest:
Output a SINGLE ShowPrepPackage OpenUI component containing all TrackContextCards, TalkBreakCards, SocialPostCards, and InterviewPrepCards as children. This renders as one browsable artifact in the slide-in panel.
Apply these rules to ALL generated content: