Skip to main content

yt-shorts

Generate a weekly short-form content package from yt-search research. Takes top-performing competitor videos, extracts the 5 best angles, and creates ready-to-film short scripts (YT Shorts, TikTok, Reels) plus 2 Instagram carousel outlines. Part of the weekly content pipeline — runs after /yt-search. Triggers on: create shorts, shorts for the week, short form content, weekly shorts, shorts package, make shorts from research, short-form scripts.

Source facts

Repository
tylerprogramming/claude-skills
Last source activity
August 9, 2026 at 15:56
Detected SKILL.md language
English
Stars
0
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
yt-shorts
description
Generate a weekly short-form content package from yt-search research. Takes top-performing competitor videos, extracts the 5 best angles, and creates ready-to-film short scripts (YT Shorts, TikTok, Reels) plus 2 Instagram carousel outlines. Part of the weekly content pipeline — runs after /yt-search. Triggers on: create shorts, shorts for the week, short form content, weekly shorts, shorts package, make shorts from research, short-form scripts.
Generate a weekly short-form content package from yt-search research at $ARGUMENTS. ## Workflow Context This skill is part of the **weekly content pipeline**: ``` /yt-search → /transcribe → /yt-package → /yt-seo ← long-form track ↓ /yt-shorts ← short-form track (this skill) ↓ /social-copy → /post ``` Run `/yt-shorts` after `/yt-search` to turn competitor research into 5 original short-form scripts + 2 Instagram carousel outlines for the week. ## Data Location All output goes to `~/content/youtube/shorts/YYYY-MM-DD/` (today's date). --- ## Flow ### Step 1: Find the Research Parse $ARGUMENTS: - **Report path** (`~/content/research/<file>.md` or `.json`): Use it directly - **--topic flag**: Glob `~/content/research/` for reports matching the topic - **No argument**: Glob `~/content/research/` and use the most recent report(s) Read all matching research files. If JSON files exist alongside the markdown reports, read both — the JSON has raw metadata useful for deeper analysis. If no research reports exist at all, tell the user: > "No yt-search reports found. Run `/yt-search <topic>` first to generate research." Also check `~/content/transcripts/` for any transcripts of top-performing videos from the research (filenames like `transcript_<video_id>.txt`). Read any that exist — they give deeper insight into what those videos actually say. --- ### Step 2: Analyze the Research From the yt-search reports, extract: - The **top 10 performing videos** (by view count) - For each: title, view count, channel, duration, and any observable content patterns - **What made these videos perform**: title patterns, content formats, specific angles or hooks - **Topics and angles** that consistently appear in high-performing content - **Gaps**: angles that are underrepresented despite audience interest If transcripts are available for any of these videos, read them and note: - The strongest hooks (first 30 seconds) - The most quotable or surprising moments - The structure / pacing they use --- ### Step 3: Identify 5 Short-Form Ideas Based on the research, identify **5 distinct short-form ideas**. Each should: - Be grounded in a **proven angle** from the top-performing competitor content - Be **original** — your take on the topic, not a clip of someone else's video - Be **self-contained** — makes sense in 60-90 seconds with no prior context - Cover **different angles** — don't make 5 versions of the same idea For each idea, note: - **Title/concept** — One-line description of the short - **Why it will work** — Which competitor video or pattern inspired this, and why it performs - **Format** — Talking head, screen recording, or mixed - **Core insight** — The one thing viewers will take away **Present these 5 ideas to the user** before generating full scripts. Ask: > "Here are 5 short-form ideas based on the research. Want to swap any out or adjust before I write the scripts?" Wait for confirmation or adjustments before proceeding. --- ### Step 4: Generate 5 Short-Form Scripts For each approved idea, write a full short-form package: #### Script Block ``` ## Short #[N]: [Title] **Format:** [Talking head / Screen recording / Mixed] **Target length:** 60-90 seconds --- ### Hook (first 3 seconds) [The exact opening line. Must stop the scroll immediately. No "hey guys", no intro.] ### Script [Full word-for-word script, written for spoken delivery. Short sentences. Punchy. 80-150 words. Natural pauses marked with — or ...] ### On-Screen Text - [Key phrase 1 — appears at hook] - [Key phrase 2 — mid-video emphasis] - [Key phrase 3 — closing punchline or CTA] ### CueCard (copy/paste into teleprompter) [Just the words you say on camera. No metadata, no [SHOW:] tags, no captions. Split into sections with ## headers so he can jump between them with arrow keys. Include a ## Outro section for the closing line/CTA.] ### Filming Checklist - [ ] [Setup note: e.g., "Screen recording ready", "Teleprompter loaded", "Good lighting"] - [ ] [Any props or tabs/apps to have open] - [ ] [Energy note: e.g., "High energy - lean forward at hook"] - [ ] [Estimated take time: ~X minutes] ``` Rules for scripts: - Hook must land in the **first 3 seconds** — no exceptions - Scripts: **80-150 words** (60-90 seconds when spoken) - Written for **spoken delivery** — short sentences, natural rhythm, not essay prose - Each short must be **self-contained** — no "as I mentioned", no series callbacks - End with a **micro-CTA or open loop**, not "like and subscribe" - Vary formats across the 5 shorts — mix talking head, screen recording, mixed --- ### Step 5: Generate Platform Captions After all 5 scripts, generate a `captions.md` file with platform-ready captions for each short: For each short (#1 through #5): ``` ## Short #[N] Captions ### YouTube Shorts [Hook line] [2-3 sentence body — expand on the insight] [CTA — "More AI tips below ↓"] #claudecode #claudeai #ai #claudecodetips #aiautomation ### TikTok [Punchy hook — often different from YT, more casual] [1-2 sentence body] [CTA] #claudecode #claudeai #ai #claudecodetips #aiautomation ### Instagram Reels [Same as TikTok caption or slight variation] #claudecode #claudeai #ai #claudecodetips #aiautomation ### X / Twitter [Punchy standalone insight — no hashtags, under 230 chars] [Platform-native tone: lowercase, direct, no fluff] [No CTA needed — the video is the hook] ### LinkedIn [Teach-don't-sell tone — 3-4 sentences, no hashtags, no bold, no markdown] [Expand on the practical takeaway] [End with a genuine observation, not a hard sell] ``` X rules: no hashtags, under 230 chars, lowercase and punchy, reads as a standalone insight even without watching the video. Reuses the same video URL already uploaded to Blotato for TikTok. --- ### Step 6: Generate 2 Instagram Carousel Outlines Instagram gets **2 carousel posts** instead of reels — these are static slide posts, no filming required. Pull the 2 best insights from the research that work well as a **visual walkthrough** (step-by-step, list, before/after, or comparison format). For each carousel: ``` ## Instagram Carousel #[N]: [Title] **Concept:** [One-line description] **Why this format:** [Why this works as slides vs. a video] --- **Slide 1 (Intro — dark background)** Headline: [Big bold hook, max 8 words] Subtext: [Optional 1-line context] **Slide 2** Headline: [Point 1 — short and punchy] Body: [1-2 supporting sentences] **Slide 3** [Continue pattern...] **Slide 4** [...] **Slide 5** [...] **Slide 6 (Closing)** Headline: [Takeaway or CTA] Body: [Optional — "Save this", "Follow for more"] --- **Caption:** [Hook line] [2-3 sentences expanding on the topic] Swipe to see all [X] tips → #claudecode #claudeai #ai #claudecodetips #aiautomation ``` Note in the output: use `/social-copy` to generate the actual Blotato carousel visuals from these outlines. --- ### Step 7: Save All Outputs Create `~/content/youtube/shorts/YYYY-MM-DD/` and save: | File | Contents | |------|----------| | `shorts.md` | All 5 short-form scripts with hooks, on-screen text, filming checklists | | `captions.md` | Platform captions for each short (YT Shorts, TikTok, Instagram Reels) | | `instagram-carousels.md` | 2 carousel outlines for `/social-copy` to render | | `filming-plan.md` | Quick-reference filming order for the day | #### `filming-plan.md` contents: A practical "film these in this order" guide for the day: ```markdown # Filming Plan — [Date] ## Setup Once - [ ] Clean desk / background - [ ] Good lighting (ring light on, window light if available) - [ ] Teleprompter app loaded with scripts - [ ] Screen recording software ready (if any shorts use screen recordings) ## Short #1: [Title] (~X min) - Format: [talking head / screen recording / mixed] - Key setup: [anything specific] - Estimated takes: 2-3 ## Short #2: [Title] (~X min) ... ## Estimated Total Filming Time: [X] minutes ## Tip: Film all talking-head shorts together, then screen recordings — one context switch is easier than five. ``` --- ### Step 8: Present Summary Show the user: 1. All 5 short titles with their hooks (preview) 2. The 2 carousel concepts 3. File paths for everything saved 4. The estimated total filming time from `filming-plan.md` Ask: **"Want to adjust any scripts, swap an idea, or generate the carousel visuals now with `/social-copy`?"** --- ## Rules - Ideas come from **research, not guessing** — every short should be traceable to a top-performing competitor video or pattern - Scripts must be **original** — your perspective on the topic, not rephrasing someone else's video - **Hook first, always** — no intros, no "hey guys", no warm-up - Scripts: **80-150 words max** — if it can't be said in 90 seconds, it's not a short - **Vary the 5 formats** — at least 2 talking head, 1 screen recording, 1 mixed - Instagram gets **2 carousels, not reels** — static slides are the format for Instagram - Save to `~/content/youtube/shorts/YYYY-MM-DD/` — always date-stamped - If a shorts folder already exists for today, ask before overwriting - Never auto-post — always show content and get confirmation first - The carousel outlines are for `/social-copy` to render — don't try to render them here
View on GitHub