Scripting Skill · Reference Dossier

ad-scripter-referenceThe companion data file that ad-scripter-write loads before every script. It holds the templates, the believable-number ranges, the output format, and the validation rules — consumed by the calling skill, never executed on its own.

Owner: Loaded as context — no standalone operator command · Part of /ad-script · Asel · 2026-06-11
What it does

ad-scripter-reference is a companion data file, not an executable skill. When the operator runs /ad-script, ad-scripter-write loads this file as context before doing any writing. It carries four things the script engine needs in one place: hook templates for each awareness level (unaware through product/most aware), believable result-number ranges across ten verticals, the full script output format, and the validation checklists. ad-scripter-modular uses it the same way for batch component generation. Nothing in this file decides, reasons, or calls a model on its own — all of that lives in the calling skill.

01 Model routing — this file has no runtime of its own

This is a passive reference. It makes no model calls. Routing lives entirely in the skills that consume it.

Important framing

ad-scripter-write and ad-scripter-modular load this file as context at the start of their runs. The model routing decisions — which model handles scripting, validation, and compliance — belong to those calling skills, not to this reference. The table below shows how a consuming skill routes work that draws on this reference. It describes where to delegate when working against these templates, not what this file does itself.

TaskModelWhy
Counting words, scanning forbidden-word lists, checking section counts and word-count targets against Part 4 of this referencePlain code — no language modelDeterministic-first rule. Completeness is never a model's job. Count, compare, flag — no reasoning required.
Pulling template lookups, mechanical table reads, ingesting believable-number rows from Part 2claude-haiku-4-5 (Haiku 4.5) via OpenRouterLow-consequence, high-volume mechanical reads. No judgment required at retrieval time.
First-pass validation checklist completion, section tagging, compliance flag generationclaude-sonnet-4-6 (Sonnet 4.6) via OpenRouterStructured but judgment-light. Medium stakes — the checklist is binary, not interpretive.
Scripting, voice synthesis, insight generation, template population drawing on this referenceclaude-opus-4-8 (Opus 4.8) via OpenRouterSynthesis and quality are the bottleneck. Voice fidelity — how well the script sounds like the expert — is non-negotiable. Opus 4.8 is the correct ceiling for creative synthesis.
Controlled variation expansion across multiple hooks, bodies, and CTAs simultaneously (ad-scripter-modular)GPT-5.5 via OpenRouterBroad variation with coherence across a large output surface — the job ad-scripter-modular uses this for.
First market classification for a new expert (ceiling one-shot only)claude-fable-5 (Fable 5) via OpenRouter — only if justified2x cost. Carries a mandatory 30-day data-retention obligation and requires explicit operator sign-off before any customer personally identifiable information (PII) is included. Not the default.

All calls go through OpenRouter. Every call is logged with model ID, provider, and cost to the agent_run audit table.

02 The spec

Four parts, loaded wholesale. No runtime inputs. No outputs of its own — the calling skill produces the script.

How this file is consumed

ad-scripter-write loads this file in full before Step 1 of its procedure. There are no query parameters and no filtered reads. The calling skill uses whichever sections apply to the script it is writing — awareness level governs which hook templates and which word-count targets are active; the vertical governs which believable-number range applies. ad-scripter-modular uses the same full-load pattern for batch generation.

Part 1 — Hook templates and section templates (by awareness level)

Loaded by ad-scripter-write Step 2 when selecting the hook framework

