mkt-ugc-scripts
Skill0 starsChanged 45 days agoMITView on GitHub
Write short-form UGC video scripts for talking-head and avatar delivery. Triggers on: "write a script", "UGC script", "video script for", "short form script", "TikTok script", "Reels script", "Shorts script", "script for a video about", "write me a hook", "batch scripts", "script ideas for", "what should I make a video about". Picks script format based on topic and platform, writes with timing cues and delivery notes, suggests on-screen text. Can use str-trending-research to find topic angles before scripting. Saves to projects/mkt-ugc-scripts/. Does NOT trigger for video generation (use viz-ugc-heygen), content repurposing (use mkt-content-repurposing), or ad copy (use mkt-copywriting).
In this repository96 other files it gives its agents.
- AGENTS.mdAGENTS.md
- team_context/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- fin-company-cfoSkill
- fin-invoice-reconciliationSkill
- fin-month-end-reportingSkill
- fin-personal-cfoSkill
- meta-find-skillsSkill
- meta-memory-recallSkill
- meta-memory-writeSkill
- meta-skill-creatorSkill
- meta-skillifySkill
- meta-synthesize-localsSkill
- meta-toolifySkill
- meta-wrap-upSkill
- mkt-ab-testingSkill
- mkt-ad-creativeSkill
- mkt-adsSkill
- mkt-asoSkill
- mkt-brand-voiceSkill
- mkt-churn-preventionSkill
- mkt-cold-emailSkill
- mkt-co-marketingSkill
- mkt-community-marketingSkill
- mkt-content-repurposingSkill
- mkt-copy-editingSkill
- mkt-copywritingSkill
- mkt-croSkill
- mkt-directory-submissionsSkill
- mkt-emailsSkill
- mkt-eventsSkill
- mkt-free-toolsSkill
- mkt-icpSkill
- mkt-influencer-marketingSkill
- mkt-jab-hookSkill
- mkt-launchSkill
- mkt-lead-magnetsSkill
- mkt-marketing-loopsSkill
- mkt-offersSkill
- mkt-onboardingSkill
- mkt-paywallsSkill
- mkt-popupsSkill
- mkt-positioningSkill
- mkt-programmatic-seoSkill
- mkt-prospectingSkill
- mkt-public-relationsSkill
- mkt-referralsSkill
- mkt-sales-enablementSkill
- mkt-schemaSkill
- mkt-signupSkill
- mkt-smsSkill
- mkt-socialSkill
- mkt-visual-identitySkill
- ops-analyticsSkill
- ops-attributionSkill
- ops-cronSkill
- ops-ingestSkill
- ops-loopifySkill
- ops-project-managementSkill
- ops-revopsSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 12 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Write scripts people actually want to watch.
- Very specific: line 52
Check brand_context/ and load per the table above.
- Very specific: line 62
Read context/learnings.md → ## mkt-ugc-scripts.
- Very specific: line 64
If voice profile is missing, work with a natural conversational tone and mention that /mkt-brand-voice would sharpen the scripts.
- Distinctive: line 72
Path B — Research-driven: If the user wants ideas, or says something like "what should I make a video about":
- Distinctive: line 74
Ask: "What's your niche or business area?
- Very specific: line 75
Run str-trending-research on their niche (or read a recent research brief if one exists in projects/str-trending-research/)
- Very specific: line 76
Read references/research-to-script.md for the methodology on turning research into script angles
- Distinctive: line 84
Ask (or infer from context):
- Very specific: line 106
Read references/script-frameworks.md for the chosen format's structure and references/hook-library.md for hook options.
- Distinctive: line 141
Keep each sentence short enough to say in one breath.
- Distinctive: line 142
Use contractions. "It's" not "it is".
- Distinctive: line 143
Write how people talk, not how they write.
- Distinctive: line 144
No parenthetical asides — AI voices struggle with them
- Very specific: line 147
Add <break time="1.2s"/> (1.2-1.5s) only where a dramatic beat needs it.
- Distinctive: line 153
If the user wants multiple scripts:
- Distinctive: line 154
Write 3-5 scripts per batch
- Very specific: line 161
Before saving, run all scripts through tool-humanizer in pipeline mode.
- Distinctive: line 198
After saving, show actual script excerpts — not just file paths.
- Distinctive: line 207
Ask: "How do these read? Anything feel off when you imagine saying it out loud?"
- Very specific: line 224
If the user flags an issue with the output, add a dated entry under ## Rules in this skill's SKILL.local.md (create it if missing) and log …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
UGC Script Writing
Write scripts people actually want to watch. Every script is built for someone talking to a camera — a real person or an avatar. The goal is a script that sounds natural when spoken aloud, holds attention through the first 3 seconds, and delivers one clear idea.
Outcome
Platform-ready scripts saved to projects/mkt-ugc-scripts/{YYYY-MM-DD}_{batch-name}/. Each script includes timing cues, delivery notes, on-screen text suggestions, and a hook designed for talking-head delivery.
Context Needs
| File | Load level | Why |
brand_context/voice-profile.md | full | Scripts match how the brand actually talks |
brand_context/positioning.md | angle only | The chosen angle shapes the script's argument |
brand_context/icp.md | language section | Words and phrases the audience uses |
brand_context/samples.md | tone refs | How conversational delivery should sound |
context/learnings.md | ## mkt-ugc-scripts section | What's worked, what hasn't |
Load what exists. Skip what doesn't. This skill works standalone.
Dependencies
| Skill | Required? | What it provides | Without it |
str-trending-research | Optional | Trending topics and angles from Reddit, X, and web | User provides their own topic — no research-driven suggestions |
tool-humanizer | Optional | AI pattern removal before saving | Scripts saved without humanizer pass |
Skill Relationships
- Upstream:
str-trending-research(topic angles),mkt-brand-voice(voice context),mkt-icp(audience language) - Downstream:
viz-ugc-heygen(takes finished scripts and generates avatar videos),mkt-content-repurposing(scripts can be atomized into text posts)
Step 1: Load Context
Check brand_context/ and load per the table above. Show a brief status:
Script context:
Voice Profile [loaded / not found]
Positioning [loaded / not found]
ICP [loaded / not found]
Learnings [N entries / none yet]Read context/learnings.md → ## mkt-ugc-scripts. Apply any previous corrections before writing.
If voice profile is missing, work with a natural conversational tone and mention that /mkt-brand-voice would sharpen the scripts.
Step 2: Topic Selection
Two paths:
Path A — User has a topic: They tell you what to script. Confirm the core message and move to Step 3.
Path B — Research-driven: If the user wants ideas, or says something like "what should I make a video about":
- Ask: "What's your niche or business area? I'll research what's trending."
- Run
str-trending-researchon their niche (or read a recent research brief if one exists inprojects/str-trending-research/) - Read
references/research-to-script.mdfor the methodology on turning research into script angles - Present 3-5 script-worthy angles with a one-line pitch for each
- User picks one (or combines)
Either path: confirm one core idea before writing. A script that tries to say two things says nothing.
Step 3: Pick Script Format + Platform
Ask (or infer from context):
- Platform target: TikTok, Instagram Reels, YouTube Shorts, or multi-platform
- Duration target: 15s, 30s, 45s, 60s, 90s max (default: 30s)
Then read references/script-frameworks.md and pick the format that fits the topic:
| Topic type | Best format |
| Teaching something | Quick Teach |
| Sharing an experience | Story Arc |
| Challenging a belief | Myth Bust / Hot Take |
| Showing results | Before/After |
| Reviewing something | "I Tried X" |
| Relating to audience | Day-in-My-Life / POV |
| Selling without selling | Problem-Agitate-Solve |
| Building trust | Testimonial / Social Proof |
Tell the user which format you're using and why. If they want a different one, switch.
Step 4: Write the Script
Read references/script-frameworks.md for the chosen format's structure and references/hook-library.md for hook options. Read assets/reference-script-openclaw-loop.md as an illustration of the personal-experience tone: specific details, natural flow, no listicle structure.
The script IS the spoken words. Nothing else. No timestamps like [0-3s], no stage directions like [lean in], no [ON SCREEN:] annotations. The output must be directly pasteable into HeyGen or readable as a teleprompter script. Follow the scripting conventions from viz-ugc-heygen/references/scripting-guide.md.
Script format:
PLATFORM: [TikTok / Reels / Shorts]
DURATION: [estimated seconds]
FORMAT: [framework name]
WORD COUNT: [number]
---
The exact spoken words go here. Every sentence is what the person says out loud.
Add a break tag only where a dramatic beat needs one.
Continue with the next section. No labels, no annotations, no brackets.
The CTA closes the script naturally.On-screen text suggestions go in a separate section AFTER the script body:
ON-SCREEN TEXT:
- [when]: [text overlay]
- [when]: [text overlay]This keeps the script clean and pasteable while still providing production notes.
Writing rules for spoken delivery:
- 150 words per minute at natural pace — use this to estimate duration
- Keep each sentence short enough to say in one breath; split stacked clauses, since TTS voices flatten them.
- Use contractions. "It's" not "it is". "Don't" not "do not".
- Write how people talk, not how they write. Read it aloud.
- No parenthetical asides — AI voices struggle with them
- Front-load the hook — the first sentence decides if they stay
- One idea per beat. Don't stack concepts.
- Add
<break time="1.2s"/>(1.2-1.5s) only where a dramatic beat needs it; most scripts need none.
Present the script to the user. This is a creative checkpoint — wait for their feedback before finalising.
Step 5: Batch Mode (If Asked)
If the user wants multiple scripts:
- Write 3-5 scripts per batch
- Vary the formats across the batch (don't write 5 quick teaches)
- Each script gets the same full treatment from Step 4
- Present all scripts together for review
Step 6: Humanizer Gate
Before saving, run all scripts through tool-humanizer in pipeline mode. Use deep mode if brand_context/voice-profile.md was loaded, standard otherwise. Only show the score summary if the delta exceeds 2 points.
Spoken scripts should score high naturally since they're already conversational — if the humanizer is changing a lot, the script probably needs a rewrite, not just pattern removal.
Step 7: Save Output
Save every script to disk.
Create folder: projects/mkt-ugc-scripts/{YYYY-MM-DD}_{batch-name}/
One file per script: {topic-slug}_{platform}.md
Each file contains:
- YAML frontmatter with metadata
- The script body (spoken words only)
- ON-SCREEN TEXT section after a
---divider
---
platform: tiktok
format: personal-experience
duration_estimate: 45s
word_count: 112
topic: "the core topic"
date: YYYY-MM-DD
---
The spoken script goes here exactly as written...
---
ON-SCREEN TEXT:
- Hook: text overlay
- Mid: text overlay
- Close: text overlayAfter saving, show actual script excerpts — not just file paths.
Suggest next steps:
- "Want to generate this as a video? I can send it to HeyGen." (→
viz-ugc-heygen) - "Want more scripts on related angles?"
- "Want to repurpose this script into text posts?" (→
mkt-content-repurposing)
Step 8: Collect Feedback
Ask: "How do these read? Anything feel off when you imagine saying it out loud?"
Log feedback to context/learnings.md → ## mkt-ugc-scripts with date and context.
Rules
- 2026-03-10: Maximum script duration is 90 seconds. Never write a script longer than 90s. Most scripts should land between 15-60s.
- 2026-03-10: End every script with a soft, conditional CTA pointing to the community community link in bio, phrased differently for each script in a batch (for example, "If you want the full breakdown, the free community link is in my bio").
- 2026-03-10: Scripts must be the exact spoken words only — no timestamps like [0-3s], no stage directions like [lean in], no [ON SCREEN:] inline. Output must be directly pasteable into HeyGen or usable as a teleprompter. Use SSML
<break time="Xs"/>for pauses only where a dramatic beat is needed — don't litter the script with them. Most scripts flow naturally without any. On-screen text suggestions go in a separate section after the script body. - 2026-03-10: Scripts must sound like personal experience, not teaching or selling. Write in first person about what YOU did, what YOU switched to, what problems YOU had. Name specific tools, specific frustrations, specific results. The audience learns by overhearing your experience, not by being lectured. "I will never use X again because..." beats "Stop using X. Here's why." No promotional language, no listicle energy, no "here are 3 tips" structure unless specifically asked for. The CTA should be soft and conditional: "If you want the full breakdown, link's in my bio" not "Join the free community!"
Self-Update
If the user flags an issue with the output, add a dated entry under ## Rules in this skill's SKILL.local.md (create it if missing) and log it to context/learnings.md under ## mkt-ugc-scripts. Write the general rule the correction implies, not the one-off fix.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

