agentleFS
artemnovitckiiartemnovitckii/content-skills/viral-hooks/SKILL.md

viral-hooks

Skill91 starsChanged 5 months agoMITView on GitHub

Use when writing or auditing the opening lines of any content — reel hooks, carousel slide 1, video intros, newsletter subject lines, tweet openers — or when a draft's opener feels flat, vague, or skippable.

6 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 8 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every weak hook fails in one of exactly four ways.

    line 21
  2. Distinctive:

    Fix: Delete everything before the topic.

    line 30
  3. Distinctive:

    When a killer's fix references "the first 2 seconds," translate it to the active platform's deadline.

    line 74
  4. Distinctive:

    Don't sacrifice clarity to force a one-liner.

    line 83
  5. Distinctive:

    Read your own top hooks for that platform — absorb cadence, energy, vocabulary.

    line 100
  6. Distinctive:

    Write each hook through the four-killer checklist below, translating DELAY to the platform's deadline.

    line 102
  7. Distinctive:

    Never flag without quoting the words that triggered it.

    line 119
  8. Distinctive:

    All five pass → the hook is working.

    line 129

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Viral Hooks

A hook has exactly ONE job: help the right viewer decide to keep watching. To do that job it must deliver two things, and only two things:

  1. Topic clarity — within 1-2 seconds, the viewer knows exactly what this is about.
  2. On-target curiosity — the viewer believes this is for THEM, and an open question pulls them forward.

Everything in this skill exists to make a hook hit both. A hook that's clever but unclear fails. A hook that's clear but flat fails. Both, or it's not done.

Always pair with your voice: before writing hooks, read the hooks from your own top-performing posts. Match their cadence and energy — the patterns below are mechanics, your real posts are the sound. If you have a voice file (see the voice-dna skill in this pack), use it.

