CtrlK
BlogDocsLog inGet started
Tessl Logo

gamussa/reels-producer-skill

Write talking-head scripts and produce Instagram reels and YouTube shorts

94

2.36x
Quality

97%

Does it follow best practices?

Impact

85%

2.36x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

SKILL.mdskills/yap-writer/

name:
yap-writer
description:
Write talking-head video scripts using the Triangle of Yapping — open on the thought or topic, make it land with a metaphor/analogy/example/story, close on application or next steps. Use this skill whenever the user wants to write, draft, fix, or tighten a script for a piece-to-camera video — including "write me a yapping script", "script a talking-head reel", "help me talk about X on camera", "my videos are boring", "I don't know how to open this video", "turn this idea into a script", or "why does nobody watch my talking-head videos". Produces a beat-marked script and a teleprompter file that reel-builder's talking-head mode consumes directly.

Yap Writer

Process steps in order. Do not skip ahead.

Scripts for piece-to-camera video. The problem this solves is not writing — it is that a script with no shape opens on "hey guys, welcome back", wanders, and ends without telling anyone what to do. The Triangle gives it a shape.

T  ── open ON the thought. No greeting, no throat-clearing.
   │
  MAES ── metaphor, analogy, example, or story. This is what makes it land.
   │
  A/N ── application, or next steps. What do they DO now?

Full framework, with what each beat is for and how it fails:

references/triangle.md

Step 1 — Get the One Thought

Ask what the video is about, and refuse a topic. "Sales" is a topic. "Most people lose the sale in the first ten seconds" is a thought.

A topic has no edge, so the script wanders looking for one. Push until you have a single sentence someone could disagree with. If the user offers a topic, hand back two or three candidate thoughts drawn from it and let them pick.

Do not proceed on a topic. This step is the whole difference.

Step 2 — Find the MAES

Ask what makes it real: a metaphor, an analogy, an example, or a story. One, not four.

Prefer whatever the user has actually lived — a number from their own data, a client, a time it went wrong. Invented examples read as invented. If they have nothing, an analogy from an unrelated domain is the next best thing, and a generic "for example, imagine you're a business owner" is the worst.

Never invent a statistic, a client, or an outcome on their behalf. Ask, or leave the slot empty and say so.

Step 3 — Decide Application or Next Steps

Application is "here is how you use this". Next steps is "here is what to do now". Pick one; doing both dilutes it.

"Comment below" is not next steps unless the comment is genuinely the action. Telling someone to go execute on something is stronger than farming a metric.

Step 4 — Draft It

Write the script with the beats marked, so the shape is auditable and check_yap.py can verify it:

[T] Most people lose the sale in the first ten seconds.
[MAES] I watched a rep last week open with four minutes of company history...
[A] Next call you take, say the outcome first and time yourself...

Length: 150–200 spoken words per minute. A 60s video is 150–200 words; 90s is 225–300. Write to the target, not past it.

Write for the mouth, not the page. Short lines. One idea per sentence. Contractions. Read it aloud — anything you stumble on gets cut.

What makes a script sound recited rather than spoken — the tricolon, perfect antithesis, written-only vocabulary, em-dashes standing in for pauses:

references/spoken-tells.md

That file is self-contained. To check it against the current, community- maintained list of LLM tells before a draft that matters:

skills/yap-writer/scripts/fetch_ai_tells.sh /tmp/tells.txt

A failed fetch is a freshness check failing, not a blocker.

Step 5 — Check the Shape

python3 scripts/check_yap.py draft.md --target 60

It verifies the three beats are present and in order, estimates runtime against the target, and flags greeting openers and written-not-spoken vocabulary. It checks SHAPE, never quality — a present [MAES] beat says nothing about whether the analogy lands, and clean vocabulary says nothing about rhythm.

Then read it aloud, standing, at pace. Every stumble is a sentence built for the eye. That test outranks the checker.

Fix what it flags, then re-run. Proceed when it is clean.

Step 6 — Hand Off

Emit two files beside each other:

  • <slug>.md — the beat-marked script, plus caption and hashtags if the user wants them
  • <slug>-teleprompter.txt — the same words, no markers, short lines with a blank line at each beat, for reading on camera

The teleprompter file is what gets recorded. From there, reel-builder's talking-head mode takes the take:

Skill(skill: "reel-builder")

Its plan_broll.py reads the recorded take's transcript and finds where b-roll fits, so do not plan b-roll here — the timings do not exist until it is spoken.

Finish here.

.mcp.json

tile.json