Content design · Content engineering · Concept

Create a vibe

"Play breakup music" sounds simple. It isn't a field in any music catalog. Someone has to decide what it means, what else people call it, when it's ambiguous, and what the system says when it isn't sure. This is that work, end to end.

Role
Content design and content engineering (solo concept)
Built with
Claude, as a working partner for research, code and checks
Deliverables
Vocabulary, flow and copy, fixed text, golden set, tests, working prototype

Try the prototype

Unaffiliated concept. Not an Apple product. Songs and artists in the prototype are fictional.

Where this comes from

My day job is content design for a clinician-facing AI assistant that answers drug questions. Most of the hard problems there aren't about tone. They're about identity and precision: working out which drug someone means, when an abbreviation means two different things, and what the system is allowed to say when it can't help.

I can't share that work. So I rebuilt the same thinking in a domain anyone can read: music. The methods carry over directly; none of the data, code or details do.

Healthcare AI problemThe music version
An abbreviation that means two drugs should ask, not guess"Breakup" means three different playlists, so it asks
Short abbreviations fuzzy-matching unrelated drug namesSlang matching the wrong vibe, so every label maps to exactly one vibe, enforced by a test
Search ranking is a deliberate business choice"Based on: My taste / Popular right now / Classics" makes it the listener's choice
Safety messages must be true every time they appearFixed text for limits, like playing music at a business
Crisis messaging that over-fires labels peopleA sad mood gets sad songs, never a hotline
A clinically reviewed golden datasetA golden set of 23 requests, run as tests against the prototype

1. A vocabulary, not a list of moods

Everything starts with a controlled vocabulary of 18 vibes in four facets: mood (how it feels), theme (what it's about), activity (what you're doing) and setting (where, and with whom). A request can combine them: "sad songs for a road trip" is a mood plus an activity.

Each vibe follows the shape of SKOS, the W3C standard for controlled vocabularies: a preferred label, alternate labels, and a broader term. It also carries plain-language levels for energy, positivity, tempo and lyrics, and a rule for when to ask.

One row, simplified
Label
Over it
Also called
moving on · empowered breakup · petty breakup songs · revenge songs
Broader
Breakup
Feels
High energy, high positivity, mid to fast tempo

Lead with the listener's words. A catalog would call this vibe "Empowered breakup." People say "I'm over it." The label is what people say; the catalog term becomes an alternate label.

2. Ask instead of guess, but only when it matters

A vibe marked ambiguous must come with a question and real options. "Breakup" asks "Still in it, or over it?" and offers Sad breakup, Over it, and Missing them. Guessing wrong is worse than asking.

But a question is a cost, so the system only asks when the answer changes what plays:

3. Precision: every claim needs a source

Running at a pace

People think in pace ("a 10-minute mile"). Music is measured in beats per minute. The label I wanted was "10-minute mile · about 170 BPM," but only if a source supported it.

So the label says "about 169 BPM", and Faster / Slower buttons in small steps do the real work. A common running-blog shortcut (songs at half your step rate) didn't make it in: I couldn't find research behind it. See it · Sources

Playing music at a business

My first draft of this line was wrong in three ways, and fixing it is the clearest example of the precision this work needs.

First draftAfter checking the terms
Trigger"Public venue"Commercial use. The service's terms say "personal, noncommercial" and never mention venues.
Claim"I can't make a playlist"Untrue: it can. The limit is where it's played.
Unclear words"Venue" went straight to the limit"Venue" asks first: "Is this for a business?" A wedding at a venue is private.
"Apple Music is for personal, noncommercial use, so it isn't licensed for playing at a business. For that, look for a business music service that includes a public performance license."

See "venue" · See "my café"

4. Fixed text that's true every time

Some lines appear in many situations: too few matches, songs unavailable in your region, clean versions only. Each one is written so it's true in every case where it shows, not just the one I pictured.

5. A mood is never a crisis

"Sad girl music" and "songs for when I want to cry" get sad songs. Matching the mood is the help. Answering a mood with a hotline labels the listener, and people who've had it happen say it makes them feel worse.

Only an explicit statement of risk gets a support line, worded as an offer, with music still available. The trigger is narrow on purpose, and the golden set tests both sides.

6. Content engineering: rules that hold

Content decisions break quietly when a system grows. So the important ones are written down as checks:

Content design decidesContent engineering makes it hold
Vibe names in the listener's wordsPreferred and alternate labels in the vocabulary
When to ask instead of guessAn ambiguous vibe fails the check unless it has a question and real options
One meaning per labelA label that points to two vibes fails the check
Held-out words stay held outAdding "vibes" to any vibe fails the check
The prototype says what the content saysThe vocabulary file generates the prototype's data; all copy lives in one file
Expected behaviorA 23-request golden set, run against the prototype as tests

The tests caught my own gaps. Running the golden set against the prototype found three things I'd missed:

What's next, and the limits