Ideation Skill · Revamp Dossier

ad-hook-generationGenerates a full hook batch — words only, 34 frameworks across cold and warm traffic — ready for the scripter to attach to a concept card or run as a standalone test.

Owner: Operator-commanded via /ad-script (hook chain) or standalone /hook · for Asel · 2026-06-11
What it does

Ad-hook-generation takes a brief, a concept card, the expert's Voice Book, and the audience language data assembled in earlier pipeline steps, then produces a batch of hooks matched to the funnel stage. Cold traffic gets up to 12 core frameworks (F1–F12) plus 12 high-ticket frameworks (HT1–HT12) built for offers priced at $2,000 or more. Warm retargeting gets 10 dedicated frameworks (W1–W10) that lead with recognition instead of interruption. Every hook outputs words only — the spoken hook line plus three metadata tags: Visual-intent (a short phrase describing the intended visual treatment), Mute-ready (yes/no), and Reveal (TEASER / PARTIAL / FULL). Full production direction — shot framing, overlays, props — moves to the filming brief (/ad-brief). At least 2 hooks in every batch must be mute-ready. Quota enforcement — no more than 3 uses of any single framework per batch, no all-same-format batches, minimum mute-ready count — is done by plain code, not by the language model.

01 Model routing — which model runs which task

Deterministic work runs as plain code. The language model only reasons over a bounded, pre-filtered read view. Completeness is never the model's job.

TaskModelWhy
Supabase gold-view reads — pulling winning_ads, expert_hook_bank, and competitor_intelligence views to build the source shortlistPlain code — no language modelMechanical database reads with no reasoning required. Fastest and cheapest path. Output feeds into all model steps below.
Quota enforcement — checking max 3 uses per framework, minimum 2 mute-ready hooks, no all-same-format batchPlain code — no language modelDeterministic counting rules. The model generates; the code validates constraints are met before the batch is finalised. The model cannot be trusted to self-count reliably.
First-pass framework tagging and checklist pass — assigning framework IDs (F1–F12 / HT1–HT12 / W1–W10), running the qualified-attention checklistclaude-sonnet-4-6 (Sonnet 4.6) via OpenRouterStructured classification at moderate consequence and cost. Wrong framework tag is recoverable; wrong creative hook copy is expensive.
Core hook generation — angles, copywriting, voice calibration, proof integration, framework selection and applicationclaude-opus-4-8 (Opus 4.8) via OpenRouterHighest-consequence creative output. A hook that stops the wrong person wastes media spend on every subsequent impression. Voice fidelity and qualified-attention precision require the ceiling reasoning model. Every call logged with model ID, provider, and cost to the agent_run audit record.
Multi-sensory 4-dimension variation expansion — populating the Visual-intent metadata tag, varying format archetypes, and scouting borrowing sources across Dimension 2/3/4GPT-5.5 via OpenRouterReconciliation flag — see below. The skill source file specifies GPT-5.5 for controlled variation across visual, format, and borrowing dimensions. This diverges from the house-standard model set (Opus 4.8 reasoning / Fable 5 ceiling / plain code). The operator should confirm whether GPT-5.5 is authorised for this slot or whether Opus 4.8 should handle all generation.
Reconciliation — GPT-5.5 in the routing table

The skill source file includes a fifth routing row: GPT-5.5 for multi-sensory variation (Dimensions 2–4: visual/action, format, borrowing). The dossier house standard uses only Opus 4.8, Fable 5, or plain code — no third-party models are named in other dossiers. This discrepancy needs an operator decision before the skill goes to production: confirm GPT-5.5 is approved for this slot, or reassign to Opus 4.8 and update the skill file.

All model calls route via OpenRouter (the proxy layer that provides unified billing, model switching, and per-call logs). Every run opens an agent_run row at start and closes it at exit with status success / partial / failed / halted. The skill emits a hook batch only — created_by_run_id write-stamping happens downstream when /ad-log commits the batch to Supabase.

HALT conditions: The skill halts immediately (without producing any hooks) if the expert_profile for the target expert is absent or not current in Supabase, or if any required Supabase read returns an infrastructure error. An empty result is never treated as success.

02 The spec

What goes in, and what comes out.

