agentleFS
camrontaylorcamrontaylor/AI-OS-Template/.claude/skills/mkt-ugc-scripts/SKILL.md

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).

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
  1. Distinctive:

    Write scripts people actually want to watch.

    line 18
  2. Very specific:

    Check brand_context/ and load per the table above.

    line 52
  3. Very specific:

    Read context/learnings.md → ## mkt-ugc-scripts.

    line 62
  4. Very specific:

    If voice profile is missing, work with a natural conversational tone and mention that /mkt-brand-voice would sharpen the scripts.

    line 64
  5. Distinctive:

    Path B — Research-driven: If the user wants ideas, or says something like "what should I make a video about":

    line 72
  6. Distinctive:

    Ask: "What's your niche or business area?

    line 74
  7. Very specific:

    Run str-trending-research on their niche (or read a recent research brief if one exists in projects/str-trending-research/)

    line 75
  8. Very specific:

    Read references/research-to-script.md for the methodology on turning research into script angles

    line 76
  9. Distinctive:

    Ask (or infer from context):

    line 84
  10. Very specific:

    Read references/script-frameworks.md for the chosen format's structure and references/hook-library.md for hook options.

    line 106
  11. Distinctive:

    Keep each sentence short enough to say in one breath.

    line 141
  12. Distinctive:

    Use contractions. "It's" not "it is".

    line 142
  13. Distinctive:

    Write how people talk, not how they write.

    line 143
  14. Distinctive:

    No parenthetical asides — AI voices struggle with them

    line 144
  15. Very specific:

    Add <break time="1.2s"/> (1.2-1.5s) only where a dramatic beat needs it.

    line 147
  16. Distinctive:

    If the user wants multiple scripts:

    line 153
  17. Distinctive:

    Write 3-5 scripts per batch

    line 154
  18. Very specific:

    Before saving, run all scripts through tool-humanizer in pipeline mode.

    line 161
  19. Distinctive:

    After saving, show actual script excerpts — not just file paths.

    line 198
  20. Distinctive:

    Ask: "How do these read? Anything feel off when you imagine saying it out loud?"

    line 207
  21. Very specific:

    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 …

    line 224

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

FileLoad levelWhy
brand_context/voice-profile.mdfullScripts match how the brand actually talks
brand_context/positioning.mdangle onlyThe chosen angle shapes the script's argument
brand_context/icp.mdlanguage sectionWords and phrases the audience uses
brand_context/samples.mdtone refsHow conversational delivery should sound
context/learnings.md## mkt-ugc-scripts sectionWhat's worked, what hasn't

Load what exists. Skip what doesn't. This skill works standalone.

Dependencies

SkillRequired?What it providesWithout it
str-trending-researchOptionalTrending topics and angles from Reddit, X, and webUser provides their own topic — no research-driven suggestions
tool-humanizerOptionalAI pattern removal before savingScripts 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":

  1. Ask: "What's your niche or business area? I'll research what's trending."
  2. Run str-trending-research on their niche (or read a recent research brief if one exists in projects/str-trending-research/)
  3. Read references/research-to-script.md for the methodology on turning research into script angles
  4. Present 3-5 script-worthy angles with a one-line pitch for each
  5. 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 typeBest format
Teaching somethingQuick Teach
Sharing an experienceStory Arc
Challenging a beliefMyth Bust / Hot Take
Showing resultsBefore/After
Reviewing something"I Tried X"
Relating to audienceDay-in-My-Life / POV
Selling without sellingProblem-Agitate-Solve
Building trustTestimonial / 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:

  1. YAML frontmatter with metadata
  2. The script body (spoken words only)
  3. 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 overlay

After 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.