← SplitMetrics LyraCONTENT HISTORY

Update to SplitMetrics Lyra

Snapshot Oct 29, 2026 · 19:07 UTC · version 0.5.0

Collection source: downloaded plugin package.

WHAT CHANGED

Instructions updated for lyra-video-hooks

Skill instructions — Now says: **Canvas layout → `lyra-workflow-layout`.** Every workflow this skill builds or changes is laid out by `lyra-workflow-layout`: sections in reading order with...

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save SplitMetrics Lyra and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Skill instructions

Before

Oct 27, 2026 · 01:04 UTC

4. **Ask only what's needed**, in one message, with the base skill's questions: **Defaults (state, don't ask):** cold traffic · bank of 12 to 15 · N = 4 · 9:16 · Reels / TikTok · English · final 10 to 15 s in mode B, body length + hook i...

After

Oct 29, 2026 · 19:07 UTC

**Canvas layout → `lyra-workflow-layout`.** Every workflow this skill builds or changes is laid out by `lyra-workflow-layout`: sections in reading order with a STEP note above each one, the team's color code, clear node labels and the fi...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -7,6 +7,8 @@
 
 Mini skill. Finds the audience's pains in the Brand Kit, writes a bank of hook ideas, then turns the best 4 (3 to 6) into finished videos in Lyra.
 
+**Canvas layout → `lyra-workflow-layout`.** Every workflow this skill builds or changes is laid out by `lyra-workflow-layout`: sections in reading order with a STEP note above each one, the team's color code, clear node labels and the final check. The layout lines in this file only say which sections this creative needs.
+
 **This is a way of thinking, not a script.** The rules below are defaults and good practice. Use judgment: when a different hook, order or combination serves the idea better, do it and say why in one line. Only a few things are fixed: truth (no invented claims, reviews or numbers), the Brand Kit's facts, Lyra's technical limits, and the user's explicit choices.
 
 **Base skill first.** Everything not written here follows `lyra-video-ad-generation`: the 8 steps, instruction order, app card, plan table and stages, run options with credits, run and report, prompt rules, models (Reference A), audio (C), app UI (D), consistency (E), prompt craft (F), errors (G), de-slop (H), Brand Kit (I), Meta app ads (J). This file only adds what is specific to hooks. If the two disagree, the user wins, then this file, then the base skill.
@@ -58,7 +60,7 @@
    - **Objections:** why they hesitate.
    - **Product truth:** real features, claims, offer, proof, tone of voice, must include / must exclude, forbidden claims.
 3. **If the pains are missing, vague or too generic**, don't block: write 3 to 5 **pain hypotheses** from the app card (each one line, in the audience's words) and ask the user to confirm, pick or correct them. Still propose hook ideas in the same message so work moves.
-4. **Ask only what's needed**, in one message, with the base skill's questions:
+4. **Intake quiz** (base Step 1: one message, multiple choice, options from the Brand Kit, the recommended option first, 4–8 questions; skip what the task or the kit already answers), with these questions plus the base quiz questions that apply:
    - Body already (mode A, hook multiplier) or not (mode B)? Where does the old hook end? Is it a validated winner? Its hook rate, hold rate, CTR if known.
    - Which pain or segment to lead with, if the kit has several (offer your recommendation).
    - Hook preference: visual, verbal, combined, or "you decide" (default: you decide and explain).
@@ -66,7 +68,7 @@
    - How many hooks (default 4)? Tone, types or claims to avoid?
 5. **Propose ideas straight away.** Don't wait for perfect input: the first reply already carries the pain map (or hypotheses) and the first hook ideas.
 