InputWhat it is
Hook briefThe short operator-provided brief specifying expert, audience segment (cold top-of-funnel / warm middle-of-funnel / warm bottom-of-funnel), ideal customer profile (ICP) tier, angle or objection to address, offer class (standard or high-ticket at $2,000+), and mechanism reveal level. The reveal level is almost always TEASER — see Mechanism Protection below.
Concept cardThe upstream output from ad-ideate when the hook chain fires inside /ad-script. Contains the arc, angle, objection, format recommendation, and Pioneer tier classification. When using the standalone /hook command the operator provides angle context directly.
Voice BookThe Expert Voice Book for the target expert — built by ad-voice-profile and stored as a Supabase record. Contains the expert's signature phrases, vocabulary, sentence rhythms, and ICP language. The skill reads this at every invocation and halts if it is absent or not current for the expert namespace. "Voice Book" is the canonical name — the deprecated term "Layer 3 calibration" must not appear anywhere in hooks or briefs.
Audience Language DNAThe cross-niche demographic language patterns and emotional arc data assembled by ad-audience-language-dna. Used to calibrate tone, vocabulary register, and sentence rhythm for the target ICP tier. Read from the expert_hook_bank Supabase gold view.
Supabase gold views (5 sources)The system pulls from: (1) winning_ads filtered by expert_namespace — the expert's own proven winning ads, highest confidence; (2) expert_hook_bank organic signal entries — the expert's high-engagement organic content; (3) competitor_intelligence filtered source_type = 'paid_ad' — market-validated competitor paid ads; (4) competitor_intelligence filtered source_type IN ('youtube_video', 'instagram_post') — competitor viral organic; (5) competitor_intelligence sorted by capture date or long-run status — longest-running Meta ads (6+ months indicates conversion proof). Sources 1 and 5 take priority. Local markdown exports (e.g. references/hook-swipe-bank.md) are generated fallback surfaces only — never the source of record.

Hook batch output — the .card format

One structured batch per invocation — emitted as operator-readable text, logged to Supabase via /ad-log
Field / lineWhat it means
HOOK BATCH headerBatch label with offer name, target identity description, audience segment code (from audience-language-dna), awareness level, funnel stage (top-of-funnel / middle-of-funnel / bottom-of-funnel), offer tier, and — for warm batches only — previous exposure and key objection fields.
HOOK [n]: [text]The hook copy itself — the opening line(s) that appear in the first 1–3 seconds. May be spoken dialogue, text overlay, or both.
Framework: [ID]The canonical framework identifier from the 34-framework library: F1–F12 (core cold), HT1–HT12 (high-ticket cold), or W1–W10 (warm retargeting). Must be the structured inline slot, not dissolved into prose.
Interrupt/Escalation | Loop/Objection | Calibration | RevealPipe-separated metadata on the same line as the framework ID. Interrupt describes the attention mechanism (cold) or escalation step (warm). Loop/Objection names what is opened or addressed. Calibration records any demographic or voice-register adjustment. Reveal is TEASER or PARTIAL REVEAL (one named element, no sequence, no count) — and must accurately reflect what the hook actually discloses.
Visual-intentA short phrase recording the intended visual treatment for this hook (e.g. "text-on-screen, no face" or "overhead hands + prop"). Not a shot list — full production direction is generated by /ad-brief. Screen-recording and prop-based intents carry the highest mechanism-reveal risk — check these hardest in the self-check scan.
Mute-readyYes or no. Indicates whether the hook lands without audio (text-on-screen or voiceless format). At least 2 hooks per batch must be mute-ready — enforced by code before the batch is emitted.
RevealTEASER or PARTIAL REVEAL. The mechanism-protection tag. Must accurately reflect what the spoken hook line and its Visual-intent actually disclose. See Mechanism Protection card below for forbidden forms under TEASER.
Why it worksOne line explaining the qualified-attention mechanism — why the right buyer stops, not just why anyone stops.
TOP 3 / HIGH-TICKET RECS / MOF-BOF RECSRanked recommendations at the end of the batch with reasons. Warm batches add a retargeting sequence: Touch 1 (recognition + new proof) → Touch 2 (objection + resolution) → Touch 3 (urgency + risk reversal).
Compliance footerMute-ready compliance (minimum 2 hooks mute-ready), format variety (minimum 2 distinct format archetypes), framework distribution (no framework used more than 3 times), proof entries used and their source IDs.

