Skip to content
Skills Library
Marketing & content · Writing

write-script

/write-script

Write or rework the spoken script of a short, from research to a storyboard ready to record. Use when the user shares a source to turn into a script, asks to enhance, shorten or restructure a script, wants hook options, or wants a script in their voice; also for telling their own experience, and whenever the user edits a script you wrote, so their voice profile learns from it.

Licence
MIT
Last repository change
03.11.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
7
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 03.11.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Write or rework the spoken script of a short, from research to a storyboard ready to record. Use when the user shares a source to turn into a script, asks to enhance, shorten or restructure a script, wants hook options, or wants a script in their voice; also for telling their own experience, and whenever the user edits a script you wrote, so their voice profile learns from it.

Original author description

Write or rework the spoken script of a short, from research to a storyboard ready to record. Use when the user shares a source to turn into a script, asks to enhance, shorten or restructure a script, wants hook options, or wants a script in their voice; also for telling their own experience, and whenever the user edits a script you wrote, so their voice profile learns from it.

How it works

  1. Steps
  2. The script file
Original SKILL.md headings · 111 lines, 1,260 words
SKILL.md preview
---
name: write-script
description: Write or rework the spoken script of a short, from research to a storyboard ready to record. Use when the user shares a source to turn into a script, asks to enhance, shorten or restructure a script, wants hook options, or wants a script in their voice; also for telling their own experience, and whenever the user edits a script you wrote, so their voice profile learns from it.
---

# Write script

