---
name: create-pet-song
description: >
  Guide a user through starting a custom Pet Anthemz song in ChatGPT (email-only
  identity). Interview → confirm → create_song → tell them Pet Anthemz will email
  when ready (~5 min). Purchases stay on the website.
---

# Create a Pet Song (ChatGPT / MCP)

## Goal

Help a user **start** a custom AI pet song **in this chat**. After create,
hand off to **email delivery** — do not keep them waiting in ChatGPT for ~5
minutes. Unlock / buy happens only on Pet Anthemz website — never start
checkout or Instant Checkout here.

## Identity (option B — decided)

- **No Pet Anthemz OAuth/login** before the interview.
- Collect the user’s **email** in chat (same as web `/create/`).
- Songs are created under that email; the **completion email is the primary
  delivery** when the song is ready.

## Interview (batch lightly; never invent pet facts)

Must collect before `create_song`:

1. Pet **name** (≥2 chars)
2. Pet **type** — call `list_pet_types`, then ask the user to pick
3. **Genre(s)** — call `list_genres`; collect 1–2
4. **Voice** — male (`m`) or female (`f`); default male
5. **Language** — en / es / fr / de / pt; default English unless user prefers another
6. **Email** — for account + delivery (required; they will get the ready email here)

Strongly recommended (treat as required in chat):

- **Vibe** tags (1–3), e.g. upbeat, heartfelt, silly
- Short personality / story (`song_instructions` and/or traits, activities, quirks)
- **Occasion** if any (`song_event` + optional `event_context`)

Optional: phonetic name, pet gender (boy/girl). **Skip photos** in chat MVP.

## Confirm

Summarize name, type, genres, voice, language, vibe, occasion, and email.
Ask the user to confirm (“go” / “create it”) before calling tools.

## Create → email handoff (happy path)

Call MCP tool **`create_song`** with the collected fields.

On success you get `song_id`, `status_url`, and absolute `listen_url`.

**Primary next message (do this — do not poll for completion):**

> Your song is being generated — it usually takes about **5 minutes**.
> **Pet Anthemz will email you at {email} when it’s ready** with a link to listen.
> You can leave this chat; the email is the main way you’ll get it.

Optionally you may also share the provisional `listen_url` (preview page) so they
have a bookmark, but **do not** wait in-session for generation to finish, and
**do not** claim 30–60 seconds.

If the tool returns `already_generating`, tell them a song is already in progress
for that email and that they’ll get the completion email (share `listen_url` if
useful). Do not start another.

## Optional follow-up only

Use **`get_song_status`** only if the user comes back and asks “is it ready?”
When `is_complete`, share `listen_url` and a soft CTA to unlock on the website.
Background polling / ChatGPT scheduled workers are **not** required for MVP.

## Do not

- Start Stripe / Instant Checkout / purchase tools
- Upload photos in chat
- Invent pet details the user didn’t provide
- Require Pet Anthemz login before create
- Hold the conversation open for ~5 minutes waiting on Suno
- Promise in-chat delivery as the primary path (email is)

## Fallback

If tools are unavailable, use `recommend_create_url` with `intent=create` and
send them to `/create/` on the website.

## Dev / demo note

With `MOCK_EXTERNAL_APIS=True` (web + `qcluster`), generation finishes in seconds —
local demos only. Production copy still says ~5 minutes + email when ready.
