> Write short-form video scripts for TikTok, Instagram Reels, and YouTube Shorts that promote affiliate products with strong hooks, demos, and CTAs. Use this skill when the user asks about TikTok scripts, Reels scripts, Shorts scripts, short-form video for affiliate marketing, or says "write a TikTok for X", "script a Reel promoting X", "YouTube Shorts script affiliate", "60-second video script", "hook for TikTok affiliate", "write a video promoting X", "TikTok script that converts", "short video script for product review", "viral TikTok affiliate script", "how to promote X on TikTok".
npx skills add https://github.com/Affitor/affiliate-skills --skill tiktok-script-writer
Write punchy 30-60 second video scripts for TikTok, Instagram Reels, and YouTube
Shorts that stop the scroll, demo the product naturally, and drive affiliate link
clicks. Every script is structured for vertical video: hook → problem → demo →
result → CTA.
This skill belongs to Stage S2: Content
{
product: {
name: string # (required) "HeyGen"
description: string # (optional) What it does — will be researched if missing
url: string # (optional) Affiliate link or product URL
reward_value: string # (optional) Commission info — never shown in script
}
duration: number # (optional, default: 45) Target duration in seconds: 15 | 30 | 45 | 60
platform: string # (optional, default: "tiktok") "tiktok" | "reels" | "shorts" | "all"
hook_style: string # (optional, default: auto) "question" | "shock" | "relatable" | "bold_claim" | "demo_first"
creator_persona: string # (optional) "beginner marketer" | "tech reviewer" | "productivity nerd"
has_product_access: boolean # (optional, default: true) Can creator do live demo?
personal_experience: string # (optional) Real experience to weave in
audience: string # (optional) "freelancers" | "small business owners" | "students"
}
If product details are sparse, use web_search "[product name] what it does tutorial" to find:
Concrete specifics > vague claims. "Creates a 2-minute video in 30 seconds" beats
"saves time on video creation".
Before selecting hook style, see what's actually winning in this niche on TikTok:
If trending-content-scout ran earlier:
top_contentengagement_benchmark to set a target engagement scorecontent-angle-ranker provided a recommended_angle → use itIf no scout data (quick mode):
web_search "[product name] tiktok" → find top TikTok videosweb_search "best [niche] tiktok viral" → find format patternsweb_search "[product name] tiktok review" → see existing contentApply findings to script:
engagement_benchmark.median_views is known → aim to beat it with better hook + formatThis step takes <2 minutes but can 3x the script's potential by building on
proven patterns instead of guessing.
Short-form video is won or lost in seconds 1-3. Pick the hook based on the product's
strongest angle:
| Hook Style | Template | Best For |
|------------|----------|----------|
| Question | "What if you could [result] without [pain]?" | Products that remove a hard task |
| Shock/Stat | "I replaced [expensive thing] with a $[price]/mo tool" | Cost/efficiency wins |
| Relatable | "[Frustrating situation]? Same. Then I found this." | Niche audience pain |
| Bold Claim | "This [tool] is the reason I [impressive result]" | Strong ROI proof |
| Demo First | [Open with screen recording of the coolest feature immediately] | Visual/AI tools |
| Story Opener | "6 months ago I was [before state]. Now [after state]. Here's why." | Transformation |
For AI tools and visual products → Demo First almost always wins on TikTok.
For SaaS productivity tools → Relatable or Shock/Stat hooks work well.
Every script follows this structure (adapt timing to duration):
For 45-second scripts:
For 30-second scripts:
For 60-second scripts:
Format scripts with:
Writing rules:
Per shared/references/ftc-compliance.md for short-form video:
Include brief notes for the creator:
Before presenting output, verify:
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
{
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
scripts: [
{
platform: string # "tiktok" | "reels" | "shorts"
duration_seconds: number # 45
hook_style: string # "demo_first"
scenes: [
{
timecode: string # "0-3s"
visual: string
spoken: string
text_overlay: string
}
]
caption: string # Full TikTok caption
hashtags: string[] # Suggested hashtags
disclosure: string # How and when FTC disclosure appears
}
]
product_name: string
content_angle: string
hook_used: string
}
## TikTok Script: [Product Name] ([Duration]s)
**Hook Style:** [Style name]
**Platform:** [TikTok / Reels / Shorts]
**Target Audience:** [Who this is for]
---
### Script
| Time | Visual | Spoken | Text Overlay |
|------|--------|--------|-------------|
| 0-3s | [What's on screen] | "[Hook line]" | [On-screen text] |
| 3-8s | [Visual] | "[Spoken]" | [Overlay] |
| ... | ... | ... | ... |
---
### Caption
[Full caption text — optimized for TikTok SEO]
**Hashtags:** #[tag1] #[tag2] #[tag3] (5-8 tags max)
---
### Production Notes
- **Film:** [Camera vs screen recording breakdown]
- **Music:** [BPM and mood suggestion]
- **Best time to post:** [Platform-specific optimal time]
- **Disclosure:** #ad text overlay appears at [timecode] for [X] seconds
---
### Hook Alternatives
Want a different opening? Try:
- **[Hook Style 2]:** "[Alternative opening line]"
- **[Hook Style 3]:** "[Alternative opening line]"
recommended_program from context.
creator's face on screen reacting to the tool, narrating the discovery.
"My friend showed me this tool and I had to share it"
If 30s still feels crowded, suggest two separate videos (problem setup + solution).
with minor caption/hashtag adjustments.
Example 1:
User: "Write a 45-second TikTok script for HeyGen"
→ Research: HeyGen creates AI avatar videos, talking head from text
→ Hook: Demo first — open with a finished AI video playing
→ Script: [0-3s] Show output video → [3-8s] "Made this in 2 minutes, no camera" →
[8-30s] Screen record: paste script → avatar speaks → [30-38s] "Used this for
my client, saved 4 hours" → [38-44s] "Link in bio, 30-day free trial" → [44-45s] "#ad overlay"
Example 2:
User: "TikTok script for Notion affiliate, targeting students"
→ Hook: Relatable — "POV: it's 2am before finals and your notes are chaos"
→ Demo: Notion AI organizing scattered notes into a study guide
→ CTA: "Free forever plan — link in bio"
→ Caption: "study with me + notion hacks" for algorithm reach
Example 3:
User: "I need 3 different hooks for a ConvertKit TikTok script"
→ Write hook-only variants: Question / Shock / Bold Claim
→ Full script for the strongest one, alternative openings for others
→ Note which hook style historically performs best for SaaS on TikTok
shared/references/ftc-compliance.md — disclosure rules for short-form videoshared/references/affiliate-glossary.md — reward_type and program terminologyshared/references/platform-rules.md — TikTok/Reels/Shorts format specsshared/references/flywheel-connections.md — master flywheel connection mapbio-link-deployer)After 5 videos, check: which hook style got the highest completion rate? Which video drove the most bio link clicks? Use that hook style for your next 5 videos.
> Next step — copy-paste this prompt:
> "Schedule my TikTok content for the next 30 days" → runs social-media-scheduler
social-media-scheduler (S5) — scripts ready to schedule for filming/postingcontent-pillar-atomizer (S2) — successful scripts become content to atomize furthertrending-content-scout (S1) — top TikTok content + engagement data + winning hookscontent-angle-ranker (S1) — recommended angle with format, hook, and parametersaffiliate-program-search (S1) — recommended_program product datapurple-cow-audit (S1) — remarkable angles for script hookscontent-pillar-atomizer (S2) — atomized TikTok scripts from pillar contentBefore delivering output, verify:
Any NO → rewrite before delivering.
When mode: "volume":
volume_output:
variants:
- id: string
content: string
angle: string
chain_metadata:
skill_slug: "tiktok-script-writer"
stage: "content"
timestamp: string
suggested_next:
- "social-media-scheduler"
- "content-pillar-atomizer"
Create AI marketing videos for ads, promos, product launches, and brand content. Models: Veo, Seedance, Wan, FLUX for visuals, Kokoro for voiceover. Types: product demos, testimonials, explainers, social ads, brand videos. Use for: Facebook ads, YouTube ads, product launches, brand awareness. Triggers: marketing video, ad video, promo video, commercial, brand video, product video, explainer video, ad creative, video ad, facebook ad video, youtube ad, instagram ad, tiktok ad, promotional video, launch video
App Store and Google Play screenshot creation with exact platform specs. Covers iOS/Android dimensions, gallery ordering, device mockups, and preview videos. Use for: app store optimization, ASO, app screenshots, app preview, play store listing. Triggers: app store screenshots, aso, app store optimization, play store screenshots, app preview, app listing, ios screenshots, android screenshots, app store images, app mockup, device mockup, app gallery, store listing
Generate images using Nano Banana Pro (Gemini 3 Pro Preview). Use when creating app icons, logos, UI graphics, marketing banners, social media images, illustrations, diagrams, or any visual assets. Supports reference images for style transfer and character consistency. Triggers include phrases like 'generate an image', 'create a graphic', 'make an icon', 'design a logo', 'create a banner', 'same style as', 'keep the style', or any request needing visual content.
Generate and save images using Pollinations.ai's free, open-source API. No signup required. Supports URL-based generation, custom parameters (width, height, model, seed), and automatic file saving. Perfect for quick prototypes, marketing assets, and creative workflows.
| Create AI marketing videos for ads, promos, product launches, and brand content. product video, explainer video, ad creative, video ad, facebook ad video, youtube ad, instagram ad, tiktok ad, promotional video, launch video
Use when building App Store screenshot pages, generating exportable marketing screenshots for iOS apps, or creating programmatic screenshot generators with Next.js. Triggers on app store, screenshots, marketing assets, html-to-image, phone mockup.
Anti-AI-slop design skill for greenfield pages, audits, redesigns, and design extraction from URLs or screenshots. Use when the user asks to build a new app or landing page, wants to redesign something, invokes Hallmark by name, or uses audit/redesign/study.
Launch and supervise OpenShell gator agents. Use when starting gator on issues or PRs, checking gator sandboxes, building the gator sandbox image, restarting stuck gators, inspecting gator logs, or experimenting with gator harness/model overrides. Trigger keywords - launch gator, start gator, run gator, gator sandbox, supervised gator, gator logs, restart gator.
Take affitor/tiktok-script-writer from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.