-**Defaults (state, don't ask):** cold traffic · bank of 12 to 15 · N = 4 · 9:16 · Reels / TikTok · English · final 10 to 15 s in mode B, body length + hook in mode A · Seedance 2.5 for people, 2.0 for stylized or UI · 1080p · sound on · voiceover on in mode B.
+**Defaults (state, don't ask):** cold traffic · bank of 12 to 15 · N = 4 · 9:16 · Reels / TikTok · English · final 10 to 15 s in mode B, body length + hook in mode A · Seedance 2.5 for people, 2.0 for stylized or UI · 720p (1080p on the user's choice) · sound on · voiceover on in mode B.
 
 **Debug path from the numbers:**
 
@@ -93,7 +95,7 @@
 1. `list_templates` with tags ["Hook"] (add "UGC" or "Talking Head" for a person to camera).
 2. Offer up to 3 that fit the audience, tone and the hook ideas: title + one line why + preview link. The user may pick one, several or none.
 3. Picked → `get_template`, `use_template`, then adapt: rewrite the Video Script for the app card and the chosen pain with `update_node`, replace every placeholder ("[App Name]", "[main benefit]"), upload the logo, packshot or screenshots it needs.
-4. Templates are fast demos: some use Seedance 2.0 Fast at 720p, some draw UI or a "DOWNLOAD" button. Say once: Seedance 2.5 (people) or 2.0, 1080p, real screenshots (base Reference D). Follow the user's choice.
+4. Templates are fast demos: some use Seedance 2.0 Fast at 720p, some draw UI or a "DOWNLOAD" button. Say once: Seedance 2.5 (people) or 2.0, 720p by default, real screenshots (base Reference D). Follow the user's choice.
 
 Hook templates in Lyra (Oct 2026); always re-check `list_templates`:
 **Visual stop, object POV:** Knock, Blinds, Hook door, Camera is in a bag, Fridge Camera, Trunk POV, Empty Cup Hook, Library Shelf Hook, Morning Girl, Pogo Stick Fall.
@@ -228,7 +230,7 @@
 - **First frame:** the hook moment at frame 0, already moving. It is also the thumbnail, so it must read on its own.
 - **Spoken line** (verbal and combined hooks): aim for about **6 to 10 words**, said within ~3 s; count the words. Start on the key word; no "So", "Okay", "Hey guys". A longer line is fine only if it still lands by second 3.
 - **Text on screen:** 2 to 6 words, echoes the line (doesn't contradict it), on frame 1 in full, marked for post (added in the Video Editor, never in a prompt), inside the safe zone.
-- **Sound:** what is heard in the first second. Sound stays on at generation.
+- **Sound:** what is heard in the first second. Sound stays on at generation. When someone speaks in the clip: no music under the voice ("no music, no background music, no soundtrack, no score" in that clip's prompt, base Reference C). Clips without speech may keep their music hits.
 - **Visual beat** (combined hooks): 0.5 to 1 s, then the line starts on top of it or right after; both tell one idea.
 
 **Checks for every line:** one idea · simple (about a 5th grade reading level, no corporate or "AI" marketing words) · sounds natural said aloud · specific to this app, audience and moment (if it could sell a hundred apps, rewrite) · true (nothing outside the Brand Kit, app card or verified research) · different from the other hooks.
@@ -307,10 +309,12 @@
 
 ## Video Editor per hook
 
-One `video_composer` per hook, in playback order: hook clip → body clip(s) → end card, then VO and music. Everything except the hook is identical across variants: same body trims, same music (starting at 0 so the hit lands on every hook), same body VO and CTA, same end card. Keep the hook's own sound or line; lower the body clip's sound if it clashes. Hook text and captions are added in the editor UI: tell the user what to add and where. If the hook opens a loop or promises a list, check the body delivers it.
+One `video_composer` per hook, in playback order: hook clip → body clip(s) → end card, then VO and music. Everything except the hook is identical across variants: same body trims, same music (starting at 0 so the hit lands on every hook), same body VO and CTA, same end card. Keep the hook's own sound or line; lower the body clip's sound if it clashes. Hook text and captions are added in the editor UI: tell the user what to add and where. Captions, if the user wants them (asked in the approval message), follow the base rule (`lyra-video-editor` → Captions: size 80, at 75% of the height, under the face); the hook text on frame 1 is a headline, placed in the safe zone. If the hook opens a loop or promises a list, check the body delivers it.
 
 ## Run options for hooks
 
+**Run order, not a menu** (base Step 6): after the user's yes, run all of it in this order without offering options. Stop between stages (the look first, then the rest) only when the user asked for it, or when the plan is expensive and that was said in the approval message.
+
 As in the base skill, credits read from the nodes and multiplied by N; the hook bank costs nothing. **A. Hook images (recommended):** all N keyframes and characters · **B. Hook clips** for the frames the user picked · **C. Everything** → N Video Editors.
 
 ---
@@ -335,6 +339,7 @@
 
 | Mistake | Prevention |
 |---|---|
+| A hook clip where someone speaks comes with music under the voice | No-music sound line in every clip with speech; our music in the Video Editor |
 | Hooks written without reading the Brand Kit | Pain map first; every hook tied to a real pain or desire |
 | Waiting for perfect input before proposing anything | Pain hypotheses + first ideas in the first reply |
 | Visual beat and line say two different things | One idea per hook across all layers |
@@ -377,9 +382,3 @@
 - Judge winners by CPA / ROAS (cost per install, trials, payers), not hook rate alone.
 
 Then offer: save winning and losing hooks (hypothesis, kind, pain, line, visual, hook rate) to a **hook repository** doc in the project; the next round from the unused bank; the winning hook on other ads of the same angle; Better on the winner; other sizes or languages (matching skills). A winner lives about 2 to 6 weeks: start the next round before it fatigues.
-
----
-
-## Sources behind this skill
-
-GBP and More, Better, New creative frameworks · creative testing and data reporting practice · a direct response hook-writing manual (awareness levels, voice of customer, hook categories) · Lyra's own Creative Brief and Video Script nodes and Hook templates · 2026 articles on hooks: Greenfrog Labs (Apr), Vmobify (May), Vidovo (Jun), Kineclip (Jul), AppsFlyer State of Creative Optimization 2026 (data to Q2 2026), RocketShip HQ (updated Sep), UGC Copilot (Oct), Lightreel (Oct); on catchy and brainrot formats: Opus (Apr), ContentGrip (May), Ortheon (Jul), Starrd monthly AI video trends (Jun to Oct), Influencers Time on chat-thread ads (Oct), McGraw Hill on AI slop backlash (May), Fast Company on brand brainrot (Jan). Their numbers are mostly vendor data: guidance, not law.
Full technical diff · 1 changed fields

changed /skill_md_contents

BEFORE
"---\nname: lyra-video-hooks\ndescription: \"Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \\\"hooks for my app\\\", \\\"4 hook variants\\\", \\\"write hooks / a hook bank\\\", \\\"a visual hook\\\", \\\"a catchy / brainrot hook\\\", \\\"hook multiplier\\\", \\\"test new openings on this ad\\\", \\\"the hook is weak / hook rate dropped\\\", \\\"a stronger first 3 seconds\\\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation.\"\n---\n\n# lyra-video-hooks\n\nMini skill. Finds the audience's pains in the Brand Kit, writes a bank of hook ideas, then turns the best 4 (3 to 6) into finished videos in Lyra.\n\n**This is a way of thinking, not a script.** The rules below are defaults and good practice. Use judgment: when a different hook, order or combination serves the idea better, do it and say why in one line. Only a few things are fixed: truth (no invented claims, reviews or numbers), the Brand Kit's facts, Lyra's technical limits, and the user's explicit choices.\n\n**Base skill first.** Everything not written here follows `lyra-video-ad-generation`: the 8 steps, instruction order, app card, plan table and stages, run options with credits, run and report, prompt rules, models (Reference A), audio (C), app UI (D), consistency (E), prompt craft (F), errors (G), de-slop (H), Brand Kit (I), Meta app ads (J). This file only adds what is specific to hooks. If the two disagree, the user wins, then this file, then the base skill.\n\n**Method.** GBP (Gut, Brain, Pocket) and the More, Better, New iteration framework. This skill is **MORE**: new Guts on the same Brain and Pocket. Hook writing follows direct response practice: audience awareness, voice of customer, one idea per hook, every claim true.\n\n---\n\n## How to think about a hook\n\n**What it is.** The hook is the **Gut** of the ad: the first 1 to 3 s. It has up to four layers that fire together: **visual** (the first frame and the first movement), **verbal** (the first spoken line), **text** (the caption on frame 1), **sound** (SFX, music hit, silence). Its job: stop the scroll in about 1 s and, by 3 s, tell the right viewer \"this is about your problem\". Meta reads early retention from the first second, so frame 1 already has to move.\n\n**Three kinds of hook.** Decide this first, for every idea:\n\n| Kind | What happens in 0 to 3 s | Works best when |\n|---|---|---|\n| **Visual hook** | the picture does the work: an action, a surprise, a strange situation, a transformation; no one needs to speak (music, SFX, a caption) | the pain or the result can be *seen*; music-led or ASMR videos; one video for many languages; cinematic or surreal concepts |\n| **Verbal hook** | a person speaks first: a pain line, a question, a confession, a callout; the picture is a face already mid-sentence | UGC and talking head; the pain is a feeling or a thought that is hard to show; the audience needs to be named |\n| **Combined hook (stack)** | a short visual beat first (0 to 1 s), then the spoken line right on top of it (1 to 3 s); example: a clap in front of the camera, then the girl says the pain in the audience's words | most UGC app ads: the visual stops the thumb, the line tells the right person \"this is you\" |\n\n**How to choose.** Think about the idea of the whole video, not the hook alone:\n\n- What is the strongest thing to show or say in the first second? Lead with it.\n- Can the pain be seen? Lean visual. Is it a thought or a feeling? Lean verbal, maybe with a small visual beat.\n- UGC and talking head: a combined hook is usually strongest (a physical beat + a pain line). Cinematic, surreal or music-led: a visual hook alone is often enough. Reels moves fastest: keep visual tricks short and get to the person quickly.\n- Two layers must tell **one** idea. A visual beat and a line that say different things fight each other; then pick one.\n- One strong hook beats two weak ones stacked. Stack only when each layer adds something: the visual catches, the line qualifies. A **double hook** (a second hook at 3 to 6 s) is a separate test (Better), not the default.\n- Sometimes the pain itself is the hook; sometimes the hook is a surprise and the pain comes right after. Decide per idea.\n\n**The story the hook opens (default spine).** Hook (0 to 3 s) → **the pain**, shown on a person so the viewer recognises themselves (3 to ~6 s) → **how the app solved it**, one real feature, the change visible (~6 to 12 s) → CTA. This is the default for app ads (problem-led hooks take most app video spend). Other spines are fine when they fit: outcome first then how, demo first, old way vs new way, a story cold open. Choose what presents the idea best and say why in the plan.\n\n**Final test for every hook:** relevance + curiosity + a reason to care. Would the right person understand it at once, recognise something from their life, and want the next seconds?\n\n**Main character of the first seconds (3P):** **Problem** (the pain, on a person living it) · **Product** (the app in use, real screens) · **Persona** (someone the viewer sees as themselves). A strong hook also uses at least two of: visual interrupt · relevance signal (the viewer's situation, or the audience named) · promised outcome · open loop (always closed later).\n\n**Principles:** sell the outcome, not the feature; identity and future-state lines (\"What if you woke up actually rested?\") usually beat feature lines (\"Track your sleep with AI\") · clear beats clever · if you talk about it, show it · specific beats vague (a real number, a named audience, an exact moment) · negative and contrarian framings often stop more people, but never shame the viewer · the ad must not look like an ad (native, phone-real) · humour and edge when the brand allows · don't open on the logo or the app name · no price in the hook for cold traffic (a free trial can open the ad when it's the real offer).\n\n---\n\n## Step 1 additions: Brand Kit and the audience's pains first\n\nHooks are built on the **Brand Kit** and on the **real pains of the audience**. Before any idea:\n\n1. **Find the Brand Kit:** the one in the chat, the one assigned to the workflow, or `list_brand_kits` (one kit → use it and say so; several → ask which). No kit → ask the user to send it or connect one (base Reference I).\n2. **Read it fully** and pull out a short **pain map**:\n   - **Audience:** who, which segments, their situation and daily moments where the problem shows up.\n   - **Pains:** what hurts, in their words if the kit has them; what they already tried and why it failed.\n   - **Desires:** the outcome they want, the identity they want (\"someone who sleeps\", \"someone who has money left\").\n   - **Objections:** why they hesitate.\n   - **Product truth:** real features, claims, offer, proof, tone of voice, must include / must exclude, forbidden claims.\n3. **If the pains are missing, vague or too generic**, don't block: write 3 to 5 **pain hypotheses** from the app card (each one line, in the audience's words) and ask the user to confirm, pick or correct them. Still propose hook ideas in the same message so work moves.\n4. **Ask only what's needed**, in one message, with the base skill's questions:\n   - Body already (mode A, hook multiplier) or not (mode B)? Where does the old hook end? Is it a validated winner? Its hook rate, hold rate, CTR if known.\n   - Which pain or segment to lead with, if the kit has several (offer your recommendation).\n   - Hook preference: visual, verbal, combined, or \"you decide\" (default: you decide and explain).\n   - Cold or warm traffic; the store link for research; reviews, past winning hooks, viral videos the audience loves.\n   - How many hooks (default 4)? Tone, types or claims to avoid?\n5. **Propose ideas straight away.** Don't wait for perfect input: the first reply already carries the pain map (or hypotheses) and the first hook ideas.\n\n**Defaults (state, don't ask):** cold traffic · bank of 12 to 15 · N = 4 · 9:16 · Reels / TikTok · English · final 10 to 15 s in mode B, body length + hook in mode A · Seedance 2.5 for people, 2.0 for stylized or UI · 1080p · sound on · voiceover on in mode B.\n\n**Debug path from the numbers:**\n\n| Signal | Diagnosis | What to do |\n|---|---|---|\n| Low hook rate | The hook doesn't stop people | Stronger visual beat in frame 1, or a sharper pain; if the angle isn't validated, the angle may be the problem (tell the user) |\n| High hook rate, low hold rate or CTR, high CPM | Stops the wrong people, or the body doesn't keep the hook's promise | Name the audience in the line, show what they recognise, align the hook with what the body delivers |\n| Good hook rate, low hold rate | The body is weak | Not a hook problem: Better (double hook, social proof after the hook, reorder blocks) |\n| Good CTR, weak conversion | Offer, store page or expectations | Not a hook problem; check the hook doesn't promise more than the app gives |\n\n## Step 1a: hook research (voice of customer)\n\nWhen there is a store link, website or reviews; it takes minutes and makes every hook more specific.\n\n1. **Store page / website:** title, subtitle, description, screenshot captions, ratings. Note the brand voice and the real features and claims.\n2. **Reviews and comments:** sort into four kinds of language. **Pain** (the frustration before the app) · **Outcome** (what they wanted, the relief) · **Objection** (why they hesitated) · **Discovery** (what surprised them). Keep repeating patterns, drop one-offs.\n3. **Alternatives** (when useful): what the audience uses now and what annoys them about it; claims every app in the category repeats (avoid them); what this app does differently that matters.\n4. **Add to the pain map** in the app card: main pain · desired outcome · strongest real benefit · differentiator · objections · customer words worth quoting.\n\nCouldn't browse or found nothing → say so and work from the Brand Kit. Never invent reviews, ratings, user numbers, press or awards.\n\n## Step 1b: Lyra Hook templates\n\n1. `list_templates` with tags [\"Hook\"] (add \"UGC\" or \"Talking Head\" for a person to camera).\n2. Offer up to 3 that fit the audience, tone and the hook ideas: title + one line why + preview link. The user may pick one, several or none.\n3. Picked → `get_template`, `use_template`, then adapt: rewrite the Video Script for the app card and the chosen pain with `update_node`, replace every placeholder (\"[App Name]\", \"[main benefit]\"), upload the logo, packshot or screenshots it needs.\n4. Templates are fast demos: some use Seedance 2.0 Fast at 720p, some draw UI or a \"DOWNLOAD\" button. Say once: Seedance 2.5 (people) or 2.0, 1080p, real screenshots (base Reference D). Follow the user's choice.\n\nHook templates in Lyra (Oct 2026); always re-check `list_templates`:\n**Visual stop, object POV:** Knock, Blinds, Hook door, Camera is in a bag, Fridge Camera, Trunk POV, Empty Cup Hook, Library Shelf Hook, Morning Girl, Pogo Stick Fall.\n**Fourth wall / surreal reveal:** Screen Pull, Balcony, Billboard App Reveal, Las Vegas Sphere, Office-core girl.\n**Visual metaphor of the pain:** Clear Your Head, Swipe Away the Chaos, Sofa.\n**Format hijack:** Breaking news, Interview POV, Stand-Up Comedy, Angry Boss, Hidden Cam, Subway Surfers Switch.\n**Product reveal:** Phone Screen Reveal.\n\n---\n\n## Hook base: what you can draw from\n\nA reference, not a menu to tick off. Combine, adapt and invent; always start from the Brand Kit's pain. The ad concept is in brackets where it fits.\n\n### Visual hooks (the picture does the work)\n\n| Type | What it looks like | Watch out |\n|---|---|---|\n| Physical interrupt | a clap in front of the lens, a knock on the lens from inside, a hand covering then uncovering the lens, an object tossed at the camera, blinds or a door snapping open | must lead into the pain within 3 s; one beat, not a show |\n| Mid-action open | start at the peak moment: the phone already flying onto the bed, the mess already everywhere, the reaction already happening | no setup before it |\n| Before state | the problem on screen: 47 unread notifications, a chaotic calendar, an empty fridge at 11 pm, the tired face in phone light (Problem) | show it on a person, not only an object |\n| Incomplete visual | a strange situation without explanation that the next seconds answer | answer it by 3 to 5 s |\n| Transformation cut | hard cut before → after on a beat, same framing and light (Transformation) | specific, believable; no body before/after for health apps |\n| Demo first | a thumb already using the core feature on a real screen (Demonstration) | real screenshots only; keep it short |\n| Unusual POV | camera inside a bag, fridge, trunk, bookshelf; the person opens it and looks in | the reveal leads to a person who talks or shows the pain |\n| Fourth wall | the character looks into, reaches out of or pulls the viewer into the screen | one clear gesture |\n| Visual metaphor / hyperbole | the pain made physical: a huge heavy head, notifications flooding the room, a to-do list unrolling to the floor | exact cause and effect order in the prompt |\n| Reaction / micro-expression | a genuine face reacting: the pause, the eyebrow, the laugh | not a forced \"wow\" |\n| Sensory / ASMR close-up | tactile macro detail, satisfying motion, 1 to 2 s with no voice | needs a link to the app (a satisfying \"done\" tick, an inbox going to zero) |\n| Format hijack visual | a news studio, a street interview mic, a stand-up stage, an office meeting (Platform Trends) | only formats this audience follows; no real channels or brands |\n| Text-first frame | a bold claim or question as the caption on frame 1, over a moving shot | full text at once, no letter-by-letter fades |\n\n### Verbal hooks (a person says it)\n\n| Type | Example line | Watch out |\n|---|---|---|\n| Pain callout | \"Still scrolling at 2 am? This one's for you.\" | specific pain from the pain map, not generic |\n| Audience callout | \"Night owls who hate mornings, listen.\" | the fix when the hook stops the wrong people |\n| Diagnosis | \"Here's why your to-do list never gets shorter.\" | the body must give the reason |\n| Mistake / contrarian / negative | \"Stop setting ten alarms. It's making mornings worse.\" | challenge the habit, never insult or scare |\n| Question with a stake | \"Why is your budget gone by the 15th?\" | no yes/no questions |\n| Confession / low expectation | \"I didn't expect a sleep app to actually work.\" | a creative scene, not a fake review |\n| First person | \"I used to lose two hours every night scrolling.\" | never presented as a verified real user |\n| Story cold open | \"Lying in bed at 3 am. Again.\" | close the loop in the body |\n| POV | \"POV: you finally fell asleep before midnight.\" | must match the audience's real life |\n| Identity / future state | \"What if you woke up actually rested?\" | tied to what the app really does |\n| Specific outcome / direct benefit | \"I saved my first 200 euros in a month.\" | numbers only from the Brand Kit or real reviews |\n| Objection first | \"I thought budgeting apps were a waste of time.\" | the body answers the doubt |\n| Third-person proof | \"My sister hasn't missed a deadline since March.\" | creative scene; real proof only as proof |\n| Dialogue | \"Wait, you went to bed before midnight?\" \"Yeah, since…\" | short lines, clear roles |\n| People talking about the prospect | \"She's been 'going to sleep' for two hours.\" | recognition, never humiliation |\n| Compliment | \"How are you always on time now?\" | shows a real benefit; usually not about looks |\n| List / formula | \"Two mistakes everyone makes with their savings.\" | deliver exactly what was promised |\n| Insider / what's new | \"Nobody tells you this about morning routines.\" / \"This app just changed one thing.\" | true and specific |\n| Unique feature | \"It reads every label, so you shop twice as fast.\" | feature → benefit → why it matters to you |\n| Social proof / authority / statistic | a real rating, a real user count, a real expert, a real number | verified only; none available → demo instead |\n| Stakes / FOMO | \"Every month you wait costs you another 50 euros.\" | real stakes only, no fear-mongering |\n| Offer first | \"Seven days free. Here's why I kept it.\" | warm traffic or real risk reversal; no price |\n\n### Sound (the fourth layer)\n\nAn SFX on frame 1 (click, zip, knock, slurp, notification ping), a music hit on the cut, a sudden silence, or a trending sound the audience knows. Sound-led hooks are weak with sound off, so the picture or caption must still carry the idea.\n\n### Catchy and brainrot hooks (app-native, attention-first)\n\nFeed-native formats that win attention by being weird, chaotic, funny or \"not an ad\". They borrow the language of the feed (memes, AI characters, chats, split screens) and then turn to the app fast. Strongest with Gen Z and Gen Alpha and for casual, social, entertainment, study, productivity and habit apps. For trust-heavy categories (finance, health, premium) borrow the logic (surprise, speed, humour), not the full chaotic look.\n\n| Format | What it looks like | How it turns to the app |\n|---|---|---|\n| Brainrot absurd | an original absurd AI character or situation, deliberately lo-fi, a confident dramatic voice saying near-nonsense, bass-heavy sound, fast jump cuts | the absurd thing *is* the pain in disguise (a screaming alarm-clock creature = mornings), then a hard cut to a real person and the app |\n| Talking object / pet | the phone, the alarm clock, the to-do list, the brain or a pet talks to camera like a colleague | the object complains about the user's habit (the pain) and \"recommends\" the app |\n| AI micro-drama | an episodic mini-series with original characters (fruit, objects, habits as characters), reality-show tropes, a twist each episode | the app is the plot twist or the solution of the episode; a series gives several ads |\n| Split screen | top: a person talking or a story; bottom: a satisfying loop (kinetic sand, slime, marble run, an original game-like run) | the story on top is the pain and the app; the loop only holds the eye |\n| Story with TTS | a short first-person story read by a synthetic voice over a satisfying or POV background, captions word by word | the story's turn is how the app helped |\n| Chat thread | stylised message bubbles appear one by one: \"wait, did you actually try it?\" | the reply resolves into the app; based on real customer conversations, lightly fictionalised |\n| Comment reply | the video opens on a comment bubble: \"does this app actually work?\" and the creator answers | the answer is the demo; only real comments or clearly hypothetical ones |\n| Trend remix | an AI trend mechanic the audience knows right now (action figure in a box, earth zoom out, bullet time, 80s camcorder diary, a dance), with the user's character | cut to the app within 2 to 3 s; the trend has nothing to sell on its own |\n| Absurd scale or physics | something impossibly big, tiny or heavy (a giant notification crushing the room, a tiny person drowning in emails) | the app restores normal scale |\n| Calm contrast | a slow, quiet, hand-painted or soft scene with gentle music in a loud feed | stands out by contrast, then the app appears as the calm |\n\n**How to use them well:**\n\n- Entertain first, but the link to the pain or the app must land within about 3 s; a weird opener that never connects brings cheap views and weak users.\n- One absurd idea per hook, instantly readable; no inside jokes the audience has to research.\n- Invent **original** characters and situations. Never use known meme characters (Skibidi, Italian brainrot creatures and the like), real games (Subway Surfers…), shows or brands unless the user owns the rights; the Lyra \"Subway Surfers Switch\" template needs an original background.\n- Deliberately lo-fi is a style; accidentally uncanny is slop. Faces and hands of real-looking people still follow de-slop; brands that ran sloppy AI ads (Valentino, McDonald's NL) had to pull them.\n- Chats, notifications and comments are stylised, not copies of iOS, WhatsApp, TikTok or system UI (platforms restrict ads that imitate organic interface elements); no fake read receipts or fake contact photos; a fictional chat is never presented as a real customer conversation.\n- Keep the rhythm: a new stimulus every 2 to 3 s (cut, zoom, sound hit).\n- Trends move fast: the brainrot peak was late 2025 to early 2026 and some audiences already call it cringe. Use the mechanic, keep it fresh, check what is trending now (TikTok Creative Center, the user's own feed) before building.\n- Sound matters most here: a dramatic narrator, sped-up voice, bass hit, a strange jingle. Music is generated from a description (no artist names, no copied tracks).\n\n### What feels stale in 2026 (avoid unless twisted)\n\nRing-light testimonial that reads as an ad in half a second · forced enthusiasm (\"this changed my life\", \"obsessed\") · opening with a feature list · vague before/after · \"Hey guys, today I'm…\" · logo or app name first · a slow fade in.\n\n---\n\n## Audience awareness: which hooks for whom\n\nApp install ads on cold traffic are mostly levels 1 to 3; retargeting 4 to 5. Unknown → mostly cold plus one or two warm.\n\n| Level | The viewer | What usually works |\n|---|---|---|\n| 1. Unaware | doesn't see the problem as a problem | a relatable moment, a visual metaphor, humour, mid-action, POV, catchy and brainrot formats (talking object, micro-drama, trend remix, split screen); no hard pitch |\n| 2. Problem aware | knows the pain, not the fix | pain callout, diagnosis, mistake, before state, first person, people talking about the prospect |\n| 3. Solution aware | knows fixes exist, not which | old way vs new way, question with a stake, list, outcome first, transformation cut |\n| 4. Product aware | knows the app, not why it's worth it | demo first, unique feature, objection first, compliment, proof |\n| 5. Most aware | close to installing | offer first, real proof, a reason to act now (real urgency only) |\n\n## Where hook ideas come from (in this order)\n\n1. **The Brand Kit's pains and desires** (the pain map). Every hook ties to one of them.\n2. **Customer words:** lines from real reviews, comments, support messages (the user, the Brand Kit, store research). Short phrases, never long copied reviews; an AI person saying the line is never presented as the real reviewer.\n3. **Past winning hooks** of this app (ask for the hook repository), above all when the current winner has a low hook rate.\n4. **Modelled viral TikTok / Reels hooks** the audience loves: copy the mechanism (first frame, twist, line structure), never the video, its people or its sound.\n5. **The hook base above**, to widen the set.\n\n## Step 2 addition: the hook bank\n\nBefore the plan, write the bank in the chat; it is part of the concept the user approves.\n\n- **12 to 15 ideas** by default (30 on request), each a different idea: a different pain, outcome, situation, perspective or format, not one idea reworded. Mix visual, verbal and combined hooks; mix direct (names the app or feature) and indirect (starts with a situation) openers; cover the audience's awareness levels; a few with humour or edge; when the audience and brand fit, one or two catchy or brainrot ideas.\n- One line per idea, with tags:\n  > H07 · combined · problem aware · Problem · pain: \"can't fall asleep\" · visual: clap in front of the lens, she's in bed in phone light · line: \"If your brain starts talking at 2 am, listen.\" (9 words) · text: \"2 am again?\" · hypothesis: night-scrollers stop for a sleep pain said in their words\n- **Recommend N** for production (default 4) with one line why. A good set of 4 usually has different kinds (at least one visual-led and one verbal-led or combined), different pains or angles from the pain map, different main characters, and one idea from the user's own sources if they have any. Guidance, not a quota: explain your choice.\n- After approval, save the whole bank in a user text node \"Hook bank\" in the workflow (picked ones marked) for the next MORE round.\n\n## Writing one hook\n\nWrite the muted version first: the first frame plus text must work with sound off.\n\n- **First frame:** the hook moment at frame 0, already moving. It is also the thumbnail, so it must read on its own.\n- **Spoken line** (verbal and combined hooks): aim for about **6 to 10 words**, said within ~3 s; count the words. Start on the key word; no \"So\", \"Okay\", \"Hey guys\". A longer line is fine only if it still lands by second 3.\n- **Text on screen:** 2 to 6 words, echoes the line (doesn't contradict it), on frame 1 in full, marked for post (added in the Video Editor, never in a prompt), inside the safe zone.\n- **Sound:** what is heard in the first second. Sound stays on at generation.\n- **Visual beat** (combined hooks): 0.5 to 1 s, then the line starts on top of it or right after; both tell one idea.\n\n**Checks for every line:** one idea · simple (about a 5th grade reading level, no corporate or \"AI\" marketing words) · sounds natural said aloud · specific to this app, audience and moment (if it could sell a hundred apps, rewrite) · true (nothing outside the Brand Kit, app card or verified research) · different from the other hooks.\n\nConcept line per picked hook (goes into the plan):\n> C1H2 · combined · problem aware · Problem · Visual: a clap in front of the lens, she's sitting in bed in phone light at 2 am. Line: \"If your brain starts talking at 2 am, listen.\" Text (post): \"2 am again?\" Sound: the clap, then silence. Then: her pain (3 to 6 s), the app's wind-down timer (real screenshot), she falls asleep, CTA.\n\n---\n\n## Deliverable and modes\n\n1. A **hook bank** (12 to 15 ideas) saved in a \"Hook bank\" text node.\n2. N hook clips and **N finished videos**, one per picked hook, each in its own Video Editor. All variants share the same body (Brain), CTA (Pocket), music and end card, so the test isolates the hook.\n\nName every final with a code the media buyer can paste into Ads Manager: `B{batch}-A:{angle}-F:{formula}-C{concept}H{hook}-Iteration`, e.g. `B3-A:SleepIn5min-F:PAS-C1H2-Iteration`. Node label: \"Final: C1H2 · combined clap + pain line\".\n\n**When MORE is the right move:** right after an ad is validated · hook rate low while hold rate and CTR are fine · a winner fatiguing after 2 to 6 weeks (keep audience and angle, replace only the hook) · a losing streak (new hooks on a past winner). Not this skill: weak body or high CPC → Better; dead angle → new concept or angle (base skill). Only hook texts wanted → stop after the bank.\n\n| Mode | When | What gets built |\n|---|---|---|\n| **A. Hook multiplier** (true MORE; default when a body exists) | The user has a body: an existing or winning ad, a Lyra workflow, a video to upload | the original ad as control + N new hooks, each a hypothesis; only the first 2 to 3 s change → N Video Editors (hook N + same body, music, CTA) |\n| **B. Hook-led short ads** (default when there is no body) | Nothing exists yet | N ads of 10 to 15 s on the default spine: hook → pain → app solves it → CTA; pain, solution and CTA as identical across variants as the hooks allow |\n\nMode A body sources: the user's own Lyra workflow (build the hooks inside it, in a new Section) or a finished video (create_upload + attach_upload). Results can't be connected across workflows.\n\n### Hook multiplier: testing hypotheses with the same body\n\nOnly the first 2 to 3 s change; everything after the cut point stays exactly as it is. That makes each new hook a clean test of one **hypothesis**, and the cheapest way to learn what stops this audience.\n\n**1. Hypothesis per hook.** Every hook in the bank carries one line: \"We think [segment] stops for [pain / angle / hook kind / format].\" Decide what the round is testing and vary that, keeping the rest close:\n\n- **Which pain or desire** hits hardest (same kind of hook, different pain from the pain map).\n- **Which kind** works: visual vs verbal vs combined (same pain, different kind).\n- **Which segment** responds: a callout per segment (students vs parents vs freelancers).\n- **Which framing:** negative vs positive, question vs statement, identity vs feature.\n- **Which format:** UGC person vs catchy or brainrot vs demo.\n- **Finer tests** for a winner: same line with a different first frame, or same first frame with a different line.\n\nA round can mix hypotheses, but say which hook tests what, so the result teaches something.\n\n**2. Control.** Keep the original ad with its own hook in the test as the control (champion). New hooks are challengers; a hook wins only if it beats the control on the user's KPI.\n\n**3. The cut point.** Find where the old hook ends (usually 2 to 3 s; ask the user or read the composition in the Video Editor). Trim the body from that point (`trim.sourceStartMs`). Check that the body still makes sense without the old hook: the voiceover doesn't start mid-sentence, no line refers back to the old opening, the first body frame follows the new hook naturally. If the old hook was spoken over the body, trim the VO too and keep the rest identical. The new hook ends on an end state that cuts cleanly into the body's first frame (cut on action, match cut, or a deliberate hard cut).\n\n**4. Scale.** 4 to 6 new hooks per round is a good default; more (up to 10 to 20) when the budget allows, built in rounds from the bank. Each round's winners and losers go to the hook repository with the hypothesis they tested.\n\n**5. Reading the result.** The winning hypothesis is the learning, not only the winning video: a winning pain or segment feeds the next ads, angles and Brand Kit notes; a winning kind or framing becomes the default for the next round.\n\n**Double hook (optional, mode A):** a second proven hook right after the first (0 to 3 s, then 3 to 6 s). Offer as one extra variant when hold rate is low or CPC is high; it is a Better test.\n\n## Best way to build it\n\nThe user's explicit choices override any row. Models and prices: base Reference A.\n\n| If the hook is | Best approach (graph) | Models |\n|---|---|---|\n| **Combined, UGC person** (common default) | character image → hook keyframe (the visual beat at frame 0) → one clip with the beat, then the spoken line in quotes, then the pain; or the hook as its own 4 to 5 s clip trimmed to 1.5 to 3 s | nano-banana-pro · seedance-2.5 |\n| **Verbal, talking head** | character image → clip starting mid-sentence, the line in quotes, natural gestures | nano-banana-pro · seedance-2.5 |\n| **Visual, no speech** (object POV, metaphor, transformation, ASMR) | hook keyframe → clip 4 to 5 s with exact action order; music or SFX; caption in post | seedance-2.0 (frame) or seedance-2.5 (refs) |\n| Dialogue or \"people talking about the prospect\" | two character images as references → one clip, who says what by [ImageN] | seedance-2.5 |\n| Shows the app (demo, feature) | user screenshots → phone image → short clip or UI insert (base Reference D) | seedance-2.0 (frames) or 2.5 (refs) |\n| Mode A, same person as the body | a still of that person from the body as reference; no still → a faceless hook | seedance-2.5 |\n| Mode B, full short ad | per hook: character → one multi-shot clip 10 to 15 s with \"cut to\" between hook, pain and solution, or separate clips joined in the Video Editor; VO + music; logo end card | seedance-2.5 · nano-banana-pro |\n| Lyra Hook template picked | use_template → adapt (Step 1b) → one Section per hook | as the template, upgraded |\n| Double hook variant | hook clip A + hook clip B + body → one extra Video Editor | as above |\n| Only hook texts | stop after the bank | none |\n| Catchy: talking object, AI character, micro-drama | original character image (nano-banana-pro, the style chosen: lo-fi, cartoon, 3D) → clip with the line in quotes; one character reference for the whole series | nano-banana-pro · seedance-2.0 (stylized) or 2.5 (realistic) |\n| Catchy: split screen | top clip (person or story) + bottom clip (original satisfying loop) → Video Editor with two video layers positioned top and bottom (position x/y/width/height), captions in the editor | seedance-2.5 + seedance-2.0 |\n| Catchy: chat thread, comment reply | message or comment images designed with exact text in quotes (stylised, not a copy of a real messenger) → laid over the video in the Video Editor, one by one | nano-banana-pro + video_composer |\n| Catchy: trend remix | the trend mechanic as an image or clip with the user's character → hard cut to the app part | per trend: seedance-2.5 or kling (frames) |\n| Many hooks, tight budget | hook clips on a draft model, rerun winners on the recommended one | seedance-2.0-fast |\n\n**Hook clip length.** Seedance's minimum is 4 s: generate 4 to 5 s, put the hook beat in the first 1.5 to 3 s, plan a clean cut point (end state) into the next shot, trim in the Video Editor.\n\n**Layout.** Section \"Hook bank\" (text node), one Section per hook (its nodes + its Video Editor), one Section for the shared body, music and VO. Labels: \"C1H1: clap + pain (frame)\", \"C1H1: clap + pain (clip)\", \"Final: C1H1 · clap + pain\".\n\n## Video Editor per hook\n\nOne `video_composer` per hook, in playback order: hook clip → body clip(s) → end card, then VO and music. Everything except the hook is identical across variants: same body trims, same music (starting at 0 so the hit lands on every hook), same body VO and CTA, same end card. Keep the hook's own sound or line; lower the body clip's sound if it clashes. Hook text and captions are added in the editor UI: tell the user what to add and where. If the hook opens a loop or promises a list, check the body delivers it.\n\n## Run options for hooks\n\nAs in the base skill, credits read from the nodes and multiplied by N; the hook bank costs nothing. **A. Hook images (recommended):** all N keyframes and characters · **B. Hook clips** for the frames the user picked · **C. Everything** → N Video Editors.\n\n---\n\n## Prompt rules (hooks)\n\n| Node | Write | Avoid |\n|---|---|---|\n| Hook bank (text node) | each idea with number, kind (visual / verbal / combined), awareness level, main character, pain, visual, line, text, word count; picked ones marked | long explanations |\n| Hook keyframe | the hook moment itself at frame 0: the visual beat mid-action or the person mid-sentence, the pain visible, phone-real for UGC, 9:16 | an establishing shot; text; drawn UI or logos |\n| Hook clip | action from frame 1; for combined hooks, the exact order (\"she claps once in front of the lens, lowers her hands, looks into the camera and says: '…'\"); the surprise readable in ≤1.5 s; spoken line in quotes; who says what in dialogue; cause and effect; the end state at the cut point | slow build up; two surprises; the caption text in the prompt; a polished \"ad\" look |\n| Hook VO (if separate) | the exact hook line as its own short VO node; body VO shared | filler openers; price; claims not in the Brand Kit |\n\nNo third-party brands, games, channels, landmarks used as brands, or famous people in prompts unless the user owns the rights.\n\n## Truth and brand safety\n\n- **Brand safety** (Lyra's System Preamble, base Reference B): no profanity, no political statements, no unsubstantiated health claims, no competitor disparagement. The Brand Kit's **forbidden claims are enforced absolutely**, in every hook line, caption, first frame and VO; if the user asks for one, say once that it is on the kit's forbidden list and leave it out unless the user confirms the kit is outdated.\n- Hooks never carry a claim, number or offer that isn't in the Brand Kit or the user's message; a provocative or negative hook challenges a habit, never the viewer, a group or a competitor.\n\n## Common mistakes (hooks)\n\n| Mistake | Prevention |\n|---|---|\n| Hooks written without reading the Brand Kit | Pain map first; every hook tied to a real pain or desire |\n| Waiting for perfect input before proposing anything | Pain hypotheses + first ideas in the first reply |\n| Visual beat and line say two different things | One idea per hook across all layers |\n| A visual trick with no link to the pain | The trick leads into the pain by second 3 |\n| Two weak hooks stacked instead of one strong | Stack only when each layer adds something |\n| Video credits spent on untested ideas | Hook bank first; the user picks |\n| N hooks that are one idea reworded | Different pains, kinds, mechanisms, main characters |\n| Generic line that could sell any app | Specific to this app, audience, moment |\n| Hook type doesn't match the audience | Awareness table |\n| Body, music or CTA differ between variants | Lock the body; only the hook changes |\n| Logo intro, fade in, \"Hey guys\", feature list first | Frame 1 already moving; pain or outcome by second 3 |\n| Hook promises what the app or body doesn't deliver | Promise only what the app card supports |\n| Invented reviews, ratings, numbers, press, testimonials | Verified sources only; no proof → demo |\n| Viral video copied instead of modelled | Mechanism only |\n| Hook clip set to 1.5 s (rejected) | Generate 4 to 5 s, trim |\n| Different face in hook and body | Body still as reference, or faceless hook |\n| Template run as it came | Adapt per Step 1b |\n| Hook multiplier without a control or without a stated hypothesis | Original ad as control; one hypothesis line per hook |\n| Remnants of the old hook in the body (VO mid-sentence, a line about the old opening) | Cut point checked; body and VO trimmed cleanly |\n| Brainrot opener that never connects to the app | Pain or app by about second 3 |\n| Known meme characters, real games or a copied trend video | Original characters and backgrounds; the mechanic only |\n| Chat or notification that copies iOS / WhatsApp / system UI, or a fake chat sold as real | Stylised bubbles, real or clearly fictional content |\n| Chaotic brainrot look on a trust-heavy brand | Borrow the logic, not the look |\n\n## Quality gates (hooks)\n\n- **Stage 0 (bank, Claude checks before sending):** every idea tied to a pain or desire from the pain map? Different ideas, kinds and awareness levels? Layers of each hook tell one idea? Lines simple, specific, true, sayable, counted? No invented proof?\n- **Stage 1 (images):** each hook moment reads in one glance, muted, even as a thumbnail? The N hooks clearly different? Same person as the body where needed?\n- **Stage 2 (clips):** action from frame 1? Visual beat and line in the planned order? Surprise lands in ≤1.5 s? Line clear? Clean cut point? Native, not an ad?\n- **Stage 3 (finals):** every final opens on its hook? Pain recognisable right after it? The app's role clear? Body, music and CTA identical across variants? Loops and lists paid off? Text 2 to 6 words in the safe zone? Each final named with its code? In hook multiplier: control included, old hook fully removed, hypothesis written for each variant?\n\n## After the test\n\nHooks are hypotheses. Tell the user how to read the test in one short block:\n\n- Launch all variants the same day, one ad set per concept in an ABO campaign.\n- First signals at 2,000 to 4,000 impressions; judge each ad at 5,000+ impressions, never on day one.\n- **Hook rate** (3 s views ÷ impressions): target above 40%; 2026 medians are about 28% on Meta and 33% on TikTok, top 10% about 45% and 55%; below 20% is weak. **Hold rate** (ThruPlays ÷ 3 s views): target above 30%. Compare with the account's own averages.\n- Sales and profit → winner · no sales → not a winner, but an outstanding hook rate earns one more test · sales without profit → worth another test. No winner → next ideas from the bank, or a different pain or angle.\n- Judge winners by CPA / ROAS (cost per install, trials, payers), not hook rate alone.\n\nThen offer: save winning and losing hooks (hypothesis, kind, pain, line, visual, hook rate) to a **hook repository** doc in the project; the next round from the unused bank; the winning hook on other ads of the same angle; Better on the winner; other sizes or languages (matching skills). A winner lives about 2 to 6 weeks: start the next round before it fatigues.\n\n---\n\n## Sources behind this skill\n\nGBP and More, Better, New creative frameworks · creative testing and data reporting practice · a direct response hook-writing manual (awareness levels, voice of customer, hook categories) · Lyra's own Creative Brief and Video Script nodes and Hook templates · 2026 articles on hooks: Greenfrog Labs (Apr), Vmobify (May), Vidovo (Jun), Kineclip (Jul), AppsFlyer State of Creative Optimization 2026 (data to Q2 2026), RocketShip HQ (updated Sep), UGC Copilot (Oct), Lightreel (Oct); on catchy and brainrot formats: Opus (Apr), ContentGrip (May), Ortheon (Jul), Starrd monthly AI video trends (Jun to Oct), Influencers Time on chat-thread ads (Oct), McGraw Hill on AI slop backlash (May), Fast Company on brand brainrot (Jan). Their numbers are mostly vendor data: guidance, not law.\n"
AFTER
"---\nname: lyra-video-hooks\ndescription: \"Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \\\"hooks for my app\\\", \\\"4 hook variants\\\", \\\"write hooks / a hook bank\\\", \\\"a visual hook\\\", \\\"a catchy / brainrot hook\\\", \\\"hook multiplier\\\", \\\"test new openings on this ad\\\", \\\"the hook is weak / hook rate dropped\\\", \\\"a stronger first 3 seconds\\\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation.\"\n---\n\n# lyra-video-hooks\n\nMini skill. Finds the audience's pains in the Brand Kit, writes a bank of hook ideas, then turns the best 4 (3 to 6) into finished videos in Lyra.\n\n**Canvas layout → `lyra-workflow-layout`.** Every workflow this skill builds or changes is laid out by `lyra-workflow-layout`: sections in reading order with a STEP note above each one, the team's color code, clear node labels and the final check. The layout lines in this file only say which sections this creative needs.\n\n**This is a way of thinking, not a script.** The rules below are defaults and good practice. Use judgment: when a different hook, order or combination serves the idea better, do it and say why in one line. Only a few things are fixed: truth (no invented claims, reviews or numbers), the Brand Kit's facts, Lyra's technical limits, and the user's explicit choices.\n\n**Base skill first.** Everything not written here follows `lyra-video-ad-generation`: the 8 steps, instruction order, app card, plan table and stages, run options with credits, run and report, prompt rules, models (Reference A), audio (C), app UI (D), consistency (E), prompt craft (F), errors (G), de-slop (H), Brand Kit (I), Meta app ads (J). This file only adds what is specific to hooks. If the two disagree, the user wins, then this file, then the base skill.\n\n**Method.** GBP (Gut, Brain, Pocket) and the More, Better, New iteration framework. This skill is **MORE**: new Guts on the same Brain and Pocket. Hook writing follows direct response practice: audience awareness, voice of customer, one idea per hook, every claim true.\n\n---\n\n## How to think about a hook\n\n**What it is.** The hook is the **Gut** of the ad: the first 1 to 3 s. It has up to four layers that fire together: **visual** (the first frame and the first movement), **verbal** (the first spoken line), **text** (the caption on frame 1), **sound** (SFX, music hit, silence). Its job: stop the scroll in about 1 s and, by 3 s, tell the right viewer \"this is about your problem\". Meta reads early retention from the first second, so frame 1 already has to move.\n\n**Three kinds of hook.** Decide this first, for every idea:\n\n| Kind | What happens in 0 to 3 s | Works best when |\n|---|---|---|\n| **Visual hook** | the picture does the work: an action, a surprise, a strange situation, a transformation; no one needs to speak (music, SFX, a caption) | the pain or the result can be *seen*; music-led or ASMR videos; one video for many languages; cinematic or surreal concepts |\n| **Verbal hook** | a person speaks first: a pain line, a question, a confession, a callout; the picture is a face already mid-sentence | UGC and talking head; the pain is a feeling or a thought that is hard to show; the audience needs to be named |\n| **Combined hook (stack)** | a short visual beat first (0 to 1 s), then the spoken line right on top of it (1 to 3 s); example: a clap in front of the camera, then the girl says the pain in the audience's words | most UGC app ads: the visual stops the thumb, the line tells the right person \"this is you\" |\n\n**How to choose.** Think about the idea of the whole video, not the hook alone:\n\n- What is the strongest thing to show or say in the first second? Lead with it.\n- Can the pain be seen? Lean visual. Is it a thought or a feeling? Lean verbal, maybe with a small visual beat.\n- UGC and talking head: a combined hook is usually strongest (a physical beat + a pain line). Cinematic, surreal or music-led: a visual hook alone is often enough. Reels moves fastest: keep visual tricks short and get to the person quickly.\n- Two layers must tell **one** idea. A visual beat and a line that say different things fight each other; then pick one.\n- One strong hook beats two weak ones stacked. Stack only when each layer adds something: the visual catches, the line qualifies. A **double hook** (a second hook at 3 to 6 s) is a separate test (Better), not the default.\n- Sometimes the pain itself is the hook; sometimes the hook is a surprise and the pain comes right after. Decide per idea.\n\n**The story the hook opens (default spine).** Hook (0 to 3 s) → **the pain**, shown on a person so the viewer recognises themselves (3 to ~6 s) → **how the app solved it**, one real feature, the change visible (~6 to 12 s) → CTA. This is the default for app ads (problem-led hooks take most app video spend). Other spines are fine when they fit: outcome first then how, demo first, old way vs new way, a story cold open. Choose what presents the idea best and say why in the plan.\n\n**Final test for every hook:** relevance + curiosity + a reason to care. Would the right person understand it at once, recognise something from their life, and want the next seconds?\n\n**Main character of the first seconds (3P):** **Problem** (the pain, on a person living it) · **Product** (the app in use, real screens) · **Persona** (someone the viewer sees as themselves). A strong hook also uses at least two of: visual interrupt · relevance signal (the viewer's situation, or the audience named) · promised outcome · open loop (always closed later).\n\n**Principles:** sell the outcome, not the feature; identity and future-state lines (\"What if you woke up actually rested?\") usually beat feature lines (\"Track your sleep with AI\") · clear beats clever · if you talk about it, show it · specific beats vague (a real number, a named audience, an exact moment) · negative and contrarian framings often stop more people, but never shame the viewer · the ad must not look like an ad (native, phone-real) · humour and edge when the brand allows · don't open on the logo or the app name · no price in the hook for cold traffic (a free trial can open the ad when it's the real offer).\n\n---\n\n## Step 1 additions: Brand Kit and the audience's pains first\n\nHooks are built on the **Brand Kit** and on the **real pains of the audience**. Before any idea:\n\n1. **Find the Brand Kit:** the one in the chat, the one assigned to the workflow, or `list_brand_kits` (one kit → use it and say so; several → ask which). No kit → ask the user to send it or connect one (base Reference I).\n2. **Read it fully** and pull out a short **pain map**:\n   - **Audience:** who, which segments, their situation and daily moments where the problem shows up.\n   - **Pains:** what hurts, in their words if the kit has them; what they already tried and why it failed.\n   - **Desires:** the outcome they want, the identity they want (\"someone who sleeps\", \"someone who has money left\").\n   - **Objections:** why they hesitate.\n   - **Product truth:** real features, claims, offer, proof, tone of voice, must include / must exclude, forbidden claims.\n3. **If the pains are missing, vague or too generic**, don't block: write 3 to 5 **pain hypotheses** from the app card (each one line, in the audience's words) and ask the user to confirm, pick or correct them. Still propose hook ideas in the same message so work moves.\n4. **Intake quiz** (base Step 1: one message, multiple choice, options from the Brand Kit, the recommended option first, 4–8 questions; skip what the task or the kit already answers), with these questions plus the base quiz questions that apply:\n   - Body already (mode A, hook multiplier) or not (mode B)? Where does the old hook end? Is it a validated winner? Its hook rate, hold rate, CTR if known.\n   - Which pain or segment to lead with, if the kit has several (offer your recommendation).\n   - Hook preference: visual, verbal, combined, or \"you decide\" (default: you decide and explain).\n   - Cold or warm traffic; the store link for research; reviews, past winning hooks, viral videos the audience loves.\n   - How many hooks (default 4)? Tone, types or claims to avoid?\n5. **Propose ideas straight away.** Don't wait for perfect input: the first reply already carries the pain map (or hypotheses) and the first hook ideas.\n\n**Defaults (state, don't ask):** cold traffic · bank of 12 to 15 · N = 4 · 9:16 · Reels / TikTok · English · final 10 to 15 s in mode B, body length + hook in mode A · Seedance 2.5 for people, 2.0 for stylized or UI · 720p (1080p on the user's choice) · sound on · voiceover on in mode B.\n\n**Debug path from the numbers:**\n\n| Signal | Diagnosis | What to do |\n|---|---|---|\n| Low hook rate | The hook doesn't stop people | Stronger visual beat in frame 1, or a sharper pain; if the angle isn't validated, the angle may be the problem (tell the user) |\n| High hook rate, low hold rate or CTR, high CPM | Stops the wrong people, or the body doesn't keep the hook's promise | Name the audience in the line, show what they recognise, align the hook with what the body delivers |\n| Good hook rate, low hold rate | The body is weak | Not a hook problem: Better (double hook, social proof after the hook, reorder blocks) |\n| Good CTR, weak conversion | Offer, store page or expectations | Not a hook problem; check the hook doesn't promise more than the app gives |\n\n## Step 1a: hook research (voice of customer)\n\nWhen there is a store link, website or reviews; it takes minutes and makes every hook more specific.\n\n1. **Store page / website:** title, subtitle, description, screenshot captions, ratings. Note the brand voice and the real features and claims.\n2. **Reviews and comments:** sort into four kinds of language. **Pain** (the frustration before the app) · **Outcome** (what they wanted, the relief) · **Objection** (why they hesitated) · **Discovery** (what surprised them). Keep repeating patterns, drop one-offs.\n3. **Alternatives** (when useful): what the audience uses now and what annoys them about it; claims every app in the category repeats (avoid them); what this app does differently that matters.\n4. **Add to the pain map** in the app card: main pain · desired outcome · strongest real benefit · differentiator · objections · customer words worth quoting.\n\nCouldn't browse or found nothing → say so and work from the Brand Kit. Never invent reviews, ratings, user numbers, press or awards.\n\n## Step 1b: Lyra Hook templates\n\n1. `list_templates` with tags [\"Hook\"] (add \"UGC\" or \"Talking Head\" for a person to camera).\n2. Offer up to 3 that fit the audience, tone and the hook ideas: title + one line why + preview link. The user may pick one, several or none.\n3. Picked → `get_template`, `use_template`, then adapt: rewrite the Video Script for the app card and the chosen pain with `update_node`, replace every placeholder (\"[App Name]\", \"[main benefit]\"), upload the logo, packshot or screenshots it needs.\n4. Templates are fast demos: some use Seedance 2.0 Fast at 720p, some draw UI or a \"DOWNLOAD\" button. Say once: Seedance 2.5 (people) or 2.0, 720p by default, real screenshots (base Reference D). Follow the user's choice.\n\nHook templates in Lyra (Oct 2026); always re-check `list_templates`:\n**Visual stop, object POV:** Knock, Blinds, Hook door, Camera is in a bag, Fridge Camera, Trunk POV, Empty Cup Hook, Library Shelf Hook, Morning Girl, Pogo Stick Fall.\n**Fourth wall / surreal reveal:** Screen Pull, Balcony, Billboard App Reveal, Las Vegas Sphere, Office-core girl.\n**Visual metaphor of the pain:** Clear Your Head, Swipe Away the Chaos, Sofa.\n**Format hijack:** Breaking news, Interview POV, Stand-Up Comedy, Angry Boss, Hidden Cam, Subway Surfers Switch.\n**Product reveal:** Phone Screen Reveal.\n\n---\n\n## Hook base: what you can draw from\n\nA reference, not a menu to tick off. Combine, adapt and invent; always start from the Brand Kit's pain. The ad concept is in brackets where it fits.\n\n### Visual hooks (the picture does the work)\n\n| Type | What it looks like | Watch out |\n|---|---|---|\n| Physical interrupt | a clap in front of the lens, a knock on the lens from inside, a hand covering then uncovering the lens, an object tossed at the camera, blinds or a door snapping open | must lead into the pain within 3 s; one beat, not a show |\n| Mid-action open | start at the peak moment: the phone already flying onto the bed, the mess already everywhere, the reaction already happening | no setup before it |\n| Before state | the problem on screen: 47 unread notifications, a chaotic calendar, an empty fridge at 11 pm, the tired face in phone light (Problem) | show it on a person, not only an object |\n| Incomplete visual | a strange situation without explanation that the next seconds answer | answer it by 3 to 5 s |\n| Transformation cut | hard cut before → after on a beat, same framing and light (Transformation) | specific, believable; no body before/after for health apps |\n| Demo first | a thumb already using the core feature on a real screen (Demonstration) | real screenshots only; keep it short |\n| Unusual POV | camera inside a bag, fridge, trunk, bookshelf; the person opens it and looks in | the reveal leads to a person who talks or shows the pain |\n| Fourth wall | the character looks into, reaches out of or pulls the viewer into the screen | one clear gesture |\n| Visual metaphor / hyperbole | the pain made physical: a huge heavy head, notifications flooding the room, a to-do list unrolling to the floor | exact cause and effect order in the prompt |\n| Reaction / micro-expression | a genuine face reacting: the pause, the eyebrow, the laugh | not a forced \"wow\" |\n| Sensory / ASMR close-up | tactile macro detail, satisfying motion, 1 to 2 s with no voice | needs a link to the app (a satisfying \"done\" tick, an inbox going to zero) |\n| Format hijack visual | a news studio, a street interview mic, a stand-up stage, an office meeting (Platform Trends) | only formats this audience follows; no real channels or brands |\n| Text-first frame | a bold claim or question as the caption on frame 1, over a moving shot | full text at once, no letter-by-letter fades |\n\n### Verbal hooks (a person says it)\n\n| Type | Example line | Watch out |\n|---|---|---|\n| Pain callout | \"Still scrolling at 2 am? This one's for you.\" | specific pain from the pain map, not generic |\n| Audience callout | \"Night owls who hate mornings, listen.\" | the fix when the hook stops the wrong people |\n| Diagnosis | \"Here's why your to-do list never gets shorter.\" | the body must give the reason |\n| Mistake / contrarian / negative | \"Stop setting ten alarms. It's making mornings worse.\" | challenge the habit, never insult or scare |\n| Question with a stake | \"Why is your budget gone by the 15th?\" | no yes/no questions |\n| Confession / low expectation | \"I didn't expect a sleep app to actually work.\" | a creative scene, not a fake review |\n| First person | \"I used to lose two hours every night scrolling.\" | never presented as a verified real user |\n| Story cold open | \"Lying in bed at 3 am. Again.\" | close the loop in the body |\n| POV | \"POV: you finally fell asleep before midnight.\" | must match the audience's real life |\n| Identity / future state | \"What if you woke up actually rested?\" | tied to what the app really does |\n| Specific outcome / direct benefit | \"I saved my first 200 euros in a month.\" | numbers only from the Brand Kit or real reviews |\n| Objection first | \"I thought budgeting apps were a waste of time.\" | the body answers the doubt |\n| Third-person proof | \"My sister hasn't missed a deadline since March.\" | creative scene; real proof only as proof |\n| Dialogue | \"Wait, you went to bed before midnight?\" \"Yeah, since…\" | short lines, clear roles |\n| People talking about the prospect | \"She's been 'going to sleep' for two hours.\" | recognition, never humiliation |\n| Compliment | \"How are you always on time now?\" | shows a real benefit; usually not about looks |\n| List / formula | \"Two mistakes everyone makes with their savings.\" | deliver exactly what was promised |\n| Insider / what's new | \"Nobody tells you this about morning routines.\" / \"This app just changed one thing.\" | true and specific |\n| Unique feature | \"It reads every label, so you shop twice as fast.\" | feature → benefit → why it matters to you |\n| Social proof / authority / statistic | a real rating, a real user count, a real expert, a real number | verified only; none available → demo instead |\n| Stakes / FOMO | \"Every month you wait costs you another 50 euros.\" | real stakes only, no fear-mongering |\n| Offer first | \"Seven days free. Here's why I kept it.\" | warm traffic or real risk reversal; no price |\n\n### Sound (the fourth layer)\n\nAn SFX on frame 1 (click, zip, knock, slurp, notification ping), a music hit on the cut, a sudden silence, or a trending sound the audience knows. Sound-led hooks are weak with sound off, so the picture or caption must still carry the idea.\n\n### Catchy and brainrot hooks (app-native, attention-first)\n\nFeed-native formats that win attention by being weird, chaotic, funny or \"not an ad\". They borrow the language of the feed (memes, AI characters, chats, split screens) and then turn to the app fast. Strongest with Gen Z and Gen Alpha and for casual, social, entertainment, study, productivity and habit apps. For trust-heavy categories (finance, health, premium) borrow the logic (surprise, speed, humour), not the full chaotic look.\n\n| Format | What it looks like | How it turns to the app |\n|---|---|---|\n| Brainrot absurd | an original absurd AI character or situation, deliberately lo-fi, a confident dramatic voice saying near-nonsense, bass-heavy sound, fast jump cuts | the absurd thing *is* the pain in disguise (a screaming alarm-clock creature = mornings), then a hard cut to a real person and the app |\n| Talking object / pet | the phone, the alarm clock, the to-do list, the brain or a pet talks to camera like a colleague | the object complains about the user's habit (the pain) and \"recommends\" the app |\n| AI micro-drama | an episodic mini-series with original characters (fruit, objects, habits as characters), reality-show tropes, a twist each episode | the app is the plot twist or the solution of the episode; a series gives several ads |\n| Split screen | top: a person talking or a story; bottom: a satisfying loop (kinetic sand, slime, marble run, an original game-like run) | the story on top is the pain and the app; the loop only holds the eye |\n| Story with TTS | a short first-person story read by a synthetic voice over a satisfying or POV background, captions word by word | the story's turn is how the app helped |\n| Chat thread | stylised message bubbles appear one by one: \"wait, did you actually try it?\" | the reply resolves into the app; based on real customer conversations, lightly fictionalised |\n| Comment reply | the video opens on a comment bubble: \"does this app actually work?\" and the creator answers | the answer is the demo; only real comments or clearly hypothetical ones |\n| Trend remix | an AI trend mechanic the audience knows right now (action figure in a box, earth zoom out, bullet time, 80s camcorder diary, a dance), with the user's character | cut to the app within 2 to 3 s; the trend has nothing to sell on its own |\n| Absurd scale or physics | something impossibly big, tiny or heavy (a giant notification crushing the room, a tiny person drowning in emails) | the app restores normal scale |\n| Calm contrast | a slow, quiet, hand-painted or soft scene with gentle music in a loud feed | stands out by contrast, then the app appears as the calm |\n\n**How to use them well:**\n\n- Entertain first, but the link to the pain or the app must land within about 3 s; a weird opener that never connects brings cheap views and weak users.\n- One absurd idea per hook, instantly readable; no inside jokes the audience has to research.\n- Invent **original** characters and situations. Never use known meme characters (Skibidi, Italian brainrot creatures and the like), real games (Subway Surfers…), shows or brands unless the user owns the rights; the Lyra \"Subway Surfers Switch\" template needs an original background.\n- Deliberately lo-fi is a style; accidentally uncanny is slop. Faces and hands of real-looking people still follow de-slop; brands that ran sloppy AI ads (Valentino, McDonald's NL) had to pull them.\n- Chats, notifications and comments are stylised, not copies of iOS, WhatsApp, TikTok or system UI (platforms restrict ads that imitate organic interface elements); no fake read receipts or fake contact photos; a fictional chat is never presented as a real customer conversation.\n- Keep the rhythm: a new stimulus every 2 to 3 s (cut, zoom, sound hit).\n- Trends move fast: the brainrot peak was late 2025 to early 2026 and some audiences already call it cringe. Use the mechanic, keep it fresh, check what is trending now (TikTok Creative Center, the user's own feed) before building.\n- Sound matters most here: a dramatic narrator, sped-up voice, bass hit, a strange jingle. Music is generated from a description (no artist names, no copied tracks).\n\n### What feels stale in 2026 (avoid unless twisted)\n\nRing-light testimonial that reads as an ad in half a second · forced enthusiasm (\"this changed my life\", \"obsessed\") · opening with a feature list · vague before/after · \"Hey guys, today I'm…\" · logo or app name first · a slow fade in.\n\n---\n\n## Audience awareness: which hooks for whom\n\nApp install ads on cold traffic are mostly levels 1 to 3; retargeting 4 to 5. Unknown → mostly cold plus one or two warm.\n\n| Level | The viewer | What usually works |\n|---|---|---|\n| 1. Unaware | doesn't see the problem as a problem | a relatable moment, a visual metaphor, humour, mid-action, POV, catchy and brainrot formats (talking object, micro-drama, trend remix, split screen); no hard pitch |\n| 2. Problem aware | knows the pain, not the fix | pain callout, diagnosis, mistake, before state, first person, people talking about the prospect |\n| 3. Solution aware | knows fixes exist, not which | old way vs new way, question with a stake, list, outcome first, transformation cut |\n| 4. Product aware | knows the app, not why it's worth it | demo first, unique feature, objection first, compliment, proof |\n| 5. Most aware | close to installing | offer first, real proof, a reason to act now (real urgency only) |\n\n## Where hook ideas come from (in this order)\n\n1. **The Brand Kit's pains and desires** (the pain map). Every hook ties to one of them.\n2. **Customer words:** lines from real reviews, comments, support messages (the user, the Brand Kit, store research). Short phrases, never long copied reviews; an AI person saying the line is never presented as the real reviewer.\n3. **Past winning hooks** of this app (ask for the hook repository), above all when the current winner has a low hook rate.\n4. **Modelled viral TikTok / Reels hooks** the audience loves: copy the mechanism (first frame, twist, line structure), never the video, its people or its sound.\n5. **The hook base above**, to widen the set.\n\n## Step 2 addition: the hook bank\n\nBefore the plan, write the bank in the chat; it is part of the concept the user approves.\n\n- **12 to 15 ideas** by default (30 on request), each a different idea: a different pain, outcome, situation, perspective or format, not one idea reworded. Mix visual, verbal and combined hooks; mix direct (names the app or feature) and indirect (starts with a situation) openers; cover the audience's awareness levels; a few with humour or edge; when the audience and brand fit, one or two catchy or brainrot ideas.\n- One line per idea, with tags:\n  > H07 · combined · problem aware · Problem · pain: \"can't fall asleep\" · visual: clap in front of the lens, she's in bed in phone light · line: \"If your brain starts talking at 2 am, listen.\" (9 words) · text: \"2 am again?\" · hypothesis: night-scrollers stop for a sleep pain said in their words\n- **Recommend N** for production (default 4) with one line why. A good set of 4 usually has different kinds (at least one visual-led and one verbal-led or combined), different pains or angles from the pain map, different main characters, and one idea from the user's own sources if they have any. Guidance, not a quota: explain your choice.\n- After approval, save the whole bank in a user text node \"Hook bank\" in the workflow (picked ones marked) for the next MORE round.\n\n## Writing one hook\n\nWrite the muted version first: the first frame plus text must work with sound off.\n\n- **First frame:** the hook moment at frame 0, already moving. It is also the thumbnail, so it must read on its own.\n- **Spoken line** (verbal and combined hooks): aim for about **6 to 10 words**, said within ~3 s; count the words. Start on the key word; no \"So\", \"Okay\", \"Hey guys\". A longer line is fine only if it still lands by second 3.\n- **Text on screen:** 2 to 6 words, echoes the line (doesn't contradict it), on frame 1 in full, marked for post (added in the Video Editor, never in a prompt), inside the safe zone.\n- **Sound:** what is heard in the first second. Sound stays on at generation. When someone speaks in the clip: no music under the voice (\"no music, no background music, no soundtrack, no score\" in that clip's prompt, base Reference C). Clips without speech may keep their music hits.\n- **Visual beat** (combined hooks): 0.5 to 1 s, then the line starts on top of it or right after; both tell one idea.\n\n**Checks for every line:** one idea · simple (about a 5th grade reading level, no corporate or \"AI\" marketing words) · sounds natural said aloud · specific to this app, audience and moment (if it could sell a hundred apps, rewrite) · true (nothing outside the Brand Kit, app card or verified research) · different from the other hooks.\n\nConcept line per picked hook (goes into the plan):\n> C1H2 · combined · problem aware · Problem · Visual: a clap in front of the lens, she's sitting in bed in phone light at 2 am. Line: \"If your brain starts talking at 2 am, listen.\" Text (post): \"2 am again?\" Sound: the clap, then silence. Then: her pain (3 to 6 s), the app's wind-down timer (real screenshot), she falls asleep, CTA.\n\n---\n\n## Deliverable and modes\n\n1. A **hook bank** (12 to 15 ideas) saved in a \"Hook bank\" text node.\n2. N hook clips and **N finished videos**, one per picked hook, each in its own Video Editor. All variants share the same body (Brain), CTA (Pocket), music and end card, so the test isolates the hook.\n\nName every final with a code the media buyer can paste into Ads Manager: `B{batch}-A:{angle}-F:{formula}-C{concept}H{hook}-Iteration`, e.g. `B3-A:SleepIn5min-F:PAS-C1H2-Iteration`. Node label: \"Final: C1H2 · combined clap + pain line\".\n\n**When MORE is the right move:** right after an ad is validated · hook rate low while hold rate and CTR are fine · a winner fatiguing after 2 to 6 weeks (keep audience and angle, replace only the hook) · a losing streak (new hooks on a past winner). Not this skill: weak body or high CPC → Better; dead angle → new concept or angle (base skill). Only hook texts wanted → stop after the bank.\n\n| Mode | When | What gets built |\n|---|---|---|\n| **A. Hook multiplier** (true MORE; default when a body exists) | The user has a body: an existing or winning ad, a Lyra workflow, a video to upload | the original ad as control + N new hooks, each a hypothesis; only the first 2 to 3 s change → N Video Editors (hook N + same body, music, CTA) |\n| **B. Hook-led short ads** (default when there is no body) | Nothing exists yet | N ads of 10 to 15 s on the default spine: hook → pain → app solves it → CTA; pain, solution and CTA as identical across variants as the hooks allow |\n\nMode A body sources: the user's own Lyra workflow (build the hooks inside it, in a new Section) or a finished video (create_upload + attach_upload). Results can't be connected across workflows.\n\n### Hook multiplier: testing hypotheses with the same body\n\nOnly the first 2 to 3 s change; everything after the cut point stays exactly as it is. That makes each new hook a clean test of one **hypothesis**, and the cheapest way to learn what stops this audience.\n\n**1. Hypothesis per hook.** Every hook in the bank carries one line: \"We think [segment] stops for [pain / angle / hook kind / format].\" Decide what the round is testing and vary that, keeping the rest close:\n\n- **Which pain or desire** hits hardest (same kind of hook, different pain from the pain map).\n- **Which kind** works: visual vs verbal vs combined (same pain, different kind).\n- **Which segment** responds: a callout per segment (students vs parents vs freelancers).\n- **Which framing:** negative vs positive, question vs statement, identity vs feature.\n- **Which format:** UGC person vs catchy or brainrot vs demo.\n- **Finer tests** for a winner: same line with a different first frame, or same first frame with a different line.\n\nA round can mix hypotheses, but say which hook tests what, so the result teaches something.\n\n**2. Control.** Keep the original ad with its own hook in the test as the control (champion). New hooks are challengers; a hook wins only if it beats the control on the user's KPI.\n\n**3. The cut point.** Find where the old hook ends (usually 2 to 3 s; ask the user or read the composition in the Video Editor). Trim the body from that point (`trim.sourceStartMs`). Check that the body still makes sense without the old hook: the voiceover doesn't start mid-sentence, no line refers back to the old opening, the first body frame follows the new hook naturally. If the old hook was spoken over the body, trim the VO too and keep the rest identical. The new hook ends on an end state that cuts cleanly into the body's first frame (cut on action, match cut, or a deliberate hard cut).\n\n**4. Scale.** 4 to 6 new hooks per round is a good default; more (up to 10 to 20) when the budget allows, built in rounds from the bank. Each round's winners and losers go to the hook repository with the hypothesis they tested.\n\n**5. Reading the result.** The winning hypothesis is the learning, not only the winning video: a winning pain or segment feeds the next ads, angles and Brand Kit notes; a winning kind or framing becomes the default for the next round.\n\n**Double hook (optional, mode A):** a second proven hook right after the first (0 to 3 s, then 3 to 6 s). Offer as one extra variant when hold rate is low or CPC is high; it is a Better test.\n\n## Best way to build it\n\nThe user's explicit choices override any row. Models and prices: base Reference A.\n\n| If the hook is | Best approach (graph) | Models |\n|---|---|---|\n| **Combined, UGC person** (common default) | character image → hook keyframe (the visual beat at frame 0) → one clip with the beat, then the spoken line in quotes, then the pain; or the hook as its own 4 to 5 s clip trimmed to 1.5 to 3 s | nano-banana-pro · seedance-2.5 |\n| **Verbal, talking head** | character image → clip starting mid-sentence, the line in quotes, natural gestures | nano-banana-pro · seedance-2.5 |\n| **Visual, no speech** (object POV, metaphor, transformation, ASMR) | hook keyframe → clip 4 to 5 s with exact action order; music or SFX; caption in post | seedance-2.0 (frame) or seedance-2.5 (refs) |\n| Dialogue or \"people talking about the prospect\" | two character images as references → one clip, who says what by [ImageN] | seedance-2.5 |\n| Shows the app (demo, feature) | user screenshots → phone image → short clip or UI insert (base Reference D) | seedance-2.0 (frames) or 2.5 (refs) |\n| Mode A, same person as the body | a still of that person from the body as reference; no still → a faceless hook | seedance-2.5 |\n| Mode B, full short ad | per hook: character → one multi-shot clip 10 to 15 s with \"cut to\" between hook, pain and solution, or separate clips joined in the Video Editor; VO + music; logo end card | seedance-2.5 · nano-banana-pro |\n| Lyra Hook template picked | use_template → adapt (Step 1b) → one Section per hook | as the template, upgraded |\n| Double hook variant | hook clip A + hook clip B + body → one extra Video Editor | as above |\n| Only hook texts | stop after the bank | none |\n| Catchy: talking object, AI character, micro-drama | original character image (nano-banana-pro, the style chosen: lo-fi, cartoon, 3D) → clip with the line in quotes; one character reference for the whole series | nano-banana-pro · seedance-2.0 (stylized) or 2.5 (realistic) |\n| Catchy: split screen | top clip (person or story) + bottom clip (original satisfying loop) → Video Editor with two video layers positioned top and bottom (position x/y/width/height), captions in the editor | seedance-2.5 + seedance-2.0 |\n| Catchy: chat thread, comment reply | message or comment images designed with exact text in quotes (stylised, not a copy of a real messenger) → laid over the video in the Video Editor, one by one | nano-banana-pro + video_composer |\n| Catchy: trend remix | the trend mechanic as an image or clip with the user's character → hard cut to the app part | per trend: seedance-2.5 or kling (frames) |\n| Many hooks, tight budget | hook clips on a draft model, rerun winners on the recommended one | seedance-2.0-fast |\n\n**Hook clip length.** Seedance's minimum is 4 s: generate 4 to 5 s, put the hook beat in the first 1.5 to 3 s, plan a clean cut point (end state) into the next shot, trim in the Video Editor.\n\n**Layout.** Section \"Hook bank\" (text node), one Section per hook (its nodes + its Video Editor), one Section for the shared body, music and VO. Labels: \"C1H1: clap + pain (frame)\", \"C1H1: clap + pain (clip)\", \"Final: C1H1 · clap + pain\".\n\n## Video Editor per hook\n\nOne `video_composer` per hook, in playback order: hook clip → body clip(s) → end card, then VO and music. Everything except the hook is identical across variants: same body trims, same music (starting at 0 so the hit lands on every hook), same body VO and CTA, same end card. Keep the hook's own sound or line; lower the body clip's sound if it clashes. Hook text and captions are added in the editor UI: tell the user what to add and where. Captions, if the user wants them (asked in the approval message), follow the base rule (`lyra-video-editor` → Captions: size 80, at 75% of the height, under the face); the hook text on frame 1 is a headline, placed in the safe zone. If the hook opens a loop or promises a list, check the body delivers it.\n\n## Run options for hooks\n\n**Run order, not a menu** (base Step 6): after the user's yes, run all of it in this order without offering options. Stop between stages (the look first, then the rest) only when the user asked for it, or when the plan is expensive and that was said in the approval message.\n\nAs in the base skill, credits read from the nodes and multiplied by N; the hook bank costs nothing. **A. Hook images (recommended):** all N keyframes and characters · **B. Hook clips** for the frames the user picked · **C. Everything** → N Video Editors.\n\n---\n\n## Prompt rules (hooks)\n\n| Node | Write | Avoid |\n|---|---|---|\n| Hook bank (text node) | each idea with number, kind (visual / verbal / combined), awareness level, main character, pain, visual, line, text, word count; picked ones marked | long explanations |\n| Hook keyframe | the hook moment itself at frame 0: the visual beat mid-action or the person mid-sentence, the pain visible, phone-real for UGC, 9:16 | an establishing shot; text; drawn UI or logos |\n| Hook clip | action from frame 1; for combined hooks, the exact order (\"she claps once in front of the lens, lowers her hands, looks into the camera and says: '…'\"); the surprise readable in ≤1.5 s; spoken line in quotes; who says what in dialogue; cause and effect; the end state at the cut point | slow build up; two surprises; the caption text in the prompt; a polished \"ad\" look |\n| Hook VO (if separate) | the exact hook line as its own short VO node; body VO shared | filler openers; price; claims not in the Brand Kit |\n\nNo third-party brands, games, channels, landmarks used as brands, or famous people in prompts unless the user owns the rights.\n\n## Truth and brand safety\n\n- **Brand safety** (Lyra's System Preamble, base Reference B): no profanity, no political statements, no unsubstantiated health claims, no competitor disparagement. The Brand Kit's **forbidden claims are enforced absolutely**, in every hook line, caption, first frame and VO; if the user asks for one, say once that it is on the kit's forbidden list and leave it out unless the user confirms the kit is outdated.\n- Hooks never carry a claim, number or offer that isn't in the Brand Kit or the user's message; a provocative or negative hook challenges a habit, never the viewer, a group or a competitor.\n\n## Common mistakes (hooks)\n\n| Mistake | Prevention |\n|---|---|\n| A hook clip where someone speaks comes with music under the voice | No-music sound line in every clip with speech; our music in the Video Editor |\n| Hooks written without reading the Brand Kit | Pain map first; every hook tied to a real pain or desire |\n| Waiting for perfect input before proposing anything | Pain hypotheses + first ideas in the first reply |\n| Visual beat and line say two different things | One idea per hook across all layers |\n| A visual trick with no link to the pain | The trick leads into the pain by second 3 |\n| Two weak hooks stacked instead of one strong | Stack only when each layer adds something |\n| Video credits spent on untested ideas | Hook bank first; the user picks |\n| N hooks that are one idea reworded | Different pains, kinds, mechanisms, main characters |\n| Generic line that could sell any app | Specific to this app, audience, moment |\n| Hook type doesn't match the audience | Awareness table |\n| Body, music or CTA differ between variants | Lock the body; only the hook changes |\n| Logo intro, fade in, \"Hey guys\", feature list first | Frame 1 already moving; pain or outcome by second 3 |\n| Hook promises what the app or body doesn't deliver | Promise only what the app card supports |\n| Invented reviews, ratings, numbers, press, testimonials | Verified sources only; no proof → demo |\n| Viral video copied instead of modelled | Mechanism only |\n| Hook clip set to 1.5 s (rejected) | Generate 4 to 5 s, trim |\n| Different face in hook and body | Body still as reference, or faceless hook |\n| Template run as it came | Adapt per Step 1b |\n| Hook multiplier without a control or without a stated hypothesis | Original ad as control; one hypothesis line per hook |\n| Remnants of the old hook in the body (VO mid-sentence, a line about the old opening) | Cut point checked; body and VO trimmed cleanly |\n| Brainrot opener that never connects to the app | Pain or app by about second 3 |\n| Known meme characters, real games or a copied trend video | Original characters and backgrounds; the mechanic only |\n| Chat or notification that copies iOS / WhatsApp / system UI, or a fake chat sold as real | Stylised bubbles, real or clearly fictional content |\n| Chaotic brainrot look on a trust-heavy brand | Borrow the logic, not the look |\n\n## Quality gates (hooks)\n\n- **Stage 0 (bank, Claude checks before sending):** every idea tied to a pain or desire from the pain map? Different ideas, kinds and awareness levels? Layers of each hook tell one idea? Lines simple, specific, true, sayable, counted? No invented proof?\n- **Stage 1 (images):** each hook moment reads in one glance, muted, even as a thumbnail? The N hooks clearly different? Same person as the body where needed?\n- **Stage 2 (clips):** action from frame 1? Visual beat and line in the planned order? Surprise lands in ≤1.5 s? Line clear? Clean cut point? Native, not an ad?\n- **Stage 3 (finals):** every final opens on its hook? Pain recognisable right after it? The app's role clear? Body, music and CTA identical across variants? Loops and lists paid off? Text 2 to 6 words in the safe zone? Each final named with its code? In hook multiplier: control included, old hook fully removed, hypothesis written for each variant?\n\n## After the test\n\nHooks are hypotheses. Tell the user how to read the test in one short block:\n\n- Launch all variants the same day, one ad set per concept in an ABO campaign.\n- First signals at 2,000 to 4,000 impressions; judge each ad at 5,000+ impressions, never on day one.\n- **Hook rate** (3 s views ÷ impressions): target above 40%; 2026 medians are about 28% on Meta and 33% on TikTok, top 10% about 45% and 55%; below 20% is weak. **Hold rate** (ThruPlays ÷ 3 s views): target above 30%. Compare with the account's own averages.\n- Sales and profit → winner · no sales → not a winner, but an outstanding hook rate earns one more test · sales without profit → worth another test. No winner → next ideas from the bank, or a different pain or angle.\n- Judge winners by CPA / ROAS (cost per install, trials, payers), not hook rate alone.\n\nThen offer: save winning and losing hooks (hypothesis, kind, pain, line, visual, hook rate) to a **hook repository** doc in the project; the next round from the unused bank; the winning hook on other ads of the same angle; Better on the winner; other sizes or languages (matching skills). A winner lives about 2 to 6 weeks: start the next round before it fatigues.\n"
Full snapshot data
{
  "description": "Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \"hooks for my app\", \"4 hook variants\", \"write hooks / a hook bank\", \"a visual hook\", \"a catchy / brainrot hook\", \"hook multiplier\", \"test new openings on this ad\", \"the hook is weak / hook rate dropped\", \"a stronger first 3 seconds\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation.",
  "included_files": [],
  "name": "lyra-video-hooks",
  "skill_md_contents": "---\nname: lyra-video-hooks\ndescription: \"Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \\\"hooks for my app\\\", \\\"4 hook variants\\\", \\\"write hooks / a hook bank\\\", \\\"a visual hook\\\", \\\"a catchy / brainrot hook\\\", \\\"hook multiplier\\\", \\\"test new openings on this ad\\\", \\\"the hook is weak / hook rate dropped\\\", \\\"a stronger first 3 seconds\\\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation.\"\n---\n\n# lyra-video-hooks\n\nMini skill. Finds the audience's pains in the Brand Kit, writes a bank of hook ideas, then turns the best 4 (3 to 6) into finished videos in Lyra.\n\n**Canvas layout → `lyra-workflow-layout`.** Every workflow this skill builds or changes is laid out by `lyra-workflow-layout`: sections in reading order with a STEP note above each one, the team's color code, clear node labels and the final check. The layout lines in this file only say which sections this creative needs.\n\n**This is a way of thinking, not a script.** The rules below are defaults and good practice. Use judgment: when a different hook, order or combination serves the idea better, do it and say why in one line. Only a few things are fixed: truth (no invented claims, reviews or numbers), the Brand Kit's facts, Lyra's technical limits, and the user's explicit choices.\n\n**Base skill first.** Everything not written here follows `lyra-video-ad-generation`: the 8 steps, instruction order, app card, plan table and stages, run options with credits, run and report, prompt rules, models (Reference A), audio (C), app UI (D), consistency (E), prompt craft (F), errors (G), de-slop (H), Brand Kit (I), Meta app ads (J). This file only adds what is specific to hooks. If the two disagree, the user wins, then this file, then the base skill.\n\n**Method.** GBP (Gut, Brain, Pocket) and the More, Better, New iteration framework. This skill is **MORE**: new Guts on the same Brain and Pocket. Hook writing follows direct response practice: audience awareness, voice of customer, one idea per hook, every claim true.\n\n---\n\n## How to think about a hook\n\n**What it is.** The hook is the **Gut** of the ad: the first 1 to 3 s. It has up to four layers that fire together: **visual** (the first frame and the first movement), **verbal** (the first spoken line), **text** (the caption on frame 1), **sound** (SFX, music hit, silence). Its job: stop the scroll in about 1 s and, by 3 s, tell the right viewer \"this is about your problem\". Meta reads early retention from the first second, so frame 1 already has to move.\n\n**Three kinds of hook.** Decide this first, for every idea:\n\n| Kind | What happens in 0 to 3 s | Works best when |\n|---|---|---|\n| **Visual hook** | the picture does the work: an action, a surprise, a strange situation, a transformation; no one needs to speak (music, SFX, a caption) | the pain or the result can be *seen*; music-led or ASMR videos; one video for many languages; cinematic or surreal concepts |\n| **Verbal hook** | a person speaks first: a pain line, a question, a confession, a callout; the picture is a face already mid-sentence | UGC and talking head; the pain is a feeling or a thought that is hard to show; the audience needs to be named |\n| **Combined hook (stack)** | a short visual beat first (0 to 1 s), then the spoken line right on top of it (1 to 3 s); example: a clap in front of the camera, then the girl says the pain in the audience's words | most UGC app ads: the visual stops the thumb, the line tells the right person \"this is you\" |\n\n**How to choose.** Think about the idea of the whole video, not the hook alone:\n\n- What is the strongest thing to show or say in the first second? Lead with it.\n- Can the pain be seen? Lean visual. Is it a thought or a feeling? Lean verbal, maybe with a small visual beat.\n- UGC and talking head: a combined hook is usually strongest (a physical beat + a pain line). Cinematic, surreal or music-led: a visual hook alone is often enough. Reels moves fastest: keep visual tricks short and get to the person quickly.\n- Two layers must tell **one** idea. A visual beat and a line that say different things fight each other; then pick one.\n- One strong hook beats two weak ones stacked. Stack only when each layer adds something: the visual catches, the line qualifies. A **double hook** (a second hook at 3 to 6 s) is a separate test (Better), not the default.\n- Sometimes the pain itself is the hook; sometimes the hook is a surprise and the pain comes right after. Decide per idea.\n\n**The story the hook opens (default spine).** Hook (0 to 3 s) → **the pain**, shown on a person so the viewer recognises themselves (3 to ~6 s) → **how the app solved it**, one real feature, the change visible (~6 to 12 s) → CTA. This is the default for app ads (problem-led hooks take most app video spend). Other spines are fine when they fit: outcome first then how, demo first, old way vs new way, a story cold open. Choose what presents the idea best and say why in the plan.\n\n**Final test for every hook:** relevance + curiosity + a reason to care. Would the right person understand it at once, recognise something from their life, and want the next seconds?\n\n**Main character of the first seconds (3P):** **Problem** (the pain, on a person living it) · **Product** (the app in use, real screens) · **Persona** (someone the viewer sees as themselves). A strong hook also uses at least two of: visual interrupt · relevance signal (the viewer's situation, or the audience named) · promised outcome · open loop (always closed later).\n\n**Principles:** sell the outcome, not the feature; identity and future-state lines (\"What if you woke up actually rested?\") usually beat feature lines (\"Track your sleep with AI\") · clear beats clever · if you talk about it, show it · specific beats vague (a real number, a named audience, an exact moment) · negative and contrarian framings often stop more people, but never shame the viewer · the ad must not look like an ad (native, phone-real) · humour and edge when the brand allows · don't open on the logo or the app name · no price in the hook for cold traffic (a free trial can open the ad when it's the real offer).\n\n---\n\n## Step 1 additions: Brand Kit and the audience's pains first\n\nHooks are built on the **Brand Kit** and on the **real pains of the audience**. Before any idea:\n\n1. **Find the Brand Kit:** the one in the chat, the one assigned to the workflow, or `list_brand_kits` (one kit → use it and say so; several → ask which). No kit → ask the user to send it or connect one (base Reference I).\n2. **Read it fully** and pull out a short **pain map**:\n   - **Audience:** who, which segments, their situation and daily moments where the problem shows up.\n   - **Pains:** what hurts, in their words if the kit has them; what they already tried and why it failed.\n   - **Desires:** the outcome they want, the identity they want (\"someone who sleeps\", \"someone who has money left\").\n   - **Objections:** why they hesitate.\n   - **Product truth:** real features, claims, offer, proof, tone of voice, must include / must exclude, forbidden claims.\n3. **If the pains are missing, vague or too generic**, don't block: write 3 to 5 **pain hypotheses** from the app card (each one line, in the audience's words) and ask the user to confirm, pick or correct them. Still propose hook ideas in the same message so work moves.\n4. **Intake quiz** (base Step 1: one message, multiple choice, options from the Brand Kit, the recommended option first, 4–8 questions; skip what the task or the kit already answers), with these questions plus the base quiz questions that apply:\n   - Body already (mode A, hook multiplier) or not (mode B)? Where does the old hook end? Is it a validated winner? Its hook rate, hold rate, CTR if known.\n   - Which pain or segment to lead with, if the kit has several (offer your recommendation).\n   - Hook preference: visual, verbal, combined, or \"you decide\" (default: you decide and explain).\n   - Cold or warm traffic; the store link for research; reviews, past winning hooks, viral videos the audience loves.\n   - How many hooks (default 4)? Tone, types or claims to avoid?\n5. **Propose ideas straight away.** Don't wait for perfect input: the first reply already carries the pain map (or hypotheses) and the first hook ideas.\n\n**Defaults (state, don't ask):** cold traffic · bank of 12 to 15 · N = 4 · 9:16 · Reels / TikTok · English · final 10 to 15 s in mode B, body length + hook in mode A · Seedance 2.5 for people, 2.0 for stylized or UI · 720p (1080p on the user's choice) · sound on · voiceover on in mode B.\n\n**Debug path from the numbers:**\n\n| Signal | Diagnosis | What to do |\n|---|---|---|\n| Low hook rate | The hook doesn't stop people | Stronger visual beat in frame 1, or a sharper pain; if the angle isn't validated, the angle may be the problem (tell the user) |\n| High hook rate, low hold rate or CTR, high CPM | Stops the wrong people, or the body doesn't keep the hook's promise | Name the audience in the line, show what they recognise, align the hook with what the body delivers |\n| Good hook rate, low hold rate | The body is weak | Not a hook problem: Better (double hook, social proof after the hook, reorder blocks) |\n| Good CTR, weak conversion | Offer, store page or expectations | Not a hook problem; check the hook doesn't promise more than the app gives |\n\n## Step 1a: hook research (voice of customer)\n\nWhen there is a store link, website or reviews; it takes minutes and makes every hook more specific.\n\n1. **Store page / website:** title, subtitle, description, screenshot captions, ratings. Note the brand voice and the real features and claims.\n2. **Reviews and comments:** sort into four kinds of language. **Pain** (the frustration before the app) · **Outcome** (what they wanted, the relief) · **Objection** (why they hesitated) · **Discovery** (what surprised them). Keep repeating patterns, drop one-offs.\n3. **Alternatives** (when useful): what the audience uses now and what annoys them about it; claims every app in the category repeats (avoid them); what this app does differently that matters.\n4. **Add to the pain map** in the app card: main pain · desired outcome · strongest real benefit · differentiator · objections · customer words worth quoting.\n\nCouldn't browse or found nothing → say so and work from the Brand Kit. Never invent reviews, ratings, user numbers, press or awards.\n\n## Step 1b: Lyra Hook templates\n\n1. `list_templates` with tags [\"Hook\"] (add \"UGC\" or \"Talking Head\" for a person to camera).\n2. Offer up to 3 that fit the audience, tone and the hook ideas: title + one line why + preview link. The user may pick one, several or none.\n3. Picked → `get_template`, `use_template`, then adapt: rewrite the Video Script for the app card and the chosen pain with `update_node`, replace every placeholder (\"[App Name]\", \"[main benefit]\"), upload the logo, packshot or screenshots it needs.\n4. Templates are fast demos: some use Seedance 2.0 Fast at 720p, some draw UI or a \"DOWNLOAD\" button. Say once: Seedance 2.5 (people) or 2.0, 720p by default, real screenshots (base Reference D). Follow the user's choice.\n\nHook templates in Lyra (Oct 2026); always re-check `list_templates`:\n**Visual stop, object POV:** Knock, Blinds, Hook door, Camera is in a bag, Fridge Camera, Trunk POV, Empty Cup Hook, Library Shelf Hook, Morning Girl, Pogo Stick Fall.\n**Fourth wall / surreal reveal:** Screen Pull, Balcony, Billboard App Reveal, Las Vegas Sphere, Office-core girl.\n**Visual metaphor of the pain:** Clear Your Head, Swipe Away the Chaos, Sofa.\n**Format hijack:** Breaking news, Interview POV, Stand-Up Comedy, Angry Boss, Hidden Cam, Subway Surfers Switch.\n**Product reveal:** Phone Screen Reveal.\n\n---\n\n## Hook base: what you can draw from\n\nA reference, not a menu to tick off. Combine, adapt and invent; always start from the Brand Kit's pain. The ad concept is in brackets where it fits.\n\n### Visual hooks (the picture does the work)\n\n| Type | What it looks like | Watch out |\n|---|---|---|\n| Physical interrupt | a clap in front of the lens, a knock on the lens from inside, a hand covering then uncovering the lens, an object tossed at the camera, blinds or a door snapping open | must lead into the pain within 3 s; one beat, not a show |\n| Mid-action open | start at the peak moment: the phone already flying onto the bed, the mess already everywhere, the reaction already happening | no setup before it |\n| Before state | the problem on screen: 47 unread notifications, a chaotic calendar, an empty fridge at 11 pm, the tired face in phone light (Problem) | show it on a person, not only an object |\n| Incomplete visual | a strange situation without explanation that the next seconds answer | answer it by 3 to 5 s |\n| Transformation cut | hard cut before → after on a beat, same framing and light (Transformation) | specific, believable; no body before/after for health apps |\n| Demo first | a thumb already using the core feature on a real screen (Demonstration) | real screenshots only; keep it short |\n| Unusual POV | camera inside a bag, fridge, trunk, bookshelf; the person opens it and looks in | the reveal leads to a person who talks or shows the pain |\n| Fourth wall | the character looks into, reaches out of or pulls the viewer into the screen | one clear gesture |\n| Visual metaphor / hyperbole | the pain made physical: a huge heavy head, notifications flooding the room, a to-do list unrolling to the floor | exact cause and effect order in the prompt |\n| Reaction / micro-expression | a genuine face reacting: the pause, the eyebrow, the laugh | not a forced \"wow\" |\n| Sensory / ASMR close-up | tactile macro detail, satisfying motion, 1 to 2 s with no voice | needs a link to the app (a satisfying \"done\" tick, an inbox going to zero) |\n| Format hijack visual | a news studio, a street interview mic, a stand-up stage, an office meeting (Platform Trends) | only formats this audience follows; no real channels or brands |\n| Text-first frame | a bold claim or question as the caption on frame 1, over a moving shot | full text at once, no letter-by-letter fades |\n\n### Verbal hooks (a person says it)\n\n| Type | Example line | Watch out |\n|---|---|---|\n| Pain callout | \"Still scrolling at 2 am? This one's for you.\" | specific pain from the pain map, not generic |\n| Audience callout | \"Night owls who hate mornings, listen.\" | the fix when the hook stops the wrong people |\n| Diagnosis | \"Here's why your to-do list never gets shorter.\" | the body must give the reason |\n| Mistake / contrarian / negative | \"Stop setting ten alarms. It's making mornings worse.\" | challenge the habit, never insult or scare |\n| Question with a stake | \"Why is your budget gone by the 15th?\" | no yes/no questions |\n| Confession / low expectation | \"I didn't expect a sleep app to actually work.\" | a creative scene, not a fake review |\n| First person | \"I used to lose two hours every night scrolling.\" | never presented as a verified real user |\n| Story cold open | \"Lying in bed at 3 am. Again.\" | close the loop in the body |\n| POV | \"POV: you finally fell asleep before midnight.\" | must match the audience's real life |\n| Identity / future state | \"What if you woke up actually rested?\" | tied to what the app really does |\n| Specific outcome / direct benefit | \"I saved my first 200 euros in a month.\" | numbers only from the Brand Kit or real reviews |\n| Objection first | \"I thought budgeting apps were a waste of time.\" | the body answers the doubt |\n| Third-person proof | \"My sister hasn't missed a deadline since March.\" | creative scene; real proof only as proof |\n| Dialogue | \"Wait, you went to bed before midnight?\" \"Yeah, since…\" | short lines, clear roles |\n| People talking about the prospect | \"She's been 'going to sleep' for two hours.\" | recognition, never humiliation |\n| Compliment | \"How are you always on time now?\" | shows a real benefit; usually not about looks |\n| List / formula | \"Two mistakes everyone makes with their savings.\" | deliver exactly what was promised |\n| Insider / what's new | \"Nobody tells you this about morning routines.\" / \"This app just changed one thing.\" | true and specific |\n| Unique feature | \"It reads every label, so you shop twice as fast.\" | feature → benefit → why it matters to you |\n| Social proof / authority / statistic | a real rating, a real user count, a real expert, a real number | verified only; none available → demo instead |\n| Stakes / FOMO | \"Every month you wait costs you another 50 euros.\" | real stakes only, no fear-mongering |\n| Offer first | \"Seven days free. Here's why I kept it.\" | warm traffic or real risk reversal; no price |\n\n### Sound (the fourth layer)\n\nAn SFX on frame 1 (click, zip, knock, slurp, notification ping), a music hit on the cut, a sudden silence, or a trending sound the audience knows. Sound-led hooks are weak with sound off, so the picture or caption must still carry the idea.\n\n### Catchy and brainrot hooks (app-native, attention-first)\n\nFeed-native formats that win attention by being weird, chaotic, funny or \"not an ad\". They borrow the language of the feed (memes, AI characters, chats, split screens) and then turn to the app fast. Strongest with Gen Z and Gen Alpha and for casual, social, entertainment, study, productivity and habit apps. For trust-heavy categories (finance, health, premium) borrow the logic (surprise, speed, humour), not the full chaotic look.\n\n| Format | What it looks like | How it turns to the app |\n|---|---|---|\n| Brainrot absurd | an original absurd AI character or situation, deliberately lo-fi, a confident dramatic voice saying near-nonsense, bass-heavy sound, fast jump cuts | the absurd thing *is* the pain in disguise (a screaming alarm-clock creature = mornings), then a hard cut to a real person and the app |\n| Talking object / pet | the phone, the alarm clock, the to-do list, the brain or a pet talks to camera like a colleague | the object complains about the user's habit (the pain) and \"recommends\" the app |\n| AI micro-drama | an episodic mini-series with original characters (fruit, objects, habits as characters), reality-show tropes, a twist each episode | the app is the plot twist or the solution of the episode; a series gives several ads |\n| Split screen | top: a person talking or a story; bottom: a satisfying loop (kinetic sand, slime, marble run, an original game-like run) | the story on top is the pain and the app; the loop only holds the eye |\n| Story with TTS | a short first-person story read by a synthetic voice over a satisfying or POV background, captions word by word | the story's turn is how the app helped |\n| Chat thread | stylised message bubbles appear one by one: \"wait, did you actually try it?\" | the reply resolves into the app; based on real customer conversations, lightly fictionalised |\n| Comment reply | the video opens on a comment bubble: \"does this app actually work?\" and the creator answers | the answer is the demo; only real comments or clearly hypothetical ones |\n| Trend remix | an AI trend mechanic the audience knows right now (action figure in a box, earth zoom out, bullet time, 80s camcorder diary, a dance), with the user's character | cut to the app within 2 to 3 s; the trend has nothing to sell on its own |\n| Absurd scale or physics | something impossibly big, tiny or heavy (a giant notification crushing the room, a tiny person drowning in emails) | the app restores normal scale |\n| Calm contrast | a slow, quiet, hand-painted or soft scene with gentle music in a loud feed | stands out by contrast, then the app appears as the calm |\n\n**How to use them well:**\n\n- Entertain first, but the link to the pain or the app must land within about 3 s; a weird opener that never connects brings cheap views and weak users.\n- One absurd idea per hook, instantly readable; no inside jokes the audience has to research.\n- Invent **original** characters and situations. Never use known meme characters (Skibidi, Italian brainrot creatures and the like), real games (Subway Surfers…), shows or brands unless the user owns the rights; the Lyra \"Subway Surfers Switch\" template needs an original background.\n- Deliberately lo-fi is a style; accidentally uncanny is slop. Faces and hands of real-looking people still follow de-slop; brands that ran sloppy AI ads (Valentino, McDonald's NL) had to pull them.\n- Chats, notifications and comments are stylised, not copies of iOS, WhatsApp, TikTok or system UI (platforms restrict ads that imitate organic interface elements); no fake read receipts or fake contact photos; a fictional chat is never presented as a real customer conversation.\n- Keep the rhythm: a new stimulus every 2 to 3 s (cut, zoom, sound hit).\n- Trends move fast: the brainrot peak was late 2025 to early 2026 and some audiences already call it cringe. Use the mechanic, keep it fresh, check what is trending now (TikTok Creative Center, the user's own feed) before building.\n- Sound matters most here: a dramatic narrator, sped-up voice, bass hit, a strange jingle. Music is generated from a description (no artist names, no copied tracks).\n\n### What feels stale in 2026 (avoid unless twisted)\n\nRing-light testimonial that reads as an ad in half a second · forced enthusiasm (\"this changed my life\", \"obsessed\") · opening with a feature list · vague before/after · \"Hey guys, today I'm…\" · logo or app name first · a slow fade in.\n\n---\n\n## Audience awareness: which hooks for whom\n\nApp install ads on cold traffic are mostly levels 1 to 3; retargeting 4 to 5. Unknown → mostly cold plus one or two warm.\n\n| Level | The viewer | What usually works |\n|---|---|---|\n| 1. Unaware | doesn't see the problem as a problem | a relatable moment, a visual metaphor, humour, mid-action, POV, catchy and brainrot formats (talking object, micro-drama, trend remix, split screen); no hard pitch |\n| 2. Problem aware | knows the pain, not the fix | pain callout, diagnosis, mistake, before state, first person, people talking about the prospect |\n| 3. Solution aware | knows fixes exist, not which | old way vs new way, question with a stake, list, outcome first, transformation cut |\n| 4. Product aware | knows the app, not why it's worth it | demo first, unique feature, objection first, compliment, proof |\n| 5. Most aware | close to installing | offer first, real proof, a reason to act now (real urgency only) |\n\n## Where hook ideas come from (in this order)\n\n1. **The Brand Kit's pains and desires** (the pain map). Every hook ties to one of them.\n2. **Customer words:** lines from real reviews, comments, support messages (the user, the Brand Kit, store research). Short phrases, never long copied reviews; an AI person saying the line is never presented as the real reviewer.\n3. **Past winning hooks** of this app (ask for the hook repository), above all when the current winner has a low hook rate.\n4. **Modelled viral TikTok / Reels hooks** the audience loves: copy the mechanism (first frame, twist, line structure), never the video, its people or its sound.\n5. **The hook base above**, to widen the set.\n\n## Step 2 addition: the hook bank\n\nBefore the plan, write the bank in the chat; it is part of the concept the user approves.\n\n- **12 to 15 ideas** by default (30 on request), each a different idea: a different pain, outcome, situation, perspective or format, not one idea reworded. Mix visual, verbal and combined hooks; mix direct (names the app or feature) and indirect (starts with a situation) openers; cover the audience's awareness levels; a few with humour or edge; when the audience and brand fit, one or two catchy or brainrot ideas.\n- One line per idea, with tags:\n  > H07 · combined · problem aware · Problem · pain: \"can't fall asleep\" · visual: clap in front of the lens, she's in bed in phone light · line: \"If your brain starts talking at 2 am, listen.\" (9 words) · text: \"2 am again?\" · hypothesis: night-scrollers stop for a sleep pain said in their words\n- **Recommend N** for production (default 4) with one line why. A good set of 4 usually has different kinds (at least one visual-led and one verbal-led or combined), different pains or angles from the pain map, different main characters, and one idea from the user's own sources if they have any. Guidance, not a quota: explain your choice.\n- After approval, save the whole bank in a user text node \"Hook bank\" in the workflow (picked ones marked) for the next MORE round.\n\n## Writing one hook\n\nWrite the muted version first: the first frame plus text must work with sound off.\n\n- **First frame:** the hook moment at frame 0, already moving. It is also the thumbnail, so it must read on its own.\n- **Spoken line** (verbal and combined hooks): aim for about **6 to 10 words**, said within ~3 s; count the words. Start on the key word; no \"So\", \"Okay\", \"Hey guys\". A longer line is fine only if it still lands by second 3.\n- **Text on screen:** 2 to 6 words, echoes the line (doesn't contradict it), on frame 1 in full, marked for post (added in the Video Editor, never in a prompt), inside the safe zone.\n- **Sound:** what is heard in the first second. Sound stays on at generation. When someone speaks in the clip: no music under the voice (\"no music, no background music, no soundtrack, no score\" in that clip's prompt, base Reference C). Clips without speech may keep their music hits.\n- **Visual beat** (combined hooks): 0.5 to 1 s, then the line starts on top of it or right after; both tell one idea.\n\n**Checks for every line:** one idea · simple (about a 5th grade reading level, no corporate or \"AI\" marketing words) · sounds natural said aloud · specific to this app, audience and moment (if it could sell a hundred apps, rewrite) · true (nothing outside the Brand Kit, app card or verified research) · different from the other hooks.\n\nConcept line per picked hook (goes into the plan):\n> C1H2 · combined · problem aware · Problem · Visual: a clap in front of the lens, she's sitting in bed in phone light at 2 am. Line: \"If your brain starts talking at 2 am, listen.\" Text (post): \"2 am again?\" Sound: the clap, then silence. Then: her pain (3 to 6 s), the app's wind-down timer (real screenshot), she falls asleep, CTA.\n\n---\n\n## Deliverable and modes\n\n1. A **hook bank** (12 to 15 ideas) saved in a \"Hook bank\" text node.\n2. N hook clips and **N finished videos**, one per picked hook, each in its own Video Editor. All variants share the same body (Brain), CTA (Pocket), music and end card, so the test isolates the hook.\n\nName every final with a code the media buyer can paste into Ads Manager: `B{batch}-A:{angle}-F:{formula}-C{concept}H{hook}-Iteration`, e.g. `B3-A:SleepIn5min-F:PAS-C1H2-Iteration`. Node label: \"Final: C1H2 · combined clap + pain line\".\n\n**When MORE is the right move:** right after an ad is validated · hook rate low while hold rate and CTR are fine · a winner fatiguing after 2 to 6 weeks (keep audience and angle, replace only the hook) · a losing streak (new hooks on a past winner). Not this skill: weak body or high CPC → Better; dead angle → new concept or angle (base skill). Only hook texts wanted → stop after the bank.\n\n| Mode | When | What gets built |\n|---|---|---|\n| **A. Hook multiplier** (true MORE; default when a body exists) | The user has a body: an existing or winning ad, a Lyra workflow, a video to upload | the original ad as control + N new hooks, each a hypothesis; only the first 2 to 3 s change → N Video Editors (hook N + same body, music, CTA) |\n| **B. Hook-led short ads** (default when there is no body) | Nothing exists yet | N ads of 10 to 15 s on the default spine: hook → pain → app solves it → CTA; pain, solution and CTA as identical across variants as the hooks allow |\n\nMode A body sources: the user's own Lyra workflow (build the hooks inside it, in a new Section) or a finished video (create_upload + attach_upload). Results can't be connected across workflows.\n\n### Hook multiplier: testing hypotheses with the same body\n\nOnly the first 2 to 3 s change; everything after the cut point stays exactly as it is. That makes each new hook a clean test of one **hypothesis**, and the cheapest way to learn what stops this audience.\n\n**1. Hypothesis per hook.** Every hook in the bank carries one line: \"We think [segment] stops for [pain / angle / hook kind / format].\" Decide what the round is testing and vary that, keeping the rest close:\n\n- **Which pain or desire** hits hardest (same kind of hook, different pain from the pain map).\n- **Which kind** works: visual vs verbal vs combined (same pain, different kind).\n- **Which segment** responds: a callout per segment (students vs parents vs freelancers).\n- **Which framing:** negative vs positive, question vs statement, identity vs feature.\n- **Which format:** UGC person vs catchy or brainrot vs demo.\n- **Finer tests** for a winner: same line with a different first frame, or same first frame with a different line.\n\nA round can mix hypotheses, but say which hook tests what, so the result teaches something.\n\n**2. Control.** Keep the original ad with its own hook in the test as the control (champion). New hooks are challengers; a hook wins only if it beats the control on the user's KPI.\n\n**3. The cut point.** Find where the old hook ends (usually 2 to 3 s; ask the user or read the composition in the Video Editor). Trim the body from that point (`trim.sourceStartMs`). Check that the body still makes sense without the old hook: the voiceover doesn't start mid-sentence, no line refers back to the old opening, the first body frame follows the new hook naturally. If the old hook was spoken over the body, trim the VO too and keep the rest identical. The new hook ends on an end state that cuts cleanly into the body's first frame (cut on action, match cut, or a deliberate hard cut).\n\n**4. Scale.** 4 to 6 new hooks per round is a good default; more (up to 10 to 20) when the budget allows, built in rounds from the bank. Each round's winners and losers go to the hook repository with the hypothesis they tested.\n\n**5. Reading the result.** The winning hypothesis is the learning, not only the winning video: a winning pain or segment feeds the next ads, angles and Brand Kit notes; a winning kind or framing becomes the default for the next round.\n\n**Double hook (optional, mode A):** a second proven hook right after the first (0 to 3 s, then 3 to 6 s). Offer as one extra variant when hold rate is low or CPC is high; it is a Better test.\n\n## Best way to build it\n\nThe user's explicit choices override any row. Models and prices: base Reference A.\n\n| If the hook is | Best approach (graph) | Models |\n|---|---|---|\n| **Combined, UGC person** (common default) | character image → hook keyframe (the visual beat at frame 0) → one clip with the beat, then the spoken line in quotes, then the pain; or the hook as its own 4 to 5 s clip trimmed to 1.5 to 3 s | nano-banana-pro · seedance-2.5 |\n| **Verbal, talking head** | character image → clip starting mid-sentence, the line in quotes, natural gestures | nano-banana-pro · seedance-2.5 |\n| **Visual, no speech** (object POV, metaphor, transformation, ASMR) | hook keyframe → clip 4 to 5 s with exact action order; music or SFX; caption in post | seedance-2.0 (frame) or seedance-2.5 (refs) |\n| Dialogue or \"people talking about the prospect\" | two character images as references → one clip, who says what by [ImageN] | seedance-2.5 |\n| Shows the app (demo, feature) | user screenshots → phone image → short clip or UI insert (base Reference D) | seedance-2.0 (frames) or 2.5 (refs) |\n| Mode A, same person as the body | a still of that person from the body as reference; no still → a faceless hook | seedance-2.5 |\n| Mode B, full short ad | per hook: character → one multi-shot clip 10 to 15 s with \"cut to\" between hook, pain and solution, or separate clips joined in the Video Editor; VO + music; logo end card | seedance-2.5 · nano-banana-pro |\n| Lyra Hook template picked | use_template → adapt (Step 1b) → one Section per hook | as the template, upgraded |\n| Double hook variant | hook clip A + hook clip B + body → one extra Video Editor | as above |\n| Only hook texts | stop after the bank | none |\n| Catchy: talking object, AI character, micro-drama | original character image (nano-banana-pro, the style chosen: lo-fi, cartoon, 3D) → clip with the line in quotes; one character reference for the whole series | nano-banana-pro · seedance-2.0 (stylized) or 2.5 (realistic) |\n| Catchy: split screen | top clip (person or story) + bottom clip (original satisfying loop) → Video Editor with two video layers positioned top and bottom (position x/y/width/height), captions in the editor | seedance-2.5 + seedance-2.0 |\n| Catchy: chat thread, comment reply | message or comment images designed with exact text in quotes (stylised, not a copy of a real messenger) → laid over the video in the Video Editor, one by one | nano-banana-pro + video_composer |\n| Catchy: trend remix | the trend mechanic as an image or clip with the user's character → hard cut to the app part | per trend: seedance-2.5 or kling (frames) |\n| Many hooks, tight budget | hook clips on a draft model, rerun winners on the recommended one | seedance-2.0-fast |\n\n**Hook clip length.** Seedance's minimum is 4 s: generate 4 to 5 s, put the hook beat in the first 1.5 to 3 s, plan a clean cut point (end state) into the next shot, trim in the Video Editor.\n\n**Layout.** Section \"Hook bank\" (text node), one Section per hook (its nodes + its Video Editor), one Section for the shared body, music and VO. Labels: \"C1H1: clap + pain (frame)\", \"C1H1: clap + pain (clip)\", \"Final: C1H1 · clap + pain\".\n\n## Video Editor per hook\n\nOne `video_composer` per hook, in playback order: hook clip → body clip(s) → end card, then VO and music. Everything except the hook is identical across variants: same body trims, same music (starting at 0 so the hit lands on every hook), same body VO and CTA, same end card. Keep the hook's own sound or line; lower the body clip's sound if it clashes. Hook text and captions are added in the editor UI: tell the user what to add and where. Captions, if the user wants them (asked in the approval message), follow the base rule (`lyra-video-editor` → Captions: size 80, at 75% of the height, under the face); the hook text on frame 1 is a headline, placed in the safe zone. If the hook opens a loop or promises a list, check the body delivers it.\n\n## Run options for hooks\n\n**Run order, not a menu** (base Step 6): after the user's yes, run all of it in this order without offering options. Stop between stages (the look first, then the rest) only when the user asked for it, or when the plan is expensive and that was said in the approval message.\n\nAs in the base skill, credits read from the nodes and multiplied by N; the hook bank costs nothing. **A. Hook images (recommended):** all N keyframes and characters · **B. Hook clips** for the frames the user picked · **C. Everything** → N Video Editors.\n\n---\n\n## Prompt rules (hooks)\n\n| Node | Write | Avoid |\n|---|---|---|\n| Hook bank (text node) | each idea with number, kind (visual / verbal / combined), awareness level, main character, pain, visual, line, text, word count; picked ones marked | long explanations |\n| Hook keyframe | the hook moment itself at frame 0: the visual beat mid-action or the person mid-sentence, the pain visible, phone-real for UGC, 9:16 | an establishing shot; text; drawn UI or logos |\n| Hook clip | action from frame 1; for combined hooks, the exact order (\"she claps once in front of the lens, lowers her hands, looks into the camera and says: '…'\"); the surprise readable in ≤1.5 s; spoken line in quotes; who says what in dialogue; cause and effect; the end state at the cut point | slow build up; two surprises; the caption text in the prompt; a polished \"ad\" look |\n| Hook VO (if separate) | the exact hook line as its own short VO node; body VO shared | filler openers; price; claims not in the Brand Kit |\n\nNo third-party brands, games, channels, landmarks used as brands, or famous people in prompts unless the user owns the rights.\n\n## Truth and brand safety\n\n- **Brand safety** (Lyra's System Preamble, base Reference B): no profanity, no political statements, no unsubstantiated health claims, no competitor disparagement. The Brand Kit's **forbidden claims are enforced absolutely**, in every hook line, caption, first frame and VO; if the user asks for one, say once that it is on the kit's forbidden list and leave it out unless the user confirms the kit is outdated.\n- Hooks never carry a claim, number or offer that isn't in the Brand Kit or the user's message; a provocative or negative hook challenges a habit, never the viewer, a group or a competitor.\n\n## Common mistakes (hooks)\n\n| Mistake | Prevention |\n|---|---|\n| A hook clip where someone speaks comes with music under the voice | No-music sound line in every clip with speech; our music in the Video Editor |\n| Hooks written without reading the Brand Kit | Pain map first; every hook tied to a real pain or desire |\n| Waiting for perfect input before proposing anything | Pain hypotheses + first ideas in the first reply |\n| Visual beat and line say two different things | One idea per hook across all layers |\n| A visual trick with no link to the pain | The trick leads into the pain by second 3 |\n| Two weak hooks stacked instead of one strong | Stack only when each layer adds something |\n| Video credits spent on untested ideas | Hook bank first; the user picks |\n| N hooks that are one idea reworded | Different pains, kinds, mechanisms, main characters |\n| Generic line that could sell any app | Specific to this app, audience, moment |\n| Hook type doesn't match the audience | Awareness table |\n| Body, music or CTA differ between variants | Lock the body; only the hook changes |\n| Logo intro, fade in, \"Hey guys\", feature list first | Frame 1 already moving; pain or outcome by second 3 |\n| Hook promises what the app or body doesn't deliver | Promise only what the app card supports |\n| Invented reviews, ratings, numbers, press, testimonials | Verified sources only; no proof → demo |\n| Viral video copied instead of modelled | Mechanism only |\n| Hook clip set to 1.5 s (rejected) | Generate 4 to 5 s, trim |\n| Different face in hook and body | Body still as reference, or faceless hook |\n| Template run as it came | Adapt per Step 1b |\n| Hook multiplier without a control or without a stated hypothesis | Original ad as control; one hypothesis line per hook |\n| Remnants of the old hook in the body (VO mid-sentence, a line about the old opening) | Cut point checked; body and VO trimmed cleanly |\n| Brainrot opener that never connects to the app | Pain or app by about second 3 |\n| Known meme characters, real games or a copied trend video | Original characters and backgrounds; the mechanic only |\n| Chat or notification that copies iOS / WhatsApp / system UI, or a fake chat sold as real | Stylised bubbles, real or clearly fictional content |\n| Chaotic brainrot look on a trust-heavy brand | Borrow the logic, not the look |\n\n## Quality gates (hooks)\n\n- **Stage 0 (bank, Claude checks before sending):** every idea tied to a pain or desire from the pain map? Different ideas, kinds and awareness levels? Layers of each hook tell one idea? Lines simple, specific, true, sayable, counted? No invented proof?\n- **Stage 1 (images):** each hook moment reads in one glance, muted, even as a thumbnail? The N hooks clearly different? Same person as the body where needed?\n- **Stage 2 (clips):** action from frame 1? Visual beat and line in the planned order? Surprise lands in ≤1.5 s? Line clear? Clean cut point? Native, not an ad?\n- **Stage 3 (finals):** every final opens on its hook? Pain recognisable right after it? The app's role clear? Body, music and CTA identical across variants? Loops and lists paid off? Text 2 to 6 words in the safe zone? Each final named with its code? In hook multiplier: control included, old hook fully removed, hypothesis written for each variant?\n\n## After the test\n\nHooks are hypotheses. Tell the user how to read the test in one short block:\n\n- Launch all variants the same day, one ad set per concept in an ABO campaign.\n- First signals at 2,000 to 4,000 impressions; judge each ad at 5,000+ impressions, never on day one.\n- **Hook rate** (3 s views ÷ impressions): target above 40%; 2026 medians are about 28% on Meta and 33% on TikTok, top 10% about 45% and 55%; below 20% is weak. **Hold rate** (ThruPlays ÷ 3 s views): target above 30%. Compare with the account's own averages.\n- Sales and profit → winner · no sales → not a winner, but an outstanding hook rate earns one more test · sales without profit → worth another test. No winner → next ideas from the bank, or a different pain or angle.\n- Judge winners by CPA / ROAS (cost per install, trials, payers), not hook rate alone.\n\nThen offer: save winning and losing hooks (hypothesis, kind, pain, line, visual, hook rate) to a **hook repository** doc in the project; the next round from the unused bank; the winning hook on other ads of the same angle; Better on the winner; other sizes or languages (matching skills). A winner lives about 2 to 6 weeks: start the next round before it fatigues.\n"
}

SHA-256 of public snapshot: 6f037b53454f3c79b1d7d09ae26009cba27154e457b25fd5daee35a4dcc705fa