Write video ad script skill

Write the words of a short-form video ad (voiceover, dialogue, chat bubbles, on-screen lines) the way performance creative teams do instead of from a blank page.

by gooseworks-ai·MIT license·★ 1,220 Stars on the repo·GitHub ↗

Use now

Files of Write video ad script

gooseworks-ai/main1 file shown
SKILL.md
Show the full text336 lines

write-video-ad-script

A model asked to "write a 30-second ad for this product" writes the average of every ad it has read. That is why AI scripts sound generic. The tools and teams whose scripts perform never start there. They build each script from four things, and so does this skill:

  1. What buyers actually say, word for word (reviews, comments, complaints).
  2. The beat sheet of an ad that already works in this format: borrow the persuasion (hook type, timing, proof, objection, CTA), never the words.
  3. Angles that are different on purpose: one specific person, one pain, one angle type each, and never the first idea every brand in the category runs.
  4. A filter: a rule check a machine can decide, then a second opinion from a different model family.

The output is one script in the format's own shape, two runner-up concepts the user can swap to, and a record of what the script was built on.

When to use it, and when not

  • Every video ad run, before any paid step, for any format whose ad has words: voiceover, dialogue, a chat thread, on-screen lines, lyrics. The goose-video-local runtime calls it after reading the format's recipe and before it assembles the review.
  • When the user asks to write, rewrite or improve a video ad script.
  • The user gave their own lines: keep them verbatim. Run only the rule check in its report-only mode, and raise only what changes something for them (a line too long to say in time, a claim the brand can't make). Change nothing unless they say so.
  • The format has no words (a voiceless dance story, a music-only product loop) apart from an end card: skip this skill.
When the angle is already decided

These answers are the frame. Never ask them again:

  • a recipe choice whose answer sets the script (a script angle, story, hook angle or story shape: any choice whose sets list includes the script);
  • the brief's angle or hook;
  • a batch concept's angle;
  • an idea the user picked from ad-angle-miner;
  • a remix's direction.

If the answer leaves room, the three concepts all work inside it, differing in the person, the pain or the proof.

If it fixes the whole angle (a remix of a finished video, a batch concept with its own hook), write one concept on it and vary only the hooks.

What you work from

  • The project brief and the answers to the format's choices (tone, narrator, setting).
  • The brand rules file the video runtime wrote (name, pronunciations, must say, never say, product facts). Product facts come only from there.
  • The format's recipe: its instructions, config and assets.
  • Anything already researched: buyer quotes saved for this brand, an angle bank from ad-angle-miner, quotes in the brief.

The working files live in the project's working folder, under a script subfolder. Their exact shapes, and how to run the two scripts, are in this skill's files reference: read it before writing them. Run both scripts from the folder that holds the working folder, calling them where this skill's scripts were saved.

Step 1. The script shape

Read the recipe's instructions and config, and write the shape file. It lists:

  • the beats in order, each with an id, who speaks, its seconds and its kind (spoken, on-screen, chat bubble or lyric);
  • which beat is the CTA;
  • the words per second.

For speech, read pacing. Set the desired cadence from the brief's explicit delivery direction or observed reference audio, then the recipe's default. Preserve explicit recipe limits and record any conflict. Without usable evidence, use a provisional 3 words per second for conversation or 2.5 for slow narration, labelled as a fallback.

Budget each spoken beat from its speech window, excluding pauses, silent demonstrations and end cards. Rates can differ across beats and speakers. Record the rate's source and keep recipe estimates separate from observed rendered delivery. Carry this plan into production direction. Read chat and cards against their own display time; lyric timing follows bars and syllables. A word estimate does not prove that a generated read fits. Do not change the recipe to express one run's target or promise forty words in fifteen seconds.

The format's own rules win on shape. When the recipe says "a 13-sentence testimonial" or "one hook line on screen", the shape says that.

Step 2. Buyer quotes (the input that matters most)

Practitioners name this as the single biggest lever. Real phrases from real buyers replace the model's generic idea of the customer.

Reuse before you collect. Check these in order:

  1. Quotes saved for this brand in the GooseWorks workspace: read them with the MCP file tools, at video-scripts, then the brand id, then customer-words.json. Use them if they are under 60 days old.
  2. An angle bank ad-angle-miner wrote in this session or the workspace. Its quotes come with links.
  3. Quotes in the brief or the batch concept.

Collect when there is nothing to reuse. Free sources come first:

  • the brand's saved learnings and kit;
  • its product pages, fetched raw (review widgets load by script, so a plain fetch shows only a few reviews);
  • its marketplace listing.

Then the paid sources, through the GooseWorks data proxy (ScrapeCreators): comments on the brand's own best posts, product reviews, and a category complaint search. Fetch ad-angle-miner and follow its customer-voice section for the exact paths.

Paid calls need one yes from the user, asked with a rough credit count. Inside the video runtime, that question rides in the recipe's choices round; never ask it in a round of its own. Run on its own, ask it once, before the first paid call.

Aim for 20 to 30 quotes. Mix:

  • outcomes from happy buyers;
  • objections and doubts from the 1 to 3 star reviews;
  • complaints about competitors;
  • small specific moments ("3am, staring at the ceiling").

Keep each quote verbatim, with its link and a tag: pain, desire, objection, outcome, moment or switching. Never paraphrase one. A quote without a link is not a quote.

Save the bank to the workspace path above with the MCP file tools, so the next video for this brand reuses it for free. If the file tools refuse, skip saving: the bank still lives in this project's working folder. Never write it into the user's own folders.

When nothing can be found (a new brand with no reviews anywhere), build on the brand's own facts and the category's complaints from competitors' reviews. Tell the user in one line that the scripts aren't built on their buyers' words yet.

Step 3. References (borrow the persuasion, never the words)

Reference one is the format's demo ad. Read its lines and timing from the recipe's instructions and config first; the template's extracted script is often empty. Watch the demo video with the watch skill only when the recipe doesn't carry its lines.

Add up to three more ads in the same format from the evidence already gathered:

  • organic posts far above the account's usual views;
  • ads still running after 30 or more days, or with 3 or more variants;
  • the brand's saved inspiration (social inspiration library or search).

Ad libraries show what runs, not what converts, so treat every one as a candidate.

For each reference, write a persuasion record:

  • the hook line and its family (see the hook families reference);
  • the beat map, with seconds and word counts;
  • when the product enters;
  • the proof device;
  • the objection it answers;
  • the CTA wording;
  • one line on why it works;
  • a transfer rule: what you keep (the structure, the move), and what belongs to the other brand and is never reused (its words, claims, offer, names, faces).

Step 4. Angles: different on purpose

Models converge on the same few ideas, and a creative system prompt does little to change that. What works: generate many, rate how obvious each one is, and keep the unobvious ones that have real evidence behind them.

  1. List 15 candidate angles. Each one is:
    • one specific person in one situation (not "busy moms", but "a nurse coming off a night shift who can't switch off");
    • one pain or desire, anchored to one or more quote ids;
    • an awareness stage: unaware, problem-aware, solution-aware, product-aware or most-aware;
    • an angle type: pain, outcome, identity, switching, proof, contrast or objection;
    • one concrete product fact it rests on.
  2. Rate how likely a typical ad writer for this category is to write it, from 0 to
    1. Be honest: "it saves you time" is 0.9.
  3. Drop anything above 0.4, unless its evidence is the strongest you have (many quotes, or a reference that has run for months).
  4. Keep three that differ in both the person and the angle type. Never two on the same quote, and never two on the same hook family.

In a batch, build the quotes and the angle list once for the brand. Give every concept whose angle is open a different angle from that list.

Step 5. Write

For each concept, write the body on the reference's beat map, in the format's shape. Then write 3 or 4 hooks, each from a different family in the hook families reference. At least one hook reuses a buyer's own phrase.

The laws:

  • One message. A script carrying two beliefs carries none.
  • The first line lands the pain, the claim or the moment. No wind-up, no brand introduction, no "Have you ever".
  • Specific beats general: a named moment, a physical detail the viewer can check, a real number from the facts.
  • Show the proof: a demo, a test, a before and after, a reaction. Don't just say it.
  • The body pays off exactly what the hook promised.
  • End on the CTA. Nothing is said after it (an end card may follow).
  • Write how this person talks: contractions, fragments, the buyers' own words, short sentences. Read every line out loud; if a person wouldn't say it, rewrite it.
  • Fit the speech plan. Keep proof and CTA when repairing timing. Offer tighter wording, a longer execution within the recipe or an explicitly evaluated faster read. Review short reads for intentional silence; do not add filler.
  • Brand rules always hold. Nothing in never-say, in words or in meaning. Every product claim (a result, number, ingredient, price, comparison) comes from the facts or a quote. The speaker's situation, feelings and small human details are craft, not claims, and they are what make it feel real.

Write the candidates file: the concepts with their angle, person, awareness stage, quote ids, reference id, typicality, hooks and beats.

Step 6. Check: rules, then a second model

The rule check. Run the lint script on the candidates, with the shape, the brand rules, buyer quotes and observed references. Use --strict to enforce profiled speech budgets and explicit word limits exactly; this flag checks timing, not research completion.

It fails on:

  • a line over budget, a missing beat, beats out of the format's order, or anything said after the CTA;
  • a dead opener;
  • a phrase the brand quoted as banned;
  • a concept with no buyer quote behind it.

It warns on:

  • a line that may break a brand rule. Rewrite it, unless it clearly means something else ("I work overnights" against "never claim it works overnight");
  • AI tells and stiff, contraction-free lines;
  • numbers no fact or quote backs;
  • the brand name in the first line;
  • a concept that never uses its buyers' words;
  • softer openers;
  • duplicate hooks.

Fix every error and read every warning. Run it again until it passes.

The second opinion. Run the critique script with the same files and the brief. A model from a different family (never Claude) judges every concept twice, once in each order, because judges favour whatever they read first. It scores hook, specificity, how spoken it sounds, proof, payoff and freshness, and gives a best hook, line edits and a ranking. It costs about 2 credits and runs without asking.

The script's exit codes:

  • 3: it wrote one MCP call per pass under the working folder's mcp-requests folder. For each, make the call (data post provider, then poll the job until it is complete), save the result where the request says, then run the same command again. The relay needs the video project id exported, like every paid call in the runtime.
  • 4: the critic gave no usable answer. Judge the concepts against the same rubric yourself, and carry on.

Apply the edits that hold up. Never apply an edit that adds a claim the facts don't back, or one that only makes a line flatter. Drop a concept the critic killed in both passes, if its reason is real. Then run the rule check again.

The critic raises the floor. It does not pick the winner: the user does, and later the ad's results.

Step 7. Into the review (no extra pause)

Take the top-ranked concept and its best hook. Put the script into the recipe's own script shape (a thread, beats with voiceover lines, slates, lyrics) and hand it to the runtime's review step. That review's single approval covers it.

In the same review, list the two runner-ups, one line each: the angle and the hook. The user can swap to one in a word. A swap redoes only the cheap pieces built from the script.

Add a note to the review labelled "How this script was made", with:

  • the angle;
  • what the buyers said, as a theme ("built on 6 buyer reviews about 3am wake-ups");
  • the kind of ad it borrows its structure from.

Never put the quotes themselves or their links in the note. Review sets can be remixed into other brands' videos.

When the user asks to choose ("show me a few scripts"), show the three concepts before the review: the angle and the hook, one line each. Then build the review on the one they pick.

Talk to the user like a creative partner. Never mention files, scripts, scores, models, the rule check or the second opinion unless they ask. If they change a line, their words are kept verbatim. Run the rule check in report-only mode, and raise only what changes something for them.

Step 8. Remember

Keep a script history for the brand in the GooseWorks workspace, next to the buyer quotes, as one JSON line per run. The file tools can't append, so read it, add the line and write it back. Each line records:

  • the date and the format;
  • the concept that shipped, and its hook;
  • the concepts passed over;
  • every line the user changed, before and after.

The next run reads it first: lean toward what they kept, away from what they passed on, and write the way their edits show.

A standing rule the user states ("never mention price", "we don't say 'cure'") is a brand rule. Save it to the brand the way the runtime says, not only to the history.

Cost

Step Cost
Writing, the rule check, workspace reads Free
The second opinion About 2 credits, billed to the video project, not asked
Paid buyer-research sources Billed per call, asked once, saved so the brand pays once

Rules that never bend

  • Never invent a customer, a quote, a number or a result.
  • Never reuse a reference's lines, claims, offer, names or faces.
  • The user's own words are kept verbatim.
  • Nothing paid runs before the runtime's approval, except the second opinion (about 2 credits) and buyer research the user said yes to.

Delivery handoff

Include the chosen delivery style, per-beat word counts and speech windows, intentional pauses, recipe conflicts and unverified targets in the existing review. Production uses the same plan and preserves recipe limits. Review finished audio for the complete read, pronunciation, naturalness and sync before declaring delivery fixed.

1---
2name: write-video-ad-script
3description: Write the words of a short-form video ad (voiceover, dialogue, chat bubbles, on-screen lines) the way performance creative teams do instead of from a blank page. Builds the script from the buyers' own words, the beat sheet of an ad that already works and three deliberately different angles, filters them with a rule check and a second non-Claude model, and takes the strongest into the review with the other two as one-line swaps. Use it in every video ad run before any paid step, and whenever the user asks to write, rewrite or improve a video ad script or says a script sounds generic or AI-written.
4status: active
5---
6 
7# write-video-ad-script
8 
9A model asked to "write a 30-second ad for this product" writes the average of every ad
10it has read. That is why AI scripts sound generic. The tools and teams whose scripts
11perform never start there. They build each script from four things, and so does this
12skill:
13 
141. **What buyers actually say**, word for word (reviews, comments, complaints).
152. **The beat sheet of an ad that already works** in this format: borrow the persuasion
16 (hook type, timing, proof, objection, CTA), never the words.
173. **Angles that are different on purpose**: one specific person, one pain, one angle
18 type each, and never the first idea every brand in the category runs.
194. **A filter**: a rule check a machine can decide, then a second opinion from a
20 different model family.
21 
22The output is one script in the format's own shape, two runner-up concepts the user can
23swap to, and a record of what the script was built on.
24 
25## When to use it, and when not
26 
27- **Every video ad run, before any paid step**, for any format whose ad has words:
28 voiceover, dialogue, a chat thread, on-screen lines, lyrics. The goose-video-local
29 runtime calls it after reading the format's recipe and before it assembles the review.
30- **When the user asks** to write, rewrite or improve a video ad script.
31- **The user gave their own lines**: keep them verbatim. Run only the rule check in its
32 report-only mode, and raise only what changes something for them (a line too long to
33 say in time, a claim the brand can't make). Change nothing unless they say so.
34- **The format has no words** (a voiceless dance story, a music-only product loop) apart
35 from an end card: skip this skill.
36 
37### When the angle is already decided
38 
39These answers are the frame. Never ask them again:
40 
41- a recipe choice whose answer sets the script (a script angle, story, hook angle or
42 story shape: any choice whose sets list includes the script);
43- the brief's angle or hook;
44- a batch concept's angle;
45- an idea the user picked from ad-angle-miner;
46- a remix's direction.
47 
48**If the answer leaves room**, the three concepts all work inside it, differing in the
49person, the pain or the proof.
50 
51**If it fixes the whole angle** (a remix of a finished video, a batch concept with its
52own hook), write one concept on it and vary only the hooks.
53 
54## What you work from
55 
56- The project brief and the answers to the format's choices (tone, narrator, setting).
57- The brand rules file the video runtime wrote (name, pronunciations, must say, never
58 say, product facts). Product facts come only from there.
59- The format's recipe: its instructions, config and assets.
60- Anything already researched: buyer quotes saved for this brand, an angle bank from
61 ad-angle-miner, quotes in the brief.
62 
63The working files live in the project's working folder, under a script subfolder. Their
64exact shapes, and how to run the two scripts, are in this skill's files reference: read
65it before writing them. Run both scripts from the folder that holds the working folder,
66calling them where this skill's scripts were saved.
67 
68## Step 1. The script shape
69 
70Read the recipe's instructions and config, and write the shape file. It lists:
71 
72- the beats in order, each with an id, who speaks, its seconds and its kind (spoken,
73 on-screen, chat bubble or lyric);
74- which beat is the CTA;
75- the words per second.
76 
77For speech, read [pacing](references/pacing.md). Set the desired cadence from the brief's
78explicit delivery direction or observed reference audio, then the recipe's default.
79Preserve explicit recipe limits and record any conflict. Without usable evidence, use a
80provisional 3 words per second for conversation or 2.5 for slow narration, labelled as a
81fallback.
82 
83Budget each spoken beat from its speech window, excluding pauses, silent demonstrations
84and end cards. Rates can differ across beats and speakers. Record the rate's source and
85keep recipe estimates separate from observed rendered delivery. Carry this plan into
86production direction. Read chat and cards against their own display time; lyric timing
87follows bars and syllables. A word estimate does not prove that a generated read fits.
88Do not change the recipe to express one run's target or promise forty words in fifteen
89seconds.
90 
91The format's own rules win on shape. When the recipe says "a 13-sentence testimonial" or
92"one hook line on screen", the shape says that.
93 
94## Step 2. Buyer quotes (the input that matters most)
95 
96Practitioners name this as the single biggest lever. Real phrases from real buyers
97replace the model's generic idea of the customer.
98 
99**Reuse before you collect.** Check these in order:
100 
1011. Quotes saved for this brand in the GooseWorks workspace: read them with the MCP file
102 tools, at video-scripts, then the brand id, then customer-words.json. Use them if
103 they are under 60 days old.
1042. An angle bank ad-angle-miner wrote in this session or the workspace. Its quotes come
105 with links.
1063. Quotes in the brief or the batch concept.
107 
108**Collect when there is nothing to reuse.** Free sources come first:
109 
110- the brand's saved learnings and kit;
111- its product pages, fetched raw (review widgets load by script, so a plain fetch shows
112 only a few reviews);
113- its marketplace listing.
114 
115Then the paid sources, through the GooseWorks data proxy (ScrapeCreators): comments on
116the brand's own best posts, product reviews, and a category complaint search. Fetch
117ad-angle-miner and follow its customer-voice section for the exact paths.
118 
119Paid calls need one yes from the user, asked with a rough credit count. Inside the video
120runtime, that question rides in the recipe's choices round; never ask it in a round of
121its own. Run on its own, ask it once, before the first paid call.
122 
123**Aim for 20 to 30 quotes.** Mix:
124 
125- outcomes from happy buyers;
126- objections and doubts from the 1 to 3 star reviews;
127- complaints about competitors;
128- small specific moments ("3am, staring at the ceiling").
129 
130Keep each quote verbatim, with its link and a tag: pain, desire, objection, outcome,
131moment or switching. Never paraphrase one. A quote without a link is not a quote.
132 
133**Save the bank** to the workspace path above with the MCP file tools, so the next video
134for this brand reuses it for free. If the file tools refuse, skip saving: the bank still
135lives in this project's working folder. Never write it into the user's own folders.
136 
137**When nothing can be found** (a new brand with no reviews anywhere), build on the
138brand's own facts and the category's complaints from competitors' reviews. Tell the user
139in one line that the scripts aren't built on their buyers' words yet.
140 
141## Step 3. References (borrow the persuasion, never the words)
142 
143**Reference one is the format's demo ad.** Read its lines and timing from the recipe's
144instructions and config first; the template's extracted script is often empty. Watch the
145demo video with the watch skill only when the recipe doesn't carry its lines.
146 
147**Add up to three more ads in the same format** from the evidence already gathered:
148 
149- organic posts far above the account's usual views;
150- ads still running after 30 or more days, or with 3 or more variants;
151- the brand's saved inspiration (social inspiration library or search).
152 
153Ad libraries show what runs, not what converts, so treat every one as a candidate.
154 
155**For each reference, write a persuasion record:**
156 
157- the hook line and its family (see the hook families reference);
158- the beat map, with seconds and word counts;
159- when the product enters;
160- the proof device;
161- the objection it answers;
162- the CTA wording;
163- one line on why it works;
164- a transfer rule: what you keep (the structure, the move), and what belongs to the
165 other brand and is never reused (its words, claims, offer, names, faces).
166 
167## Step 4. Angles: different on purpose
168 
169Models converge on the same few ideas, and a creative system prompt does little to change
170that. What works: generate many, rate how obvious each one is, and keep the unobvious ones
171that have real evidence behind them.
172 
1731. **List 15 candidate angles.** Each one is:
174 - one specific person in one situation (not "busy moms", but "a nurse coming off a
175 night shift who can't switch off");
176 - one pain or desire, anchored to one or more quote ids;
177 - an awareness stage: unaware, problem-aware, solution-aware, product-aware or
178 most-aware;
179 - an angle type: pain, outcome, identity, switching, proof, contrast or objection;
180 - one concrete product fact it rests on.
1812. **Rate how likely a typical ad writer for this category is to write it**, from 0 to
182 1. Be honest: "it saves you time" is 0.9.
1833. **Drop anything above 0.4**, unless its evidence is the strongest you have (many
184 quotes, or a reference that has run for months).
1854. **Keep three** that differ in both the person and the angle type. Never two on the
186 same quote, and never two on the same hook family.
187 
188**In a batch**, build the quotes and the angle list once for the brand. Give every
189concept whose angle is open a different angle from that list.
190 
191## Step 5. Write
192 
193For each concept, write the body on the reference's beat map, in the format's shape.
194Then write 3 or 4 hooks, each from a different family in the hook families reference. At
195least one hook reuses a buyer's own phrase.
196 
197The laws:
198 
199- **One message.** A script carrying two beliefs carries none.
200- **The first line lands the pain, the claim or the moment.** No wind-up, no brand
201 introduction, no "Have you ever".
202- **Specific beats general**: a named moment, a physical detail the viewer can check, a
203 real number from the facts.
204- **Show the proof**: a demo, a test, a before and after, a reaction. Don't just say it.
205- **The body pays off exactly what the hook promised.**
206- **End on the CTA.** Nothing is said after it (an end card may follow).
207- **Write how this person talks**: contractions, fragments, the buyers' own words, short
208 sentences. Read every line out loud; if a person wouldn't say it, rewrite it.
209- **Fit the speech plan.** Keep proof and CTA when repairing timing. Offer tighter wording,
210 a longer execution within the recipe or an explicitly evaluated faster read. Review
211 short reads for intentional silence; do not add filler.
212- **Brand rules always hold.** Nothing in never-say, in words or in meaning. Every
213 product claim (a result, number, ingredient, price, comparison) comes from the facts or
214 a quote. The speaker's situation, feelings and small human details are craft, not
215 claims, and they are what make it feel real.
216 
217Write the candidates file: the concepts with their angle, person, awareness stage, quote
218ids, reference id, typicality, hooks and beats.
219 
220## Step 6. Check: rules, then a second model
221 
222**The rule check.** Run the lint script on the candidates, with the shape, the brand
223rules, buyer quotes and observed references. Use `--strict` to enforce profiled speech
224budgets and explicit word limits exactly; this flag checks timing, not research completion.
225 
226It fails on:
227 
228- a line over budget, a missing beat, beats out of the format's order, or anything
229 said after the CTA;
230- a dead opener;
231- a phrase the brand quoted as banned;
232- a concept with no buyer quote behind it.
233 
234It warns on:
235 
236- a line that may break a brand rule. Rewrite it, unless it clearly means something
237 else ("I work overnights" against "never claim it works overnight");
238- AI tells and stiff, contraction-free lines;
239- numbers no fact or quote backs;
240- the brand name in the first line;
241- a concept that never uses its buyers' words;
242- softer openers;
243- duplicate hooks.
244 
245Fix every error and read every warning. Run it again until it passes.
246 
247**The second opinion.** Run the critique script with the same files and the brief. A
248model from a different family (never Claude) judges every concept twice, once in each
249order, because judges favour whatever they read first. It scores hook, specificity, how
250spoken it sounds, proof, payoff and freshness, and gives a best hook, line edits and a
251ranking. It costs about 2 credits and runs without asking.
252 
253The script's exit codes:
254 
255- **3**: it wrote one MCP call per pass under the working folder's mcp-requests folder.
256 For each, make the call (data post provider, then poll the job until it is complete),
257 save the result where the request says, then run the same command again. The relay
258 needs the video project id exported, like every paid call in the runtime.
259- **4**: the critic gave no usable answer. Judge the concepts against the same rubric
260 yourself, and carry on.
261 
262**Apply the edits that hold up.** Never apply an edit that adds a claim the facts don't
263back, or one that only makes a line flatter. Drop a concept the critic killed in both
264passes, if its reason is real. Then run the rule check again.
265 
266The critic raises the floor. It does not pick the winner: the user does, and later the
267ad's results.
268 
269## Step 7. Into the review (no extra pause)
270 
271**Take the top-ranked concept and its best hook.** Put the script into the recipe's own
272script shape (a thread, beats with voiceover lines, slates, lyrics) and hand it to the
273runtime's review step. That review's single approval covers it.
274 
275**In the same review, list the two runner-ups**, one line each: the angle and the hook.
276The user can swap to one in a word. A swap redoes only the cheap pieces built from the
277script.
278 
279**Add a note to the review** labelled "How this script was made", with:
280 
281- the angle;
282- what the buyers said, as a theme ("built on 6 buyer reviews about 3am wake-ups");
283- the kind of ad it borrows its structure from.
284 
285Never put the quotes themselves or their links in the note. Review sets can be remixed
286into other brands' videos.
287 
288**When the user asks to choose** ("show me a few scripts"), show the three concepts
289before the review: the angle and the hook, one line each. Then build the review on the
290one they pick.
291 
292**Talk to the user like a creative partner.** Never mention files, scripts, scores,
293models, the rule check or the second opinion unless they ask. If they change a line,
294their words are kept verbatim. Run the rule check in report-only mode, and raise only
295what changes something for them.
296 
297## Step 8. Remember
298 
299Keep a script history for the brand in the GooseWorks workspace, next to the buyer
300quotes, as one JSON line per run. The file tools can't append, so read it, add the line
301and write it back. Each line records:
302 
303- the date and the format;
304- the concept that shipped, and its hook;
305- the concepts passed over;
306- every line the user changed, before and after.
307 
308The next run reads it first: lean toward what they kept, away from what they passed on,
309and write the way their edits show.
310 
311A standing rule the user states ("never mention price", "we don't say 'cure'") is a
312brand rule. Save it to the brand the way the runtime says, not only to the history.
313 
314## Cost
315 
316| Step | Cost |
317|---|---|
318| Writing, the rule check, workspace reads | Free |
319| The second opinion | About 2 credits, billed to the video project, not asked |
320| Paid buyer-research sources | Billed per call, asked once, saved so the brand pays once |
321 
322## Rules that never bend
323 
324- Never invent a customer, a quote, a number or a result.
325- Never reuse a reference's lines, claims, offer, names or faces.
326- The user's own words are kept verbatim.
327- Nothing paid runs before the runtime's approval, except the second opinion (about 2
328 credits) and buyer research the user said yes to.
329 
330## Delivery handoff
331 
332Include the chosen delivery style, per-beat word counts and speech windows, intentional
333pauses, recipe conflicts and unverified targets in the existing review. Production uses
334the same plan and preserves recipe limits. Review finished audio for the complete read,
335pronunciation, naturalness and sync before declaring delivery fixed.
336 

Discussion

Alternatives

Add opening hookReplace a video's cold open with a 5-second hook that states the payoff or problem up front, before the walkthrough starts. Use when the user says "add a hook", "the opening is boring", "it takes too long to get to the point", "give it a stronger start", "lead with the payoff", or shares a video that opens straight into a UI with no reason to keep watching.Creator · Apache-2.0Hook Writing EngineGenerate psychologically-driven hooks for paid social ads. Uses Schwartz's 5 awareness stages and 8 psychological triggers, grounded in the workspace's actual top-performing hooks from Motion. Activate when users ask to "write hooks", "generate hooks", hook ideas", "scroll-stopping openings", "attention grabbers", or need opening lines for ads. Pairs with write-hooks/references for tactic and template libraries.Creator · MITUGC Script WriterWrite authentic UGC (user-generated content) ad scripts that sound like real people sharing real experiences. Produces talking points — not word-for-word scripts — with a scripted hook and soft CTA. Grounded in Motion workspace data for hooks that convert. Activate when users ask for "UGC script", "creator script", "influencer brief", talking points for a creator", "authentic ad script", or need scripts for creator-style paid social ads.Creator · MITUgc style tiktok script generator for gen z skincareGenerate user-generated content style TikTok scripts for a new Gen Z skincare product as a Marketing Strategist.Marketing · CC0-1.0