promote-idea
Converts an album idea from IDEAS.md into an actual album project in one step. Use when the user says "promote [idea title]", "turn idea into album", or "start working on [idea]".
What this skill does
## Your Task
**Input**: $ARGUMENTS
Convert a `Pending` idea from `IDEAS.md` into a full album project in one
call. Replaces the manual 3-step workflow (`get_ideas` → `new-album` →
`update_idea`) with a single entry point.
---
# Promote Idea Skill
## Step 1: Parse Arguments
Expected formats:
- `"<idea title>"` — auto-derive slug from the title
- `"<idea title>" <album-slug>` — override the auto-derived slug
- `"<idea title>" documentary` — standard slug, documentary flag on
- `"<idea title>" <album-slug> documentary` — explicit slug + documentary
Examples:
- `"Kleine Welt"` → slug auto-derived to `kleine-welt`
- `"The Great Molasses Flood" molasses-flood documentary`
- `"Ängstliche Kätzchen"` → slug `angstliche-katzchen` (diacritics stripped)
**If no arguments are supplied, or the title is empty**, list the available
pending ideas first and ask which one to promote:
```
Which idea should I promote?
Pending ideas:
1. Kleine Welt (electronic, Thematic)
2. The Great Molasses Flood (folk, Documentary)
3. Linux Kernel Wars (electronic, Character Study)
Reply with the exact title.
```
Use `get_ideas(status_filter="Pending")` to fetch the list.
## Step 2: Confirm the Derived Slug
Call `get_ideas(status_filter="Pending")` (or `search(query=idea_title, scope="ideas")`)
to confirm the idea exists and show the user what's about to happen.
Compute the slug locally for display only (lowercase, strip diacritics,
non-alphanumeric → hyphen). If the result looks odd, offer to override:
```
About to promote:
Idea: Kleine Welt
Slug: kleine-welt
Genre: electronic
Type: Thematic
Proceed? (Or supply a different slug.)
```
Skip the confirmation step if the user has already provided an explicit slug
— that's the signal they've already thought about it.
## Step 3: Ask About Documentary Flag (if not already supplied)
The `documentary` flag decides whether `RESEARCH.md` and `SOURCES.md` are
created. This is **not** derivable from idea metadata — the idea's "Type"
field can say "Documentary" but that's a separate concept (narrative shape).
Ask once:
> Is this a documentary/true-story album? (Adds research + sources
> templates. Answer 'yes' for real-world events, 'no' for fiction.)
Skip this step if `documentary` is already in the arguments.
## Step 4: Promote via MCP
Call `promote_idea(idea_title, album_slug=<slug or "">, documentary=<bool>)`.
The tool performs all of:
1. Find the idea in state (error if missing or already promoted)
2. Create the album directory via `create_album_structure`
3. Inject the idea's concept into the new `README.md` under a `## Concept`
section
4. Advance idea status `Pending` → `In Progress`
5. Add `**Promoted To**: <slug>` back-link to the idea in `IDEAS.md`
The tool returns `{promoted: true, slug, album_path, files, ...}` on
success or `{error: ...}` on failure.
## Step 5: Confirm and Suggest Next Step
On success, report:
```
Promoted "Kleine Welt" → album "kleine-welt"
Location: ~/bitwize-music/artists/bitwize/albums/electronic/kleine-welt/
Files: README.md, tracks/
Concept block injected into README.md from idea.
Idea status: Pending → In Progress
Next step:
/bitwize-music:album-conceptualizer
This walks through the 7 Planning Phases (Vision, Identity, Sonic
Direction, Structure, Tracks, Content, Approval) to develop the concept
you just carried over into the album.
```
For documentary albums, add:
```
Research files also created: RESEARCH.md, SOURCES.md
Don't forget human source verification before generation.
```
---
## Error Handling
**Idea not found:**
```
Error: Idea "Nonexistent" not found in IDEAS.md.
Check available ideas: /bitwize-music:album-ideas list
```
**Idea already promoted:**
```
Error: Idea "Already Active" is already promoted (status: In Progress).
If you want to rename or re-scaffold, use /bitwize-music:rename on the
existing album instead.
```
**Idea has no genre:**
```
Error: Idea "No Genre" has no **Genre** field in IDEAS.md.
Set the genre first: /bitwize-music:album-ideas edit "No Genre"
```
**Invalid genre:**
```
Error: Invalid genre "xyz" on idea. Not in genres/.
Fix the genre in IDEAS.md, then retry.
```
**Duplicate album slug:**
```
Error: Album "kleine-welt" already exists.
Options:
1. Supply a different slug: /bitwize-music:promote-idea "Kleine Welt" kleine-welt-2
2. Resume the existing album: /bitwize-music:resume kleine-welt
```
---
## Examples
### Simple title
```
/bitwize-music:promote-idea "Kleine Welt"
```
Auto-derives slug `kleine-welt`, asks about documentary flag, calls
`promote_idea`, reports outcome.
### Explicit slug override
```
/bitwize-music:promote-idea "The Great Molasses Flood" molasses-1919
```
Uses `molasses-1919` instead of the auto-derived `the-great-molasses-flood`.
### Documentary album
```
/bitwize-music:promote-idea "The Great Molasses Flood" documentary
```
Creates `RESEARCH.md` and `SOURCES.md` in addition to the standard README
and tracks directory.
---
## Why a Dedicated Skill
The manual workflow required three steps in sequence:
1. `get_ideas` to find the idea's genre
2. `/bitwize-music:new-album <slug> <genre>` with a slug the user invented
3. `update_idea("<title>", "status", "In Progress")`
Problems this skill solves:
- **Concept transfer** — The idea's concept text is now merged into the new
album README automatically (manual copy/paste used to be skipped often).
- **Status discipline** — Ideas no longer linger as `Pending` after being
worked on; the transition is automatic and bidirectional (`Promoted To`
back-link).
- **Slug derivation** — No more re-inventing the slug; diacritics and
punctuation are normalized consistently.
- **Single entry point** — Newcomers learn one command instead of three.
---
## Remember
1. **Pending-only** — Only `Pending` ideas can be promoted. `In Progress`
and `Complete` ideas return an error.
2. **One-way operation** — Promotion creates files and updates state. There
is no "unpromote"; use `/bitwize-music:rename` or manual cleanup if you
need to redo.
3. **Concept is preserved** — The idea's concept survives in two places
after promotion: the idea's entry in `IDEAS.md` (historical record) and
the new album's `README.md` (working document).
4. **Next step is always album-conceptualizer** — Promotion only scaffolds;
the actual planning happens in the 7 Planning Phases.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.