Mechanism protection — what TEASER means

Non-negotiable rule — applies to every hook's spoken line and its Visual-intent metadata

The default reveal level for every hook is TEASER. A hook that reveals the programme's method kills the curiosity gap the entire funnel depends on. TEASER forbids:

  • Naming any element of the method
  • Naming the number of steps, phases, or things you will learn
  • Sequence language: "first… then…", "Step 1 / Step 2 / Step 3", "Phase 1 / 2 / 3", "in sequence", "in order"
  • Any numbered list of method components on screen or in audio

PARTIAL REVEAL (naming one element, no sequence, no count) is only permitted when the brief explicitly requests it.

The Visual-intent tag counts equally. A Visual-intent that would place steps on screen — "1. Niche / 2. First customer / 3. Scale" — is a sequence reveal even if the spoken line never numbers them. Screen-recording and prop-based intents carry the highest risk.

The self-check before emitting is deterministic, not attestation. The model must scan every hook's spoken line and its Visual-intent metadata for: step, steps, sequence, order, phase, first/second/third in method context, numbered lists of method elements, and counts of method components. Any hit means revise the hook or upgrade the Reveal: tag honestly. A hook that reveals a sequence and self-certifies TEASER is a hard fail. See the improvement queue below — this exact failure shipped in the 2026-06-10 depth eval.

The 4 variation dimensions — multi-sensory output

Applied to every hook batch
DimensionWhat it covers
1 — MessageThe verbal or text content. The angle, claim, question, or statement. The copywriting layer handled by the 34 frameworks. Rotation levers: different pain points, benefits, audience callouts, framings of the same core idea.
2 — Visual / ActionThe physical scene, movement, prop, gesture, or visual element visible in the first 1–3 seconds. Rotation levers: different settings (car, kitchen, office, outdoors, walking), different actions (unboxing, pointing, walking toward camera, writing on whiteboard), different props (phone screen, document, surprising object).
3 — FormatThe production style and structural format. Six archetypes: talking head (direct to camera, conversational); text-on-screen / voiceless (no face, visuals + text overlay); skit / scene (mini-story or dramatisation); screen recording / demo (showing a screen or process live); native / trending format (current organic platform conventions — duets, green screen, photo carousel); high-production visual (cinematic, used sparingly when premium feel is the pattern interrupt).
4 — BorrowingUsing pre-existing footage or media as the hook before transitioning to the ad's message. Sources: event footage, news clips, podcast snippets, street interviews, testimonial clips, viral moments, user comments shown on screen. Usage rights must be flagged to the production team.

03 Live output example real eval output

Source: hg-cold / Skill arm A — 2026-06-10 depth eval. IDA (Amelia Fenmore — interior design career-change education), cold top-of-funnel, T1 ideal customer profile (burned-out professionals, near-retirees, full-time employees aged 45–60), angle: "Too old / too late to start something new." Three hooks shown (Hooks 1, 2, and 5) plus the compliance footer. Full batch = 10 hooks.

hg-cold · Skill arm A · 2026-06-10 eval · IDA / Amelia Fenmore — 3 of 10 hooks shown
HOOK BATCH: Interior Design Academy (IDA) — Age Objection
TARGET: Burned-out professionals, near-retirees, full-time employees 45-60 | SEGMENT: T1 Primary Buyer (career changers, near-retirees)
AWARENESS: Problem-Aware (know the age-trap feeling; unaware of Amelia or IDA) | FUNNEL: TOF / COLD | TIER: High-Ticket ($2K+)
ANGLE: "Too old / too late to start something new"
MECHANISM: TEASER — never name phases or steps

---

HOOK 1
Framework: F5 — Identity Callout | Interrupt: Identity mirror (decades of corporate service + creeping doubt) | Loop: Is it too late to build my own? | Calibration: T1 language register (45–60, career-service vocabulary) | Reveal: TEASER
Visual-intent: talking head, warm home setting, mid-sentence cut-in, eye contact locked — no logo, no intro
Mute-ready: no

