AgentSkillsCN

Content Studio

内容工作室

SKILL.md

Skill: Music Content Studio

Purpose

Manage the complete song catalog as a content studio — track status, analytics, assets, and readiness for each song. This is the "single pane of glass" for the music production pipeline.

Trigger

When the user asks to see their catalog, check song status, manage drafts, or review analytics.

Song Lifecycle States

code
IDEATED → CREATING → DRAFT → NEEDS_ASSETS → READY → PUBLISHED → PROMOTING
StateMeaningNext Action
IDEATEDConcept exists, no audio yetRun /create-song
CREATINGSent to Suno, awaiting resultWait for generation
DRAFTAudio exists, not finalizedReview, remaster, or approve
NEEDS_ASSETSAudio approved, missing cover/videoRun /generate-assets
READYAll assets completeRun /publish-song
PUBLISHEDLive on platformsMonitor metrics
PROMOTINGActive PR campaign runningTrack outreach results

Studio Views

1. Dashboard View (Default)

Show a summary when /studio is called:

code
=== Music Studio Dashboard ===

Catalog: 74 indexed / 626 total on Suno
Albums: 5 | Playlists: 16 | Personas: 4

Pipeline Status:
  Ideated:      3 concepts waiting
  Creating:     0 in progress
  Draft:        5 need review
  Needs Assets: 12 songs
  Ready:        8 to publish
  Published:    46 live
  Promoting:    2 active campaigns

Top Performers (7-day):
  1. Trust in Yourself    — 77 plays, 44.2% engagement
  2. The Awakening        — 142 plays, 14.1% engagement
  3. Vibe O S             — 128 plays, 18.8% engagement

Action Items:
  ! 12 songs need cover art
  ! 5 albums missing Lemon Squeezy products
  ! 3 concepts ready for Suno generation

2. Catalog View

Full table of all songs with filters:

code
/studio catalog [--status=draft] [--persona=FrankX] [--genre=rock] [--sort=plays]

Show for each song:

  • Title, persona, genre, duration
  • Status (with color indicator)
  • Plays, likes, engagement rate
  • Asset status: cover (Y/N), hook video (Y/N), full video (Y/N)
  • Distribution status: Suno (Y/N), DistroKid (Y/N), YouTube (Y/N)

3. Album View

Group songs by album with completion metrics:

code
/studio albums

Show for each album:

  • Title, track count (resolved/total), genre
  • Total plays, total likes, avg engagement
  • Commerce status (Lemon Squeezy product ID)
  • Missing: cover art, tracks, LS product
  • Suggested new tracks to add from catalog

4. Analytics View

Performance insights:

code
/studio analytics [--period=7d|30d|all]
  • Top tracks by plays and by engagement (separate rankings)
  • Genre performance breakdown
  • Persona performance comparison
  • Growth trends (if historical data available)
  • DistroKid candidates (auto-ranked by composite score)

5. Asset Pipeline View

What needs to be generated:

code
/studio assets
  • Songs without cover art (sorted by priority)
  • Songs without hook videos
  • Songs without full videos
  • Album covers needed
  • Playlist thumbnails needed

Data Management

Song Status Tracking

Maintain data/song-status.json:

json
{
  "songs": {
    "song-id": {
      "status": "NEEDS_ASSETS",
      "concept": "concept-id or null",
      "sunoId": "abc123",
      "assets": {
        "coverArt": null,
        "hookVideo": null,
        "fullVideo": null,
        "lyrics": true
      },
      "distribution": {
        "suno": true,
        "distrokid": false,
        "youtube": false,
        "tiktok": false
      },
      "updatedAt": "ISO date"
    }
  }
}

Sync with Suno Data

When the user has a data/inventories/{clientId}/music.json:

  1. Read all tracks from inventory
  2. Cross-reference with song-status.json
  3. Flag new tracks not yet in status tracking
  4. Update play/like counts from inventory

Integration Points

  • Ideation skill: Receives concepts, creates IDEATED entries
  • Suno mastery skill: Updates status to CREATING → DRAFT
  • Cover art skill: Updates asset.coverArt field
  • Video hooks skill: Updates asset.hookVideo field
  • Distribution skill: Updates distribution fields
  • Analytics from lib/music.ts: getTrackAnalytics(), getGenreDistribution()

Quality Rules

  • NEVER show stale data — always read fresh from data files
  • ALWAYS show action items at the bottom of every view
  • Sort by priority: NEEDS_ASSETS songs with high plays first
  • Flag songs that have been in DRAFT for >7 days
  • Suggest album groupings for orphaned songs