Turn a raw idea, topic, or paragraph into 2-3 ready-to-shoot script variations in the creator's voice. Use when you have a specific topic you want to create content about.
Turn a raw idea into polished script variations in Niyi's voice.
cat voice/STYLE_GUIDE.md 2>/dev/null || echo "Voice pack not built yet. Run /build-voice-pack first."cat voice/HOOK_PATTERNS.md 2>/dev/null || echo "No hook patterns yet."cat voice/CTA_PATTERNS.md 2>/dev/null || echo "No CTA patterns yet."Parse whatever the user gave — a full rant, a one-liner, bullet points, a theme. Extract:
Run 2-3 web searches to gather:
Run: cd pipelines && python retrieve_similar.py "CORE TOPIC" -n 3
Read the output to see how Niyi has written about similar subjects before.
All variations use the same angle (the user's stance) but with different structures:
Variation 1: Rant/Story structure Hook → Personal take → Build the argument with facts → Reality check → CTA
Variation 2: List/Steps structure Hook → Numbered points (3-5) → Standout insight → CTA
Variation 3: Question/Answer structure Hook (posed as a question) → Explore the answer → What most people miss → CTA
For each variation, generate:
Preserve the user's exact phrasing. If they said something with energy, personality, or strong emotion — keep it word for word. Build the polished script AROUND their raw voice, don't replace it.
Voice matching checklist (apply to EVERY variation):
Structure rules by content type:
Create output directory if needed: mkdir -p outputs/custom
Save two files:
outputs/custom/YYYY-MM-DD_[slug].json — Full script data (see schema below)outputs/custom/YYYY-MM-DD_[slug].md — Human-readable markdownThe slug should be a short kebab-case version of the topic (e.g., chatgpt-atlas, vibe-coding-beginners).
Show all variations side by side. Note which phrases were preserved from the user's original input.
{
"generated_at": "ISO8601 timestamp",
"input": "the raw user input (full text)",
"topic": "extracted core topic",
"content_type": "OPINION|HOW_TO|ROUNDUP|NEWS",
"angle": "the detected angle/stance",
"preserved_phrases": ["phrase 1 kept verbatim", "phrase 2 kept verbatim"],
"research_summary": "key facts found during web search",
"variations": [
{
"id": 1,
"structure": "rant|list|question",
"hooks": ["hook 1", "hook 2", "hook 3"],
"script": "full 150-200 word script",
"caption": "social media caption with hashtags",
"comment_prompts": ["question 1", "question 2", "question 3"],
"sources": ["https://...", "https://..."]
}
]
}
# Custom Script: [Topic]
> Generated from: "[first 100 chars of input]..."
> Type: [OPINION] | Angle: [CONTRARIAN/FRUSTRATION/etc.]
> Preserved phrases: "[phrase 1]", "[phrase 2]"
## Research Summary
[Key facts, stats, and current status found during web search]
---
## Variation 1: Rant/Story
### Hooks
1. ...
2. ...
3. ...
### Script
[Full script]
### Caption
[Caption with hashtags]
### Comment Prompts
- ...
### Sources
- https://...
---
## Variation 2: List/Steps
[Same format]
---
## Variation 3: Question/Answer
[Same format]