Hook templates cover all four awareness levels. Section templates cover every other part of the script — transition, struggle, turning point, insight, training intro, Social Proof Bridge (SPB — the mandatory bridge section connecting the expert's own journey to the student proof), and the call to action (CTA — the direct close that drives viewers to the free training). CTA parts scale with awareness level: unaware/problem-aware gets three parts; solution-aware gets four; product/most-aware gets all five.

Awareness LevelWhat it signalsHook templates available
UNAWAREViewer does not know they have the problem yetPattern Interrupt · Curiosity Gap · Contrarian
PROBLEM AWAREViewer knows the pain but not the solutionPain Recognition · Relatable Scenario · Internal Dialogue
SOLUTION AWAREViewer knows solutions exist but has not committedResult First · Credibility + Promise · Mechanism Hint
PRODUCT / MOST AWAREViewer knows the expert and the offer; needs a reason to act nowDirect Offer · Social Proof Lead · Urgency + Value

Each hook template includes a word-count target (14–25 words depending on level). Locked section templates — struggle, turning point, Social Proof Bridge, and CTA close — use fixed structural slots (named-entity, timeframe, number, emotional state, internal dialogue) so the calling skill cannot omit a required element by accident.

Mechanism protection rule (hard at all temperatures): the insight section template explicitly blocks "the right sequence", "three steps", "Phase 1/2/3", or any language that reveals the solution structure. The allowed language is always vague: "the approach", "what was missing", "the path."

Part 2 — Believable numbers by vertical

Loaded by ad-scripter-write Step 3 when inserting result numbers into struggle, turning point, and Social Proof Bridge sections

Ten verticals, each with timeframe-keyed ranges and demographic calibration notes. Numbers are specific by design — "landed her first $3,427 project" rather than "$3,000" — because round numbers feel invented. Every range is paired with a sustainability marker requirement (weight loss must include "kept it off"; income must include a timeframe durability phrase). The table also includes offer-price calibration: the higher the price of the offer, the stronger the proof numbers are allowed to be and the longer the timeframes required to justify them.

VerticalPrimary metricDemographic calibration note
1 — Income / Business (Standard)Monthly income, $300–$15,000/mo across timeframesHigh-income audiences: focus on time saved, not raw numbers
1 — Income / Business (High-Ticket, $2K+ programs)Customer revenue, $2,000–$50,000/mo across timeframesOffer-price calibration: $10K+ programs require longer timeframes and comprehensive outcome language
2 — Weight LossPounds, clothing sizes (size 16–18 → 2–3 sizes in 3–4mo)Women 40–55: acknowledge body changes, emphasise sustainability
3 — Hormone Health (PCOS, thyroid, menopause)Cycle regularity, lab improvements, hot-flash reduction %Validation-first language — these audiences have often been dismissed by the medical system
4 — Energy / Fatigue / SleepSleep onset time, morning energy quality, afternoon energyGentle, validating language — avoid high-energy phrasing for exhausted audiences
5 — Gut Health / DigestionBloating timeline, food-reaction reductionSymptom-specific language; avoid clinical framing
6 — Fitness / Strength / MobilityStrength gains, running milestones, mobility markersAge-relative framing ("first real push-up at 48") performs well
7 — Dating / RelationshipsMatch quality, date frequency, confidence timelineNever guarantee relationship outcomes; dignity-preserving language required
8 — Anxiety / Stress (non-clinical)Daily stress, nervous system regulation timelineFrame as stress management, not clinical treatment
9 — Parenting / FamilyRoutine improvements, conflict reduction timelineRelease guilt — don't add to it
10 — Career / Professional DevelopmentSalary increase (10–30%), promotion timeline, interview successMen 30–50: efficiency focus, ROI framing, direct numbers

Pending: the Great Ad rubric (proof-trajectory dimension) will cross-check these ranges against its scoring criteria when it ships. The tables stand as-is until then — note flagged in the source so consuming skills do not modify in anticipation.

Part 3 — Script output format

Loaded by ad-scripter-write Step 6 when assembling the final deliverable

The canonical output block for every script. Three sections: the script itself (seven scenes with stage directions, timestamps, and word counts), the ad copy block (Meta Ads Manager — primary text (PT) × 3 and headlines (H) × 3), and the construction log (voice, temperature, demographic calibration, template selections, word-count table, compliance check, and Fibery fields to populate). The construction log is what makes the output auditable — every decision is recorded against the specific template and number source it came from.

Output sectionWhat it containsPurpose
METADATA blockFormat, runtime, word count, awareness level, hook framework, primary objection, temperature, demographic segment, niche vertical, emotional arc, emotional intensityOne-glance summary of all key decisions before the reader hits the script
SCENE 1–7 (script body)Hook, Transition, Struggle, Turning Point, Insight, Training + Social Proof Bridge, Call to Action — each with stage directions and timestampsThe actor-ready script
AD COPY BLOCKPT1 (story-led), PT2 (curiosity-led), PT3 (social-proof-led) — each 40–90 words; H1 (outcome), H2 (curiosity), H3 (identity) — each 3–8 words; plus a compliance check row per elementReady to paste into Meta Ads Manager. The video does 95% of the selling — these are soft wrappers, not sales letters.
CONSTRUCTION LOGVoice Book status, temperature justification, audience calibration, template selections, word-count table by section, ad copy block validation, Fibery field mappingsThe audit trail. Shows which template was used, why that number was chosen, and where the Fibery fields get populated after /ad-log.

Open reconciliation note: the Fibery field labels in the output format (e.g. COMPANY HUB/Primary Text 1) may not yet match the Supabase read-only field names exactly. The source changelog flags this as an unresolved judgment call pending a Fibery-Supabase schema reconciliation pass. Do not modify the labels in the meantime; flag when encountered.

Part 4 — Section structure, word-count matrix, validation checklists, ad copy block rules

Loaded by ad-scripter-write Step 5 (validation) and by scripter-polish when it runs its own pass

Three sub-sections: the word-count and timing matrix (target words per section at each awareness level, target seconds per scene), the required-elements table per section per format, and the two validation checklists (one for SOLO/2-PERSON, one for SKILLSHOW_NOTEBOOK). Validation rigour scales with temperature — at LOW temperature every check is a hard gate; at MEDIUM and above, word counts and element counts become soft checks but structural checks remain hard.

SectionUnawareProblem AwareSolution AwareProduct/Most Aware
1: Hook (words)25222018
2: Transition (words)15151210
3: Struggle (words)50454035
4: Turning Point (words)50454035
5: Insight (words)40353025
6: Training + Proof (words)90858075
7: CTA (words)70656055

Total targets exceed the 240-word ceiling. At LOW temperature, trim to stay within ceiling. At MEDIUM and above, conversational flow and Voice Book pattern matching take priority.

Hard validation checks (apply at all temperatures, all formats):

CheckRequirement
All 7 sectionsPresent in every SOLO/2-PERSON script
Social Proof BridgeNon-negotiable — never skip
SpecificityConcrete numbers, timeframes, and details throughout — every proof element must feel verifiable
Numbers in rangeEvery result number cross-checked against Part 2 of this reference
No mechanism languageZero sequence/phase/step reveals in the insight section
Voice fidelityScript reads like the expert, not a copywriter — the Voice Book is the benchmark
Hook-to-awareness matchHook template must match the declared awareness level
CTA qualifier + reassuranceBoth present in every CTA regardless of format
Emotional arc matchMatches the vertical + demographic via audience language guidance

Ad copy block rules (the non-negotiables):

RuleDetail
Hard rule: script-derived onlyEvery claim in a PT or headline must appear in the video script first. Zero invented claims.
Never in PT or headlinesSecond-person + negative attribute ("you can't"), specific income/result claims, guarantee language, medical/diagnostic language, urgency/scarcity tactics, price points or offer details
Safe framing techniquesAlways one of: Third-Person Story, First-Person Narrative, Community Framing, Aspiration Framing, Discovery Framing, Observation Framing
PT word count40–90 words each. Three variations (story-led, curiosity-led, social-proof-led). Each ends with a soft call to action.
Headline word count3–8 words each. Three variations (outcome, curiosity, identity). No numbers, no ALL CAPS, no exclamation marks.

03 Live example representative

IDA vertical (Amelia Fenmore — interior-design business coach). High-ticket income framing, solution-aware hook, with the believable-number set applied.

REPRESENTATIVE EXAMPLE — IDA (Amelia Fenmore), Vertical 1 High-Ticket, Solution-Aware. Constructed from real IDA source material; not from an eval run. Badge: b-rep.
--- HOOK TEMPLATE SELECTED ---

Awareness Level: SOLUTION AWARE
Template: Credibility + Promise
Template text: "I have helped [NUMBER] people [OUTCOME]. Here is exactly how."
Target word count: 16–20 words

Populated for IDA:
"I have helped 47 interior designers sign their first $3K customer without a design degree or existing portfolio. Here is exactly how."
Word count: 22 words (MEDIUM temp — soft check, conversational flow takes priority)

--- BELIEVABLE-NUMBER SET APPLIED (Vertical 1 — High-Ticket $2K+) ---

| Timeframe          | Range selected  | Example used in script                              |
|--------------------|-----------------|-----------------------------------------------------|
| First customer       | $2,000–$5,000   | "signed her first $3,427 customer" (odd/specific)     |
| Month 1–2          | $5,000–$10,000  | "closed $8,200 in her first six weeks"              |
| Month 6            | $15,000–$25,000 | "hit her first $19,500 month"                       |
| Year 1             | $25,000–$50,000 | "now doing $31K months consistently"                |

Sustainability clause applied: "and has kept every one of those customers on retainer"
Demographic calibration: High-income audience — time saved framed alongside raw numbers.
Offer-price calibration: $10K+ program — longer timeframes, comprehensive outcome language.

--- CONSTRUCTION LOG EXCERPT ---

Voice Book status: USED EXISTING (IDA Voice Book, orchestration/expert-config/ida/)
Temperature: MEDIUM
Temperature justification: Iteration batch — Voice Book patterns modelled; conversational flow over rigid word-count gates.
Demographic Segment: Women 35–50, career-switchers and self-taught decorators
Emotional Entry Point: Quiet hope — "someone like me actually did this"
Believable Numbers Vertical: Vertical 1 — High-Ticket ($2K+ programs)

Word Count by Section (MEDIUM temp — soft checks):
| Section              | Target | Actual | Status    |
|----------------------|--------|--------|-----------|
| 1: Hook              | 20     | 22     | SOFT-OVER |
| 2: Transition        | 12     | 11     | OK        |
| 3: Struggle          | 40     | 43     | SOFT-OVER |
| 4: Turning Point     | 40     | 38     | OK        |
| 5: Insight           | 30     | 28     | OK        |
| 6: Training + Proof  | 80     | 84     | SOFT-OVER |
| 7: CTA               | 60     | 57     | OK        |
| TOTAL                | 282    | 283    | OK (MEDIUM temp ceiling waived for flow) |

Hard checks:
  All 7 sections present:          YES
  Social Proof Bridge included:     YES
  Specificity (concrete numbers):   YES
  Numbers in Part 2 range:          YES
  No mechanism language:            YES — insight uses "what was missing", not "Phase 1"
  Voice fidelity (Voice Book match): YES
  Hook-to-awareness match:          YES — Credibility + Promise for SOLUTION AWARE
  CTA has qualifier + reassurance:  YES

Validation Status: PASS
How to read it: The top block shows the raw template from Part 1, then what happens when it is populated with real IDA source material. The middle block shows the believable-number set from Part 2 — note the odd/specific numbers ("$3,427" not "$3,000") and the sustainability clause. The construction log excerpt at the bottom is what ad-scripter-write appends to every script so the reviewer can trace every number and template back to its source. Soft-over on word count at MEDIUM temperature is expected — the hard cap only applies at LOW temperature. The Validation Status row is what scripter-polish uses as its starting checkpoint when it runs its own pass.

04 Glossary

Every abbreviation spelled out in full with context. These terms appear across the scripting phase and the rest of the pipeline.

TermIn full / what it means
UNAWAREUnaware (awareness level 1 of 4) — The viewer does not yet know they have the problem the ad addresses. Hooks must create the problem in their mind first. Uses the most disruptive hook templates: Pattern Interrupt, Curiosity Gap, Contrarian.
PROBLEM AWAREProblem Aware (awareness level 2 of 4) — The viewer knows the pain but has not yet found a solution they trust. Hooks validate the specific struggle. Templates: Pain Recognition, Relatable Scenario, Internal Dialogue.
SOLUTION AWARESolution Aware (awareness level 3 of 4) — The viewer knows solutions exist but has not committed to one. Hooks lead with credibility and proof. Templates: Result First, Credibility + Promise, Mechanism Hint.
PRODUCT / MOST AWAREProduct Aware / Most Aware (awareness level 4 of 4) — The viewer knows the expert and the offer; they need a reason to act now. Hooks are direct. Templates: Direct Offer, Social Proof Lead, Urgency + Value. CTA uses all five closing parts.
Believable numbersBelievable numbers — Result figures (income, pounds lost, time to outcome) that sit within a credible range for the timeframe and demographic. The reference holds verified ranges for ten verticals. Numbers outside the range feel invented or unsafe; numbers inside the range feel real. Odd/specific numbers ("$4,237" not "$4,000") are required.
Voice BookVoice Book (Expert Voice Book) — Layer 2 of the data layer. Built by ad-voice-profile from the expert's own transcripts (YouTube, VSL, podcast, webinar). Contains the expert's signature vocabulary, rhythm, sentence patterns, and recurring phrases. ad-scripter-write reads the Voice Book before every script and halts if it is empty for the named expert. The old name "Layer 3 calibration" is deprecated — use Voice Book.
winning_adswinning_ads view (Supabase materialised export) — A materialised export of ads marked as winning in the Hermes swipe library, stored in references/swipe-library-winning-ads. This reference file (ad-scripter-reference) does not read the winning_ads view directly. A sibling skill — scripter-polish — checks scripts against patterns from this export as part of its quality-assurance pass. The brief's description of ad-scripter-reference as a "faithfulness check against winning_ads view" does not match the skill's actual content — see the reconciliation note below.
FaithfulnessFaithfulness (voice fidelity) — The degree to which a finished script sounds like the expert rather than a generic copywriter. Measured against the Voice Book. A hard check at all temperatures: if the script would not plausibly come out of the expert's mouth, it fails. Faithfulness to the Voice Book is distinct from compliance with Meta's ad policies — both are required.
SPBSocial Proof Bridge (SPB) — The mandatory section in Scene 6 of every SOLO/2-PERSON script. It bridges the expert's own backstory (parallel journey from the Voice Book) to the student proof (a named pioneer with a specific result number). 40–60 words. Non-negotiable — the validation checklist hard-fails any script that omits it.
CTACall to Action (CTA) — Scene 7. The direct close that drives the viewer to click and register for the free training. The five-part CTA close (What to Do, Why it Matters, When, How Easy, What Happens Next) is calibrated to awareness level — unaware/problem-aware use three parts; solution-aware use four; product/most-aware use all five.
PTPrimary Text (PT) — The written copy that appears above or below the video in Meta Ads Manager. Three variations per script: PT1 (story-led), PT2 (curiosity-led), PT3 (social-proof-led). Each 40–90 words. The video does 95% of the selling — primary text is a soft wrapper, not a sales letter.
TOFTop of Funnel (TOF) — Cold traffic. People who have never seen the expert's content before. IDA cold Meta ads target TOF audiences, driving them to a free training before asking for a booked sales call. Unaware and problem-aware hooks are typical at TOF.
MOFMiddle of Funnel (MOF) — Warm traffic. People who have seen content or engaged with an ad but have not yet booked a call. Solution-aware hooks are typical at MOF.
BOFBottom of Funnel (BOF) — Hot traffic. People who have seen the free training or visited the booking page but have not yet booked. Product/most-aware hooks are typical at BOF.
CPBCCost Per Booked Call (CPBC) — How much money was spent on Meta ads to get one person to book a sales call. The primary success metric for IDA cold traffic. Target threshold lives in the expert config row in Supabase.
CPLCost Per Lead (CPL) — How much money was spent to get one person to register for the free training. Used as an early-signal proxy when CPBC data is not yet available (typically in the first week of a new creative's run).
IDAInterior Design Academy (IDA) — The expert identity for Amelia Fenmore, an interior-design business coach. Her namespace in all Supabase rows is ida. Vertical 1 High-Ticket ($2K+ programs) is the relevant believable-numbers sub-table for IDA scripts. CPBC target and daily spend threshold live in the IDA expert config row.
DTCDirect to Camera (DTC) — A video format where the presenter speaks directly into the camera lens. The most common format for IDA ads. Two sub-variants: selfie/handheld (informal, UGC-style) and Studio DTC (production lighting and backdrop).
UGCUser-Generated Content (UGC) — An ad format that mimics organic, creator-style content — informal, handheld, less polished. Routed through the AI-UGC production pathway (National Background Processing (NBP) Pro → Enhancor → Seedance 2.0) for hook iterations.
PIIPersonally Identifiable Information (PII) — Any data that can identify a specific individual — names, email addresses, phone numbers, call recordings. Fable 5 carries a mandatory 30-day data-retention obligation; PII must never be passed to it without explicit operator sign-off.
SupabaseSupabase (database platform) — The PostgreSQL-based database that hosts the SKL ad creative system data layer. The seven data layers live here: Ad Swipe Library, Voice Book (Expert Profile), Competitor Intelligence, Live Performance, Launch Learnings, Expert-Specific Asset Bank, and Audience Voice. Agents read Supabase views only — never Fibery, Drive, or repo files at runtime.
FiberyFibery (project management and creative entity record) — The system of record for all CREATIVE and HOOK entities, their production status, and their Meta performance data. After /ad-log runs, the script's PT and headline fields are written to Fibery. The structured read-side shape lives in Supabase.
OpenRouterOpenRouter (model routing proxy) — The API gateway through which all language model calls in this system are routed. Provides unified billing, model switching, and per-call logs (model ID, provider, cost) that feed the agent_run audit trail.
agent_runagent_run (Supabase audit table) — The cross-cutting table that records every agent run. A row opens at the start of a run and closes at the end with a status of success, partial, failed, or halted. Every mutated row in the system carries the run's ID so any output can be traced back to the exact run that produced it.
HITLHuman in the Loop (HITL) — The operator approval gate at every stage of the creative pipeline in V1. No autonomous execution. The system captures the raw model output and the operator's edited final; the delta between the two is the agentic-performance signal that improves the system over time.
HermesHermes (autonomous background agent harness) — The always-on agent layer that maintains the Supabase data. Hermes agents run continuously (Curator-Hermes, Voice-Hermes, Sales-Hermes) or on a schedule (Scout-Hermes daily; weekly Sunday job). They keep the competitor intelligence, live performance, and swipe library views current without operator commands.
Reconciliation gaps for operator review

Gap 1 — "Faithfulness check against winning_ads view": The task brief describes ad-scripter-reference as a "read-side skill (faithfulness check against winning_ads view)." The skill source contains no such mechanism. This reference makes no calls, reads no Supabase views, and performs no winning_ads faithfulness check. The behaviour described is more consistent with scripter-polish (which checks scripts against winning patterns) or the general Supabase read-only interface rule. Recommend confirming whether the faithfulness-check feature belongs to scripter-polish or is a planned addition to this reference that has not yet been written into the source file.

Gap 2 — Fibery output labels vs Supabase field names: The output format in Part 3 uses COMPANY HUB/Primary Text 1 etc. The source changelog (2026-06-10) explicitly flags this as an unresolved judgment call pending a Fibery-Supabase schema reconciliation pass. No change applied; flagged for that pass.

Gap 3 — Great Ad rubric pending integration: Part 2 believable-number tables carry a note that the Great Ad rubric (proof-trajectory dimension) will cross-check these ranges when it ships. Until then the tables stand as-is. Consuming skills should not modify the ranges in anticipation.