"If you've spent 20 years building someone else's business and you're wondering whether it's too late to build your own — I need you to hear this."

Why it works: "Building someone else's business" is mirror language that stops the T1 viewer mid-scroll because they feel personally addressed, not targeted. "I need you to hear this" creates an open loop without resolving it — qualifies the right buyer in the first second.

---

HOOK 2
Framework: F2 — Unexpected Outcome | Interrupt: Violation of assumption (layoff at 55 = dead end) | Loop: Wait — how did he start over? | Calibration: Hard Landing Repeat rhythm, T1 resonance | Reveal: TEASER
Visual-intent: text-on-screen, warm off-white background, three-beat text rhythm — no faces, no branding
Mute-ready: yes

"He got laid off at 55. 30 years in sales. Gone. He started over. Now earns £2,500 per project."

Why it works: Alexander's story stripped to pure data violates the assumption that layoff at 55 is a dead end. "30 years. Gone." lands like a gut punch. The outcome (£2,500/project) arrives without explanation, forcing an open loop: "Wait — how?" Only someone who feels the weight of "30 years" will pause for this.

---

HOOK 5
Framework: HT5 — Identity Wedge | Interrupt: Fear of being in the wrong column | Loop: What's the difference? What's the system? | Calibration: T1 identity stakes — starting over at 50 | Reveal: TEASER
Visual-intent: text-on-screen, two-line split layout followed by a third reframe line — no branding in frame
Mute-ready: yes

"People who start over at 50 and fail... People who start over at 50 and build something real... The difference isn't age. It's the system."

Why it works: Addresses the underlying fear (being in the fail column) while implanting the reframe (the variable isn't age — it's the system). "It's the system" creates a mechanism curiosity open loop without revealing anything about the programme. Entire payload is visual-textual — works fully on mute.

---

[...7 more hooks follow in the full batch — Hooks 3-4 and 6-10...]

---

MUTE-FIRST COMPLIANCE: Hook 2 and Hook 5 are fully voiceless/text-on-screen. Minimum 2-hook mute-first requirement met.
FORMAT VARIETY COMPLIANCE: Talking head (Hooks 1, 3, 4, 6, 7, 8, 10), Text-on-screen voiceless (Hooks 2, 5), Skit/scene (Hook 9). Three distinct format archetypes. No single format dominates.
FRAMEWORK DISTRIBUTION: F5, F2, HT9, F12, HT5, HT6, F1, HT8, F8, HT11 — 10 distinct frameworks. No framework repeats. Quota satisfied.
PROOF ENTRIES USED: AH-CRD-01 / AH-RES-01 (Hook 2), EX-JF-01 (Hook 8), AF-EMO-01 (Hook 4). All from age-objection index (T1 priority).
How to read it: The batch header tells you the audience segment, funnel stage (top-of-funnel, cold), offer tier, and mechanism reveal level before you read a single hook. Each hook shows the spoken line in words only, followed by three metadata tags — Visual-intent (the intended visual treatment), Mute-ready (yes/no), and Reveal (TEASER / PARTIAL / FULL) — plus the pipe-separated framework metadata inline. Full production direction moves to the filming brief (/ad-brief). The Why it works block explains the qualified-attention mechanism — not "why anyone stops" but "why the right buyer stops and the wrong one scrolls." The compliance footer at the bottom is deterministic: plain code checks mute-ready count, format variety, and framework quota before the batch is emitted.
Improvement queue — known failures from the 2026-06-10 depth eval

A9 (hg-warm, Skill arm B) — CRITICAL — mechanism-reveal self-certification failure. This is the highest-priority patch target across the entire 2026-06-10 eval. In the warm-traffic batch, Hook 4 named the full three-step programme sequence in both the spoken line and the visual intent: the audio said "There are 3 things you learn in sequence. First, you pick a specific niche… Second, you land your first paying customer… Third, once you've proven it works, you scale." The Visual-intent called for "1. Niche / 2. First customer / 3. Scale" on screen. The output self-certified "TEASER level — no phase names." Every clause of the TEASER definition was violated — element count named (3 things), all three elements enumerated, explicit sequence language used (First / Second / Third / in sequence) — and the model's own self-check passed it through. This failure is not present in the hg-cold output shown above, which is fully TEASER-compliant. The patch: mirror scripter-polish Step 6 verbatim inside the hook-generation mechanism-protection block, with explicit examples of every forbidden form. The W9 (Implementation Focus — "here's exactly how this happens, step by step") framework is the highest-risk framework for this violation and needs a specific TEASER worked example under its definition.