A source (article, paper, launch page, a story from the user's life) becomes one file, `video-editor/projects/<job>/script.md`, that the user records from and that every later step reads: the teleprompter, the **hook** skill and the **edit-video** plan. Write in the user's voice ([VOICE.md](VOICE.md)).

Companion files:

- [SHAPES.md](SHAPES.md): the three shapes a script can take (news, journey, personal) and each one's spine, peaks, length and ending.
- [CHECKLIST.md](CHECKLIST.md): the checks every script passes before the user sees it.
- The voice, in two layers: [UNSLOP.md](UNSLOP.md), what makes any script sound machine-written, and [VOICE.md](VOICE.md), this creator's persona and how they talk, which grows with every script (step 8). Their views live in [OPINIONS.md](OPINIONS.md).

## Steps

### 1. Research and fact table

Read every source the user gave, then the company's or author's own page. Build the fact table: each claim the script might make, its source link, and the source's exact words. Mark a claim the source states as the company's own, unverified number (Nolla's 96%), so the script says so. For a personal story, the user is the source: list what you need from them (what happened, when, the numbers, what they felt) and ask; leave a gap marked `[ask]` until they answer.

When the user brings their own draft, sort its lines into three groups before editing, using [OPINIONS.md](OPINIONS.md) to recognise views they've held before: **opinion** (their view; it stays in their words), **fact** (checked like any claim) and **unsure** (a view phrased as a fact, such as "our brains are wired to save energy"). Ask which group each unsure line belongs to, in one question. Push back on a fact the sources contradict, with the source, and suggest a fix; never cut or soften an opinion on your own. Lines the user has already edited stay word for word; suggest a change to one instead of making it. Add each answer to OPINIONS.md.

Done when every claim in the script can point at a row of the fact table.

### 2. Angle

Write three lines and show them to the user with the shape:

- **Shape**: news, journey or personal ([SHAPES.md](SHAPES.md)); it sets the format. A news video can carry a journey section in its middle.
- **Contrast**: what the viewer assumes, and what is actually true.
- **Emotion**: the one feeling the video transfers (curiosity, awe, fear, shock, hope).

Set the length target from the shape. Estimate length at 3.2 words a second (the published final cuts run 2.6 to 4.0).

Done when the user agrees with the angle, or gave it in their message.

### 3. Hook options

Three hooks, each a spoken first line plus the frame-0 title (one or two lines at 100px) and the picture under it. Each drops the viewer into something already moving and signals within 5 seconds why to stay, and names the line that pays that promise off (**hook** skill, step 1). One of the three is the strongest version that still matches the fact table. The **hook** skill builds the chosen one.

Done when the user picks one.

### 4. Peak map

List the beats in order, one line each: its rough second, its type, and the words that carry it. Types are the beats in `video-editor/DESIGN.md` (Beats): a **peak** re-hooks (number, contrast, new problem, the biggest reveal, the doubt beat); a **release** explains the last peak. Peaks sit at most 15 seconds apart; each shape defines its peaks.

Done when the map fits the length target with no gap over 15 seconds between peaks.

### 5. Write

Write the lines from the peak map in the user's voice ([VOICE.md](VOICE.md)), then make the [UNSLOP.md](UNSLOP.md) pass; where the two disagree, VOICE.md wins. Mark each line FACE (on camera) or VO (voice-over under pictures or animation), and give each animated line its style: the video's lead style, or another when the line needs it (`animated-shots` skill, STYLES.md). Leave the style empty until the user picks a style frame, unless they named one. FACE goes on the turns: the hook when the face is in the thumbnail, the question that opens a section, the doubt beat, the ending.

Done when every beat of the map has its line.

### 6. Check

Run [CHECKLIST.md](CHECKLIST.md) and fix every failure. Show the user the result as a table (check, pass or fixed, the line it touched), with the word count and the estimated length.

Done when every check passes.

### 7. Write the file and hand off

Write `script.md` in the format below. Before a rewrite, rename the current one to `script-v<N>.md`; only `script.md` feeds anything. Then:

- When the user keeps scripts somewhere else too (a notes app, a board), update that copy, and when they have edited it, copy their lines back into `script.md` word for word.
- Write the post caption (`AGENTS.md`, Post captions): one or two lines plus "Comment X" when the script ends on it.

Done when the file exists, the card matches it, and the caption is written.

### 8. Learn the voice

Run this whenever the user changes a line you wrote, wherever they change it (`script.md`, their board, a chat message), and once more after the edit, against the transcript of what they actually said on camera. Compare their version with yours line by line. Set aside fact fixes, cuts for length, lines dropped in the edit and the transcript's misspellings of names; each other change shows how they talk:

- **Their own habit** (a phrase they swap in, a way they open or end): a row in VOICE.md's Learned table. When the same kind of change shows up a second time, write it as a rule under How they talk and drop its rows.
- **A general AI tell** they removed: a line in UNSLOP.md.
- **A view** they added or defended: OPINIONS.md (step 1).

Tell the user in one line what you recorded, so they can correct it.

Done when every change the user made is recorded or set aside as a fact or length fix.

## The script file

```markdown
# <Title>

Shape: news · Format: animation · Style: isometric · Length: ~190 words, ~60 s · Emotion: fear
Contrast: people assume X; actually Y.

## Hook

Chosen: "<spoken line>" · Title: <frame-0 title> · Picture: <what and from where>
Other options: ...

## Storyboard

| # | Shot | Line | On screen | Style | Sound | Beat |
|---|---|---|---|---|---|---|
| 1 | VO | Anthropic just watched an AI copy itself onto 8 machines. | "copy itself" → the 8-device network lighting up | isometric | whoosh | hook |
| 2 | FACE | So how does an AI even run on a TV box? | punch-in | | | release |
| 3 | VO | It finds the next machine, gets in, and copies itself. | "finds" → "gets in" → "copies": the three steps as a row | 2D | click | release |

## Facts

| Claim | Source | Source's words |
|---|---|---|

## Caption

...
```

`Shot` is exactly `FACE` or `VO`: the teleprompter reads those rows. `On screen` ties each visual to the words it lands on (`"cue words" → visual`); **find-pictures** and **edit-video** place visuals from it, and a peak gets a visual change. `Style` is the animated shot's style (2D, isometric or 3D), empty on FACE lines without animation; **animated-shots** builds each row in it. `Beat` is the type from the peak map; DESIGN.md's Beats table gives each one its screen and sound, which fill `On screen` and `Sound`.
Files in this package (7)
  • CHECKLIST.md 2 KB
  • OPINIONS.md 1 KB
  • SHAPES.md 4 KB
  • SKILL.md 7 KB
  • UNSLOP.md 2 KB
  • VOICE.md 2 KB
  • agents/openai.yaml 1 KB

Versions

RepositoryScoreLicence
This page · FOwen123/ostack-video-editor100MIT
evanbaker315/attentionos100MIT

Database snapshot: 13.11.2026 · package version 34b0d24401e2 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 95creator-script-agent
    Script Agent for [Channel]'s YouTube production pipeline. Acts as [Creator]'s Voice & Narrative Architect — takes a Research Brief markdown file and writes a full production-ready script in [Creator]'s voice. Use this skill whenever [Creator] wants to write a YouTube script,…
  • 100script-and-hooks
    Write the spoken script and on-screen lines for a short video in any of 10 languages, with 2–3 hook options, a TTS-friendly text, a closing call to action and a list of checkable claims for the user. Use when a video needs a script, a hook, a voice-over text, a rewrite of an…
  • 100yt-script
    Write a YouTube video script from a raw idea - hook options off 21 formulas, scored, then the full spoken script with the retention beats marked. Use whenever the user wants a video script, a hook, an opening line, "what should I say", "write my next video", or is about to…
  • 100yt-script
    Write a YouTube video script from a raw idea - hook options off 21 formulas, scored, then the full spoken script with the retention beats marked. Use whenever the user wants a video script, a hook, an opening line, "what should I say", "write my next video", or is about to…
  • 96quill
    Write a short-video or YouTube script in Bekhruz's voice, with a hook, beats and on-screen text. Use when asked to write, draft or outline a script, a hook or a voice-over.
  • 100scenarist
    Scenario and script craft — writes and reworks the scene-by-scene scenario.json: hook, beat structure, per-scene VO, on-screen text, pacing, and the language/aspect pre-flight. Owns scenario feedback loops and the scenario quality gate. USE WHEN the user asks to "write a…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.