One YouTube video in → a blog post, a Twitter thread, two LinkedIn posts, a Skool guide, and 3–5 short-form clips out — all in your voice, all grounded in your channel's real performance data.
This is a Claude Code plugin. It bundles seven skills into a single, ordered workflow: you onboard once, then run the system before and after every video you publish. Instead of a generic "write me a tweet" prompt, every asset is generated through your Voice DNA and benchmarked against your top-performing titles.
The running example in this README uses the channel @SaminYasar_ — Claude Code tutorials for stock-trading automation. Swap in your own handle during onboarding and everything below works the same.
┌─────────────┐
│ /onboard │ ← run once: channel + Voice DNA + keys
└──────┬──────┘
│
BEFORE you film ────────┼──────── AFTER you publish
│
/ideation → /yt-titles │ /content-cascade → blog + Twitter + LinkedIn (+guide)
↓ ↓ │ ↓
/hooks → /outlines │ /short-form → 3–5 Reels / Shorts / TikTok clips
│ │
└──── film the video ────┘
You publish one video. The system turns it into a week of content across six channels.
In Claude Code:
/plugin marketplace add Samin12/ContentRepurposeSystem
/plugin install content-repurpose-system
Restart Claude Code so the skills load, then run /onboard.
git clone https://github.com/Samin12/ContentRepurposeSystem.git
cd ContentRepurposeSystem
cp -R skills/* ~/.claude/skills/ # note: no trailing slash on skills/*Restart Claude Code, then run /onboard.
| Tool | Why | Install |
|---|---|---|
| yt-dlp | reads your upload history + "latest video" | pip install yt-dlp |
| Node.js | transcript fetching + thread posting | nodejs.org |
| Python 3 | channel performance script | usually preinstalled |
youtube-transcript (optional) |
free transcript fallback | npm install youtube-transcript |
The /onboard skill checks all of these for you and prints the exact install command for anything missing.
Here's exactly what a session looks like, from zero to a full content drop, using @SaminYasar_ as the example.
You: /onboard
Claude walks you through three things:
1. Connect your channel.
Claude: What's your YouTube channel handle or URL?
You: @SaminYasar_
Claude: Connected to @SaminYasar_. I can now read your upload history
and pull your latest video automatically.
This writes your channel into the performance script and resolves your canonical channel ID, so later skills can find your real videos.
2. Capture your Voice DNA. Claude asks ~3 questions and folds the answers into every content prompt:
Claude: In one or two sentences, how would you describe your voice?
You: Warm and confident, analogy-first (poker, thermostats, car
insurance), I always back claims with real numbers, and I close
with a soft "come build with us in the Claude Club."
Claude: Who's your audience and what do you teach them?
You: Non-coders learning to build and automate with Claude — right now,
stock-trading automation.
From now on, your blog/Twitter/LinkedIn output sounds like you, not like a template.
3. Optional keys. Apify (reliable transcripts), Supabase (auto-save drafts), Twitter (auto-post). All skippable — say "skip" and add them later.
At the end, onboarding prints your workflow map and a suggested first command. You only do this once per channel.
You: /ideation Claude Code for stock trading
You get 7–10 positioned ideas, each mapped to a core desire, scored for "shock," and checked against competitive gaps. The Tier 1 picks look like:
## I Let Claude Code Copy Every Trade a Senator Makes
- Angle: Turn public Capitol Trades disclosures into an automated
paper-trading bot — nobody has shown the full build.
- Core Desire: Money → Proxy: "trade like someone with inside access,
legally, on autopilot"
- Shock Score: 86/100
- Format: Case Study (build + result reveal)
- Competitive Gap: Plenty of "politicians beat the market" explainers,
zero end-to-end "here's the bot" tutorials.
- Why Now: Capitol Trades API is free + congressional trading is
trending after the latest disclosure cycle.
Pick one and carry it into the next steps.
You: /yt-titles a video where I build a bot that copies senator stock trades
This is the skill that makes the system yours: Step 1 pulls your actual top performers (via channel_performance.py), finds the title patterns your audience already rewards, then generates titles in that pattern. Output:
## Your Top Performers (last 3 months)
Your "I Let Claude…" + concrete-outcome format outperforms your how-to titles
~3x on views/day. Numbers and a clear result are doing the work.
## Title Options
### Tier 1 — High Confidence
1. I Built a Bot That Copies Senator Stock Trades (Claude Code)
Based on your "I Built…" pattern — proven, names the tool, concrete.
2. Claude Code vs. Congress: I Copied Their Trades for 30 Days
Your contrarian + timeframe pattern; "vs." adds tension.
### Tier 3 — Swing for the Fences
8. I Gave Claude My Brokerage Account. Here's What Happened.
Pattern-break curiosity gap — higher risk, higher ceiling.
## Thumbnail Text Options
For "I Built a Bot That Copies Senator Stock Trades":
1. "LEGAL?" — tension against the title's premise
2. "+18% / MO" — concrete proof the title withholds
You: /hooks I Built a Bot That Copies Senator Stock Trades with Claude Code
Uses the Kallaway desire-based framework to produce three fully-aligned hooks (visual + spoken + on-screen text), each scored against the Four Commandments:
### Hook 1 — Case Study + "About Me"
Spoken: "I gave Claude Code a list of every stock a senator bought
last quarter — and let it trade them for me."
Visual: Screen recording: Capitol Trades feed → Claude Code running →
Alpaca paper account ticking up
Text overlay: "COPYING CONGRESS"
Power Words: Subject ✓ Action ✓ Objective ✓ Contrast ✓ Time ✓ (5/6)
Commandments: Alignment ✓ Speed ✓ Clarity ✓ Curiosity ✓ (4/4)
You: /outlines the senator-copy-trading bot video, ~14 minutes
You get a full outline in recording format: hook, structured body sections with talking points, visual-aid callouts, demo beats, source citations, per-section time budgets, and a production-notes block (competitive landscape, title ideas, thumbnail moments, honest limitations). You sit down and film straight from it.
## Hook (~60s) [the aligned hook from Step 4]
## Section 1 — The Setup (~2.5 min)
Core idea: Congressional trades are public — and weirdly good.
Talking points: • Capitol Trades is free • the disclosure lag
Visual aid: → screen recording of the Capitol Trades feed
Source: capitoltrades.com
## Section 2 — Wiring Claude Code to Alpaca (~5 min) [demo-heavy]
...
## Production Notes → 3 competitor titles, 3 thumbnail moments, limitations
→ Now you film and upload the video. YouTube takes 30–60 min to generate captions; once they're live, continue.
You: /content-cascade latest
Claude auto-detects your latest upload, fetches the transcript, classifies the video (tutorial vs. discussion), and generates — in your voice:
- A 1,500–2,500 word blog post with SEO metadata (title, description, slug, keywords, tags, cover image)
- A Twitter/X thread built around the single best angle
- A LinkedIn post mirroring the video's premise
- Because this one is a tutorial, it also generates a LinkedIn lead-magnet post + a Skool-ready HTML guide
Each piece is shown to you for review before saving. With keys configured it can auto-save drafts to Supabase and auto-post the thread; without them, everything saves as local markdown under content/.
You: /short-form latest
Scans the transcript for the 3–5 most clip-worthy moments (self-contained insight, shock value, emotional peak, demo reveal) and for each one gives you timestamps, a scroll-stopping hook, a ready-to-paste caption, and hashtags — ranked by best for reach / conversions / engagement.
### Clip 1: "Is this legal?" — Best for reach
Timestamps: 02:14 → 03:01 (~47s)
Hook: Text "IS THIS LEGAL?" | Spoken "Yes, copying a senator's
stock trades is completely legal — here's the catch."
Caption: Congress has to disclose their trades. So I had Claude trade
them for me 👀 Full build on the channel.
Hashtags: #claudecode #ai #stocktrading #investing #fintech
After one filmed video and two commands, your content/ folder (or Supabase drafts) holds:
| Asset | From | Ready for |
|---|---|---|
| 📝 Blog post (SEO-optimized) | content-cascade |
your website / newsletter |
| 🐦 Twitter/X thread | content-cascade |
X (optionally auto-posted) |
| 💼 LinkedIn post | content-cascade |
|
| 🧲 LinkedIn lead-magnet post | content-cascade (tutorials) |
LinkedIn → email capture |
| 📚 Skool guide (HTML) | content-cascade (tutorials) |
your Skool / Claude Club |
| 🎬 3–5 short-form clips | short-form |
Reels, Shorts, TikTok |
Plus, from the pre-production side: a ranked idea, a tested title + thumbnail text, an aligned hook, and a filmable outline — so the next video is faster than the last.
| Order | Skill | Command | What it does |
|---|---|---|---|
| 0 | onboard | /onboard |
One-time setup: channel, Voice DNA, optional keys |
| 1 | ideation | /ideation <topic> |
Positioned video ideas with gaps, desire mapping, shock scores |
| 2 | yt-titles | /yt-titles <idea> |
Titles ranked against your top performers + thumbnail text |
| 3 | hooks | /hooks <title> |
Kallaway-framework hooks (visual + spoken + text), scored |
| 4 | outlines | /outlines <idea> |
Recording-ready outline with time budgets + production notes |
| 5 | content-cascade | /content-cascade <url|latest> |
Blog + Twitter + LinkedIn (+ lead magnet + guide) |
| 6 | short-form | /short-form <url|latest> |
3–5 clips with hooks, captions, hashtags, timestamps |
Each skill also activates from natural language — you don't have to use the slash command. "Give me title ideas for…" triggers yt-titles; "make shorts from my latest video" triggers short-form.
Everything optional lives in skills/content-cascade/.env (copy from .env.example). /onboard can write it for you.
- Apify — most reliable transcript fetching, especially for videos uploaded in the last hour. Free tier.
- Supabase — auto-save blog posts and social drafts to a database instead of local files.
- Twitter/X — auto-post the generated thread.
Without any of these, the system still does the full pipeline — it just saves to local markdown and you copy-paste to publish.
Note on competitor scanning: the
ideation,outlines, andyt-titlesskills can optionally run a YouTube competitor scan via a separateyt-searchhelper that does not ship with this plugin. Those steps are clearly marked optional and degrade gracefully — every skill produces its full output without them. Your own channel performance data (used byyt-titles) is built in and works out of the box.
Do I have to run the skills in order?
No — each works standalone. The order is the recommended end-to-end flow. Already filmed? Jump straight to /content-cascade.
Does this post to my accounts? Only if you set up the Twitter keys and explicitly say to post. By default everything saves as a draft for your review.
"Captions aren't available yet." YouTube takes 30–60 minutes to generate captions after upload. Run the cascade again a bit later, or add an Apify token for more reliable fetching of fresh uploads.
How do I switch channels or refresh my voice?
Re-run /onboard — it updates the same config in place.
MIT © Samin Yasar — see LICENSE.