A5 (both hg-cold and hg-warm) — structured output metadata slots dissolved into prose. Both cold and warm batches omitted the required pipe-separated inline metadata fields. In hg-cold, the framework ID appeared on a standalone line with no pipe-separated fields — the information existed inside the "Why it stops" prose block but not in the structured slot the output contract requires. In hg-warm, the Trigger, Dimension, and Awareness fields were absent from every hook. Patch: mark these as required output slots in the SHARED OUTPUT FORMAT block, with a template row populated with concrete IDA values so the model has an anchor rather than a spec-only description.

04 Glossary

TermIn full / what it means
F1Contrarian Claim — Cold-traffic hook framework 1. Structure: "[Accepted belief] is wrong/backwards/keeping you [negative outcome]." Use when your solution contradicts something the audience already believes. Test: does it violate something they "know"?
F2Unexpected Outcome — Cold-traffic hook framework 2. Structure: "[Unlikely person/method] achieved [impressive result]." Use when the method or customer contradicts stereotypes. Test: would someone say "wait, how?"
F3Hidden Truth — Cold-traffic hook framework 3. Structure: "The [truth/secret/reason] about [topic] that [authority] won't tell you." Use when a genuine contrarian insight exists. Test: does it create an information gap?
F4Specific Transformation — Cold-traffic hook framework 4. Structure: "[Specific start] → [Specific result] in [Specific timeframe]." All three elements must be real and verifiable.
F5Identity Callout — Cold-traffic hook framework 5. Structure: "[Specific identity] who [specific situation], this is for you." Works when you can name a very narrow audience subset — fewer than 10% of viewers should feel called out.
F6Mistake Reveal — Cold-traffic hook framework 6. Structure: "The [#] mistake(s) [identity] make with [topic]." Use when common mistakes are things your solution addresses.
F7Paradox Hook — Cold-traffic hook framework 7. Structure: "[Action A] is actually causing [opposite of expected result]." Use when the conventional approach causes the very problem it is meant to solve.
F8Question Interrupt — Cold-traffic hook framework 8. Structure: "Why do [specific group] [unexpected behaviour/result]?" Use when your solution explains a phenomenon the audience has genuinely wondered about.
F9Time Collapse — Cold-traffic hook framework 9. Structure: "[Impressive result] in [surprisingly short time] using [unexpected method]." Use when speed is a genuine differentiator.
F10"What If" Reframe — Cold-traffic hook framework 10. Structure: "What if [current struggle] was actually [reframe to opportunity]?" Use when the solution reframes a problem as an opportunity.
F11Social Proof Lead — Cold-traffic hook framework 11. Structure: "[Large number] of [specific people] have [specific result] using [method]." Use when volume proof demonstrates a pattern. Both the number and the result must be specific.
F12Native Story Opening — Cold-traffic hook framework 12. Structure: "[Time marker] + [specific situation] + [tension/problem]." Use when a genuine story leads to your solution. Test: does it feel like content, not an ad?
HT1Competence Test — High-ticket cold framework 1. Structure: "If you can't [skill/knowledge] in [timeframe], that's why you're stuck." Creates a competence gap your offer fills.
HT2Gatekeeper / Velvet Rope — High-ticket cold framework 2. Structure: "I usually only share this with [exclusive group], but…" Frames content as leaked intellectual property, not free tips.
HT3Mechanism Reveal — High-ticket cold framework 3. Structure: "The reason [common approach] keeps failing you is because of [hidden mechanism]." Sophisticated buyers want to understand why something fails, not just that it does.
HT4New Category / Opportunity Switch — High-ticket cold framework 4. Structure: "This isn't [existing category]. It's something completely different." Sidesteps the objection "I've tried that."
HT5Identity Wedge — High-ticket cold framework 5. Structure: "The difference between [struggling identity] and [aspirational identity] is [one thing]." High-ticket offers are identity transformations, not just skill purchases.
HT6Cost of Inaction — High-ticket cold framework 6. Structure: "Every [time unit] you wait, you're [losing/missing] [specific cost]." Shifts the question from "can I afford this?" to "can I afford not to?" Cost must be quantified.
HT7Borrowed Authority — High-ticket cold framework 7. Structure: "The same strategy [respected entity] uses to [result]." Transfers trust from a known name to your offer.
HT8Confession / Vulnerability Lead — High-ticket cold framework 8. Structure: "[Admission of failure] taught me [valuable lesson]." Breaks the "guru" facade and builds trust through authenticity.
HT9Epiphany Bridge — High-ticket cold framework 9. Structure: "The moment I realised [insight], everything changed." Story-driven insight transfer — the viewer wants that realisation.
HT10Investment Reframe — High-ticket cold framework 10. Structure: "The question isn't 'can I afford this?' It's '[real cost framing].'" Addresses the price objection directly.
HT11Permission Slip — High-ticket cold framework 11. Structure: "You're allowed to [desire without guilt]." High-ticket buyers often feel guilt about spending on themselves. This removes that barrier.
HT12Dissonance Trigger — High-ticket cold framework 12. Structure: "You say you want [result] but you're still [contradictory action]." Cognitive dissonance → resolution = your offer. Use with empathy — can feel confrontational.
W1Social Proof Stack — Warm retargeting framework 1. Structure: "[Number] of [specific people] have [specific result] — here's what they're saying." Cold mentions proof; warm stacks it with specifics the audience has not yet seen.
W2Objection Reversal — Warm retargeting framework 2. Structure: "I thought [objection] — until [proof/reframe]." Names the specific objection stopping conversion. Warm audiences need objections named, not just addressed.
W3Testimonial Lead — Warm retargeting framework 3. Direct quote from a customer addressing a key concern or result. Choose people similar to the target audience. Works best when the testimonial addresses the exact objection the audience holds.
W4"Remember" Callback — Warm retargeting framework 4. Structure: "Remember when [previous touchpoint]? Here's [update/new reason]." Only use when you can confirm specific prior engagement — must be genuinely relevant.
W5Urgency Trigger — Warm retargeting framework 5. Structure: "[Deadline/limitation] + [specific consequence of missing out]." Must be real scarcity or a real deadline. Fake urgency destroys warm-audience trust.
W6Before/After Story — Warm retargeting framework 6. Structure: "[Specific before] → [Journey hint] → [Specific after]." Warm advantage: the audience has seen claims — now show the person behind them.
W7"Why Now" Hook — Warm retargeting framework 7. Structure: "[Current situation/timing] makes this [uniquely valuable/urgent]." Use when external factors create genuine timeliness.
W8Comparison Hook — Warm retargeting framework 8. Structure: "Unlike [alternative they know], this [key differentiator]." Use when the audience has likely considered or tried alternatives — they are already solution-aware.
W9Implementation Focus — Warm retargeting framework 9. Structure: "Here's exactly how [result] happens." Cold traffic asks "does this work?" Warm traffic asks "can I do this?" Highest mechanism-reveal risk of all 34 frameworks — check the spoken hook line and its Visual-intent metadata hardest for sequence language and element counts.
W10Risk Reversal — Warm retargeting framework 10. Structure: "[Guarantee/safety net] means [you can't lose]." Often a bottom-of-funnel (BOF) hook — use when risk is the final objection to conversion.
Mute-readyMute-ready hook — A hook designed to work entirely without audio, recorded as Mute-ready: yes in its metadata. The intended visual treatment (text-on-screen or voiceless format) is described in the Visual-intent tag and realised in the filming brief. At least 2 hooks in every batch must be mute-ready. The majority of Meta feed viewers scroll with sound off — a hook that depends on audio alone fails them silently.
TEASERTEASER reveal level — The default and most restrictive mechanism reveal setting. A TEASER hook may tease that a method or system exists but must not name any of its elements, the number of elements, or their sequence. The goal is to protect the curiosity gap the full funnel depends on. See the mechanism protection card in §02 for the full forbidden-form list.
Mechanism revealMechanism reveal — How much of the offer's method the hook discloses. Three levels: TEASER (default — no elements, no count, no sequence), PARTIAL REVEAL (one named element, no sequence, no count — only when the brief explicitly requests it), and FULL REVEAL (reserved for body copy, never hooks). Both the spoken hook line and the Visual-intent metadata must comply — a Visual-intent that names elements on screen counts as a reveal even if the spoken line stays silent.
Hook rateHook rate — The percentage of viewers who watch past the opening hook. Not a success metric. The IDA system has falsified hook rate as a quality signal from its own performance data: the account's two highest-hook-rate ads are its two worst performers. Hook rate is a directional diagnostic only — it measures interruption, not persuasion. The column exists in the live_performance Supabase view but is not used as a pass/fail threshold.
CPBCCost Per Booked Call — How much money was spent on Meta ads to get one person to book a sales call. The primary success metric for IDA (Amelia Fenmore) cold traffic. Target threshold lives in expert_config.target_cpbc. A hook that stops the wrong person drives up CPBC even if hook rate looks good.
TOFTop of Funnel — Cold traffic — people who have never seen Amelia Fenmore's content before. Cold-traffic hooks (F1–F12, HT1–HT12) are designed for TOF audiences. The goal is interruption + identity qualification in 1–3 seconds.
MOFMiddle of Funnel — Warm traffic — people who have engaged with content or seen an ad but have not yet booked a call. Retargeting hooks for MOF need recognition first, then new information. Best frameworks: W1 (Social Proof Stack), W6 (Before/After), W8 (Comparison), W9 (Implementation).
BOFBottom of Funnel — Hot warm traffic — people who have seen the free training or visited the booking page but have not yet booked. High-intent retargeting. Best frameworks: W2 (Objection Reversal), W5 (Urgency), W10 (Risk Reversal), W3 (Testimonial).
IDAInterior Design Academy — The expert identity for Amelia Fenmore, an interior-design business coach. The expert namespace in all IDA Supabase rows is ida. IDA cold Meta ads drive traffic to a free training (the intermediate conversion), which converts to booked sales calls (the primary conversion). The hg-cold eval artifacts shown in this dossier are IDA material.
ICPIdeal Customer Profile — The demographic and psychographic profile of the buyer most likely to convert. IDA T1 ICP is burned-out professionals, near-retirees, and full-time employees aged 45–60 who want to career-change into interior design. Hook language is calibrated to ICP tier via the audience-language-dna skill.
Voice BookExpert Voice Book — The structured expert voice artifact built by ad-voice-profile and stored in Supabase Layer 2. Contains the expert's signature phrases, vocabulary, sentence rhythms, and ICP language. Hook generation reads it at every invocation and halts if it is absent or not current. The deprecated name "Layer 3 calibration" must not be used.
TOF / MOF / BOFTop / Middle / Bottom of Funnel — See individual entries above. Funnel stage determines which framework set applies (F/HT for TOF; W1–W10 for MOF/BOF) and which batch header fields are required (warm-only fields: previous exposure, key objection, retargeting sequence).
OpenRouterOpenRouter (model routing proxy) — The application programming interface (API) gateway through which all language model calls in this system are routed. Provides unified billing, model switching, and per-call logs (model identifier, provider, cost) that feed the agent_run audit trail.
SupabaseSupabase (database platform) — The PostgreSQL-based database that hosts the SKL ad creative system data layer. Hook generation reads from Supabase gold views (winning_ads, expert_hook_bank, competitor_intelligence) and never from Fibery, Drive, or local markdown files at runtime.
FiberyFibery (project management and creative record) — The system of record for all creative entities, production status, and Meta performance data. Hermes agents pull Fibery data into Supabase views. Hook generation reads from Supabase — never Fibery directly at runtime.
HermesHermes (always-on agent layer) — The autonomous agent system that maintains the Supabase data layer continuously between operator sessions. Hermes agents scrape competitor ads, pull Fibery performance data, and keep the gold views current without operator commands.
HITLHuman in the Loop — The operator approval gate at every stage of the V1 pipeline. No autonomous execution in the main creative pipeline. The operator reviews and approves hook batches before they proceed to scripting. The delta between the system's raw output and the operator's edited final is the agentic performance signal.