If you have no sample of your voice (auditing an outsider's script, a brand-new account, fewer than ~10 posts): proceed on the mechanics alone and say so in the output ("voice unverified — no sample to check against"). Never block, never silently pretend the voice check happened.

The Four Hook Killers

Every weak hook fails in one of exactly four ways. Diagnose which one, apply the fix.

1. DELAY — topic arrives too late

Every word spent before the topic lands costs you readers. What "too late" means depends on the platform (see the platform table below): a reel has a ~2-second cliff, a LinkedIn post has the "…see more" fold, a newsletter has the subject line. Same killer, different deadline.

  • ❌ "Okay so this is honestly one of the craziest things I've ever seen, and when I show you, you're not going to believe it."
  • ✅ "Your meal prep is why you're ordering takeout by Thursday."

Fix: Delete everything before the topic. No greeting, no throat-clearing, no "let me explain." The first noun phrase should carry the subject — and it must land before that platform's deadline.

2. CONFUSION — the viewer has to re-read

Nested clauses, abstract words, passive voice. If a line takes two passes to parse, the viewer is already gone.

  • ❌ "The reason consistency with your nutrition tends to break down is that the systems you build on weekends don't account for weekday decision fatigue."
  • ✅ "You prep every Sunday. By Wednesday it falls apart. The reason isn't discipline."

Fix: Fewer words. Simpler words (6th-grade level). Active voice. One idea per sentence.

3. IRRELEVANCE — clear, but not for ME

The viewer understands the topic but can't see themselves in it. The #1 cause: creator-POV framing.

  • ❌ "I've struggled with consistency my whole life." (Viewer: do I share this problem? Maybe not. Out.)
  • ✅ "If you've restarted the same routine five times this year, this is the reason." (Viewer can't opt out — it's aimed at them.)

Fix: Two moves. Swap me/my → you/your. Frame around a pain the viewer already feels — agitate the problem before offering the solve. Solving MY problem is a need; hearing YOUR story is a nice-to-have.

I-framed pattern exception: some sanctioned patterns are legitimately I-framed — story patterns (confession, in-medias-res, expensive lesson) and contrarian-arc patterns ("I stopped X...", "I'll never X again"). For these, the relevance test becomes: is the pain or payoff in the I-statement unmistakably the VIEWER'S too, and does a you-pivot land within the hook's 2-3 lines (or the very first beat after)? An I-framed hook with no you-pivot in sight is still an IRRELEVANCE flag.

4. DISINTEREST — clear, relevant, still skippable

Topic clarity and relevance are there, but no question is left open. The cure is contrast: the gap between what the viewer believes (A) and what you're claiming (B) IS the curiosity. No gap, no pull.

  • Stated contrast (blunt, impossible to miss): "Most people fix this with more discipline. I fix it by deleting the plan entirely."
  • Implied contrast (savvier — only B stated, A implied): "The most consistent clients I've ever had don't use a meal plan at all."

Fix: Name the A (common belief, common method, the viewer's current behavior) and put your B against it. The bigger the believable distance, the stronger the hook.

What "the hook" is on each platform

The four killers are universal. What changes per platform is the unit of attention you're earning and the medium you earn it in. Before writing, know which one you're working in.

PlatformThe hook IS…DELAY deadlineMedium notes
Reel / TikTokFirst 1-2 seconds, spoken + visual~2-second scroll cliffLead with the striking visual — eyes beat ears. Spoken cadence, contractions.
YouTubeTwo hooks: title + thumbnail earn the click; first 15-30s confirms itThe click, then the first 30sTitle = curiosity gap + clarity. First 30s restates the promise and raises stakes — tease the payoff, don't deliver it yet.
LinkedInFirst 1-2 lines before the "…see more" foldThe fold (~2 lines visible in-feed)That's all the feed shows. Earn the expand. Line breaks and white space help. Pattern-interrupt, not corporate.
X / TwitterFirst tweet (thread) or first lineThe text scroll-stopBold claim or numbered promise. Lower context — say the payoff plainly.
NewsletterSubject line earns the open; first line earns the readThe subject lineSubject = curiosity or benefit, not spammy. Never waste line one on "Hey friends."
CarouselSlide 1 text, ≤9 wordsThe thumb-stop on slide 1Must promise a reason to swipe.

When a killer's fix references "the first 2 seconds," translate it to the active platform's deadline. Everything else — clarity, relevance, contrast — applies unchanged.

Hook shape: 2-3 lines, not always one zinger

The best hooks do clarity + contrast in one line — keep those. But a complete hook is allowed to be 2-3 spoken lines:

  • Line 1: topic clarity
  • Lines 2-3: the contrast / curiosity setup

Don't sacrifice clarity to force a one-liner.

Banned openers

These always get flagged — the wrapper words never survive a rewrite. The only judgment call is the blast radius, and the qualifier decides it: if real substance follows the wrapper ("Story time:" followed by an actual stated stake), only the wrapper dies — delete it, it's pure DELAY cost. If the substance is missing, the whole hook dies:

  • "Let me explain" / "let's talk about" / "let's explore" — throat-clearing (DELAY)
  • "Story time:" / "POV:" without content in the same breath — empty wrapper (DELAY)
  • "Nobody talks about this" / "what no one tells you" without naming the thing — vague (CONFUSION + cliché)
  • "[Company] just launched [thing]" — news report, no angle, no stakes for the viewer (IRRELEVANCE)
  • "The shift happening in [industry]..." — philosophical fog (all four killers at once)
  • A CTA as the opener ("Comment X for...") — CTAs close, never open
  • "Wait till you see this" / "you won't believe" — zero topic clarity (DELAY)

Writing mode

  1. Know the platform — pull its row from the platform table; that sets the unit of attention and the medium (spoken reel vs first-line-before-fold vs title+thumbnail).
  2. Read your own top hooks for that platform — absorb cadence, energy, vocabulary. (If you keep a swipe file of hooks that worked, pull from it.)
  3. Build each variant by stacking 2-3 levers (not picking one template) — a pattern, an angle, and a multiplier. Levers and angles are platform-agnostic; express each stack in the active platform's form. Add the Specificity multiplier by default — concrete/odd numbers, named concepts.
  4. Write each hook through the four-killer checklist below, translating DELAY to the platform's deadline.
  5. Deliver 3 variants by default — an explicit request for a different count overrides this. Whatever the count, every variant uses a DIFFERENT lever stack; label each with the levers it stacks (so you learn the why, not just the what).

Audit mode

First identify the platform (the caller says, or infer from the content — a subject line vs a spoken open vs a first-tweet). Apply the four killers against that platform's deadline. Score each killer — pass or flag with the exact offending words quoted. Then rewrite. Output format:

HOOK AUDIT: "your meal prep is failing you — let me explain why that is"
  Delay:       FLAG — "let me explain why that is" postpones the payoff
  Confusion:   pass
  Irrelevance: pass — "your" framing ✓
  Disinterest: FLAG — no contrast; what's the A vs B?
  Voice:       pass — cadence matches your posts  (or: "unverified — no sample available")
  Rewrite: "Your Sunday meal prep is why you quit by Thursday. The fix isn't more discipline — it's prepping less."

Never flag without quoting the words that triggered it. Never rewrite without preserving your voice (check a sample if unsure).

The checklist (every hook, before it ships)

  • Topic clear in the first 1-2 seconds? (no DELAY)
  • Impossible to misunderstand on one pass? (no CONFUSION)
  • "You/your" framing around a felt pain — or, for I-framed patterns, a you-pivot within the hook? (no IRRELEVANCE — see the I-framed pattern exception)
  • A-vs-B contrast that opens a real question? (no DISINTEREST)
  • Sounds like you, not like a template? (voice check)

All five pass → the hook is working.

Common mistakes

MistakeWhy it fails
Three variants that are one idea rewordedYou get no real choice — vary the PATTERN, not the synonyms
Hook promises what the script doesn't deliverViewers punish bait; retention dies at the reveal
Maximizing shock over believabilityContrast only works inside the viewer's belief range — "this one trick doctors hate" is dead on arrival
Polishing grammar into stiffnessSpoken hooks need spoken rhythm; read it aloud, keep the contractions
Hook for everyoneA hook for everyone stops no one — name the person ("if you've restarted five times this year")

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.