Promo Writer logo

Promo Writer

Organization
bitwize-music-studio
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.

Overview

Publisherbitwize-music-studio
Repositoryclaude-ai-music-skills
Skill namepromo-writer
Stars
546
Forks
130
Bundled files
1
LicenseCC0-1.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by bitwize-music-studio on GitHub. Read the source before you install it.

Installation

Install the Promo Writer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bitwize-music-studio/claude-ai-music-skills/tree/main/skills/promo-writer
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bitwize-music-studio/claude-ai-music-skills.git /tmp/claude-ai-music-skills
mkdir -p .claude/skills
cp -r /tmp/claude-ai-music-skills/skills/promo-writer .claude/skills/promo-writer
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Promo Writer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Promo Writer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Promo Writer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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


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:

SectionWhat to Write
Campaign OverviewAlbum name, release date (or TBD), primary platform, campaign duration
Key Messages3 core messages derived from album themes — the "why should anyone care"
Target Audience2-3 audience segments based on genre and themes
SchedulePre-release, release week, post-release calendar with specific content types
HashtagsPrimary (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):

markdown
## 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 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 280
  • 1-2 hashtags per tweet, never starting with a hashtag
Instagram (instagram.md)
  • Release announcement caption (hook in first 125 chars)
  • 2-3 track highlight captions (story angle, personal)
  • Behind-the-scenes caption
  • Hashtag block (15-20 tags, separated from caption)
  • Show character count for each caption
TikTok (tiktok.md)
  • Release announcement caption (under 150 chars)
  • Per-track captions (short, casual, under 150 chars)
  • Behind-the-scenes caption
  • 3-5 hashtags per post
  • Note: video content does the heavy lifting — captions are secondary
Facebook (facebook.md)
  • Release announcement (longer storytelling format, 150-300 words)
  • Track highlight posts (2-3, with personal angle)
  • Behind-the-scenes story post
  • 3-5 hashtags per post, at end
YouTube (youtube.md)
  • Album/track description template (hook in first 2-3 lines)
  • Credits section
  • Social links section
  • 3-5 hashtags

7. Present for Approval

Present each platform's generated copy with metrics:

## Twitter/X — Generated Copy

### Release Announcement
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[Generated tweet text]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chars: 187/280 | Hashtags: 2 | Status: Within limits
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

### Track 01: [Track Name]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[Generated tweet text]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chars: 214/280 | Hashtags: 2 | Status: Within limits
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[... more posts ...]

Actions:
  [A] Approve all — write to promo/twitter.md
  [R] Revise specific posts — tell me which ones and what to change
  [N] Next platform — skip this platform

8. Write Approved Copy

Write approved copy to the promo/ directory in the album path:

{content_root}/artists/{artist}/albums/{genre}/{album}/promo/

Match the file structure expected by promo-reviewer:

  • Use ## and ### headings to delineate sections
  • Put post copy inside ``` code blocks
  • Include any platform-specific metadata (character counts not written to file)

If promo/ directory doesn't exist, create it. If files already exist, ask before overwriting:

promo/twitter.md already has content. Overwrite? [Y/n]

9. Summary and Next Steps

After all platforms are written:

## Promo Copy Generated

| Platform | Posts | Status |
|----------|-------|--------|
| Campaign | 1 | Written |
| Twitter  | 8 | Written |
| Instagram | 5 | Written |
| TikTok | 6 | Written |
| Facebook | 4 | Written |
| YouTube | 1 | Written |

Files written to: {album_path}/promo/

Next steps:
  1. Review and polish: /bitwize-music:promo-reviewer <album-name>
  2. Replace [Streaming Link] placeholders with actual URLs when available
  3. When ready to release: /bitwize-music:release-director <album-name>

Content Rules

Streaming Lyrics Only

Pull quotable hooks from streaming lyrics sections. Never use Suno lyrics — they contain phonetic spellings meant for the AI, not human readers.

Campaign First

Always generate campaign.md before platform copy. The strategy document establishes key messages, audience, and schedule that inform every platform's content.

Native Content

Each platform gets content shaped to its conventions:

  • Twitter: punchy, under 280 chars, 1-2 hashtags
  • Instagram: visual-first, hook in first 125 chars, hashtag block
  • TikTok: ultra-casual, under 150 chars, video does the work
  • Facebook: storytelling, longer form, community-building
  • YouTube: informative, structured, SEO-aware

Never write the same text for multiple platforms.

Match Promo-Reviewer Structure

The promo-reviewer skill expects specific file structure:

  • ## headings for major sections
  • ### headings for individual posts
  • Post copy inside ``` code blocks
  • This structure enables section-by-section review

Hashtag Rules

Follow the researched best practices:

  • Twitter: 1-2 per tweet, never start with hashtag, rotate sets
  • Instagram: 15-20 per post, separate block, mix volume levels
  • TikTok: 3-5 per post, include trending if applicable
  • Facebook: 3-5, at end, for categorization
  • YouTube: 3-5, first 3 shown above title
  • Never use: #MusicPromotion, #SoundCloudPromotion, #FollowBack, #Like4Like

Language Handling

  • Write all copy in the language(s) selected in Step 4
  • Bilingual mode: Primary language first, --- divider, secondary language second — both in the same code block
  • Twitter exception: Bilingual mode uses separate tweets per language (one tweet per language, or thread), NOT stacked in one tweet — 280 chars is too tight for two languages
  • Hashtags: Always in English for international discovery, regardless of copy language
  • Quoted lyrics: Keep in original language with a brief translation in parentheses if the copy language differs
  • Platform notes (Notes section at bottom of each file): Always in English for consistency

Override Respect

If promotion-preferences.md override exists:

  • Follow tone and voice preferences
  • Respect platform skip list
  • Apply messaging theme preferences (always/never mention)
  • Use hashtag preferences (always include, avoid list)
  • Follow AI positioning guidance
  • Follow language preferences (primary, secondary, mode)

Remember

  1. Read copy-formulas.md at invocation — it has the hook formulas and post structures
  2. Streaming lyrics only — never Suno phonetic lyrics in public copy
  3. Campaign.md first — strategy before platform copy
  4. Language before platforms — determine output language(s) before generating any copy
  5. Present before writing — show generated copy with metrics for approval
  6. Native per platform — different tone, length, structure for each
  7. Match promo-reviewer format — headings + code blocks for section-by-section review
  8. Check override — load promotion-preferences.md for tone, platforms, messaging, language
  9. Suggest promo-reviewer next — always end with the recommendation to review
  10. Placeholder links — use [Streaming Link] where real URLs will go
  11. Preserve album voice — the copy should feel consistent with the album's themes and tone
  12. Hashtags in English — always English hashtags for discovery, even when copy is in another language

Your deliverable: Populated promo/ directory with platform-specific copy ready for review.

Workflow integration: You fill the gap between content completion and promo-reviewer — generating what was previously a manual creative step.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Promo Writer AI skill do?

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

Why use Promo Writer on TypingMind?

Because you install it once and use it with any model. Promo Writer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Promo Writer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bitwize-music-studio/claude-ai-music-skills/tree/main/skills/promo-writer. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Promo Writer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Promo Writer?

As many as you like. As long as a model supports skills, you can use Promo Writer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Promo Writer AI skill free?

Yes. It is published on GitHub by bitwize-music-studio under the CC0-1.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