Skip to content

/promo-writer

Generates platform-specific social media copy from album themes, track concepts, and lyrics. Use when promo/ templates need to be populated before release.

shell
$ npx -y skills add bitwize-music-studio/claude-ai-music-skills --skill promo-writer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/promo-writer
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generates platform-specific social media copy from album themes, track concepts, and lyrics. Use when promo/ templates need to be populated before release.

SKILL.md

promo-writer.SKILL.md
name: promo-writer
description: Generates platform-specific social media copy from album themes, track concepts, and lyrics. Use when promo/ templates need to be populated before release.
argument-hint: <album-name> [platform]
model: sonnet
effort: high
prerequisites:
  - lyric-writer
allowed-tools:
  - Read
  - Edit
  - Write
  - Glob
  - Grep
  - bitwize-music-mcp

Promo Writer Skill

Generate social media copy for album promotion across Twitter/X, Instagram, TikTok, Facebook, and YouTube. Produces native-feeling content for each platform from album context — themes, track concepts, and streaming lyrics.

Purpose

Populate the `promo/` directory with platform-specific copy ready for review. Each platform gets content shaped to its format, tone, and conventions — not the same text cross-posted everywhere.

When to Use

  • After track concepts and lyrics are written (need material to pull from)
  • Before release — generate copy to fill promo/ templates
  • User says "write promo copy", "create social media posts", or "fill in the promo templates"
  • When promo/ files exist but are still template placeholders

Position in Workflow

Lyrics Written → Promo Videos (optional) → **[Promo Writer]** → [Promo Review] → Release

Between content completion and promo-reviewer. The promo-reviewer polishes what this skill generates.

Supporting Files

  • **[copy-formulas.md](copy-formulas.md)** — Hook formulas, CTA templates, post structures, hashtag recipes
  • **[/reference/promotion/social-media-best-practices.md](/reference/promotion/social-media-best-practices.md)** — Platform strategy and content guidance
  • **[/skills/promo-reviewer/platform-rules.md](/skills/promo-reviewer/platform-rules.md)** — Character limits and hashtag rules

---

Workflow

1. Album Resolution

**Resolve the album from arguments:**

Use MCP `find_album` with the album name from `$ARGUMENTS`. If no album specified, check `get_session` for last album context.

**Verify readiness:**

  • Album must have track concepts written
  • At least some tracks should have streaming lyrics (for quotable hooks)
  • If no streaming lyrics exist, warn: "No streaming lyrics found — using track concepts only. Hooks will be less specific."

2. Data Gathering

Gather album context in batch to minimize round-trips:

1. **Album data**: `get_album_full(album_slug, "concept,streaming,musical-direction")` — album narrative + track content 2. **Track list**: from album data — all track names, concepts, statuses 3. **Streaming lyrics**: from album data sections — pull quotable hooks from streaming lyrics (NOT Suno lyrics, which contain phonetic spellings) 4. **User preferences**: `load_override("promotion-preferences.md")` — tone, platform priorities, messaging themes, hashtag preferences, AI positioning

**Critical**: Use **streaming lyrics** for quotable hooks. Suno lyrics contain phonetic spellings (`bit-wize`, `Luh-rock-uh`) that must never appear in public-facing copy.

3. Generate Campaign Strategy (campaign.md)

Generate `campaign.md` first — it's the strategy foundation that informs all platform copy.

**Content to generate:**

| Section | What to Write | |---------|---------------| | Campaign Overview | Album name, release date (or TBD), primary platform, campaign duration | | Key Messages | 3 core messages derived from album themes — the "why should anyone care" | | Target Audience | 2-3 audience segments based on genre and themes | | Schedule | Pre-release, release week, post-release calendar with specific content types | | Hashtags | Primary (discovery + genre) and secondary (album-specific, AI if applicable) |

**Derive key messages from album data:**

  • What is the album about? → Message 1 (concept hook)
  • What makes it different? → Message 2 (unique angle)
  • Why listen now? → Message 3 (urgency/relevance)

**Present to user for approval before proceeding to platform copy.**

4. Language Selection

**Before generating any copy, determine the output language(s).**

**If override exists** with a `## Language` section in `promotion-preferences.md`, use that preference without asking.

**Otherwise, ask:**

What language(s) should the promo copy be written in?

[1] English (default)
[2] German (Deutsch)
[3] French (Français)
[4] Spanish (Español)
[5] Bilingual — two languages per post (e.g., DE + EN, FR + EN)
[6] Other — tell me which language(s)

**Bilingual mode**: When two languages are selected, each post gets both versions stacked in the same code block, separated by a `---` divider. The primary language comes first, the secondary language second. Hashtags stay in English (international discovery).

**Override file addition** (`{overrides}/promotion-preferences.md`):

## Language
- Primary: de
- Secondary: en
- Mode: bilingual

Store the selected language(s) and apply to all generated copy in this session.

5. Platform Selection

**If platform specified in arguments**, generate only that platform.

**If override exists**, follow platform priority list and skip list from `promotion-preferences.md`.

**Otherwise, ask:**

Which platforms should I generate copy for?

[A] All platforms (Twitter, Instagram, TikTok, Facebook, YouTube)
[1] Twitter/X
[2] Instagram
[3] TikTok
[4] Facebook
[5] YouTube

6. Per-Platform Generation

For each selected platform, generate native content following the structures in [copy-formulas.md](copy-formulas.md) and best practices from the reference guide.

**Read the promo template** for the platform first (`templates/promo/{platform}.md` or existing `promo/{platform}.md`) to match the expected heading structure.

**Per-platform content to generate:**

Twitter/X (`twitter.md`)

  • Release announcement tweet (1-2 tweets or thread)
  • Per-track promo tweets (one per track — hook + concept + link placeholder)
  • Behind-the-scenes tweet (process/making-of angle)
  • Engagement tweet (question or poll)
  • Each tweet: show character count, verify under
Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withbitwize-music

I love music but never learned an instrument. AI became the creative outlet that was always out of reach. This project started as a way to go deep on Claude Code plugin architecture, agentic workflows, multi-model orchestration, and MCP tooling.

Get the whole plugin, auto-invoked
Stats
399
Stars
0
Views
93
Forks
Active
Maintenance
Python
Language
CC0-1.0
License
3d ago
Last commit
6mo ago
Created

Repo: bitwize-music-studio/claude-ai-music-skills