Install
openclaw skills install copywriting-hooksGenerate opening hooks for long-form articles in EN or FR — blog posts, Substack/Medium/dev.to, LinkedIn long-form, paid newsletters, opinion essays, reported features, technical deep-dives. Trigger whenever the user asks for a hook, opening, lede, intro, first sentence/paragraph, opener, accroche, attaque, phrase d'accroche, or première phrase — including making a flat intro punchier or rewriting a draft opening. Also trigger when ghostwriting skills reach the opening step. Proposes 3-4 hooks pulling distinct psychological levers (curiosity gap, contrarian, scene, promise, authority), 2 candidates each, waits for the user to pick. Do NOT trigger for social posts (LinkedIn feed, Twitter/X, TikTok, Bluesky, Threads), READMEs or doc first lines, taglines, email subjects or openers, ad copy (Google/Meta Ads), landing-page headlines, press releases, SEO meta, fiction openings, talk/podcast/video script intros, or body rewrites.
openclaw skills install copywriting-hooksA hook's only job is to make the reader want sentence 2. Voice, structure, formatting, all of it, follow from that one job.
What makes a reader want sentence 2 is one of five levers:
A strong hook usually pulls two levers at once. "Frank Sinatra, holding a glass of bourbon..." is scene plus open loop. "Most people think X. They're wrong." is prediction-break plus gap. Single-lever hooks can still work but are easier to ignore.
Three further principles:
When this skill triggers:
ask_user_input_v0 if available. The choice is a small fixed set, which is what that tool is for.Diversification rule. Across your 3 to 4 options include at minimum:
This guarantees real choice. Three flavors of contrarian is not a choice.
Type-fit reference:
| Article type | Strong hooks | Avoid |
|---|---|---|
| Technical deep-dive | concrete detail, statistic, contrarian, direct problem | personal confession, scene opener |
| Personal essay | in medias res, personal confession, time anchor, definition reversal | bold claim, direct problem |
| Opinion / contrarian | bold claim, definition reversal, contrarian, quote + disagreement | gentle setup, dictionary opener |
| Tutorial / how-to | direct problem (PAS), promise, conditional | scene opener, historical analogy |
| Reported / investigative | concrete detail, time anchor, in medias res, statistic | bold claim, definition reversal |
| Listicle | curiosity gap, counted stakes, conditional | personal confession, in medias res |
| Longform analysis | historical analogy, statistic, contrarian | direct problem |
| Newsletter issue | personal confession + open loop, conditional, curiosity gap | dictionary opener |
Always present options exactly like this:
## Hook options for: [working title]
**Option 1: [Hook name]** ([lever])
A. [Candidate 1]
B. [Candidate 2]
**Option 2: [Hook name]** ([lever])
A. [Candidate 1]
B. [Candidate 2]
**Option 3: [Hook name]** ([lever])
A. [Candidate 1]
B. [Candidate 2]
Which? Reply with letter combination (e.g., "1B") or "more" for different techniques.
If the user says "more" or "none", produce 3 different hooks (not new candidates for the same hooks). If the user says "blend 1A and 2B", write a combined hook and check in again.
Each hook: what it does, examples (mix EN and FR, real and illustrative), when to use, when to avoid.
Open an information gap the reader wants closed.
Use when: you can honestly close the gap in 2 or 3 sentences. The gap must be one the reader cares about. Avoid: vague gaps ("You won't believe what happened next") that the reader cannot even guess at.
Knock down a consensus belief the reader holds.
Use when: you have a defensible non-consensus view and 200 to 400 words to defend it. Avoid: strawmen, gratuitous edginess, contrarianism for its own sake.
State the outcome upfront, before the proof.
Use when: you can deliver on the promise concretely in the article. Avoid: promises larger than the payoff. Destroys trust permanently.
Drop the reader inside a specific moment, no setup.
Use when: longform, profile, reported piece, essay. Avoid: short technical pieces where the reader has not earned the scene yet.
Lead with a number that violates the prior.
Use when: the number is genuinely surprising and you can cite it accurately. Avoid: vague stats ("studies show 90%..."), stats that confirm the reader's prior (no surprise equals no hook).
Pose a question the reader actually wants answered.
Use when: the reader was implicitly carrying the question. Avoid: "Have you ever wondered...?", "Did you know...?", "What if I told you...?". These presuppose curiosity not yet formed.
Borrow weight, then twist.
Use when: you have a real quote that supports or genuinely contrasts your point. Avoid: misattributed Einstein, Seneca, Confucius, Bouddha platitudes. Cliché.
Admit something vulnerable, then universalize.
Use when: personal byline, essay, newsletter. Avoid: corporate byline, technical articles where the author voice is not personal, performative vulnerability ("I almost didn't write this...").
Replace abstraction with a single vivid detail.
Use when: profile, reported piece, contrarian biographical setup. Avoid: specificity that does not advance the thesis (clutter).
Break expected rhythm with a fragment.
Use when: rhythm-driven content, opinion piece, when the reader expects flow and you want to interrupt it. Avoid: every article. It becomes its own pattern fast.
Name the pain, sharpen it, hint at solution.
Use when: tutorial, how-to, sales-adjacent content. Avoid: manufactured problems. Reads as fear-mongering. The pain must be real and recognizable.
State a specific, bounded outcome.
Use when: tutorial, how-to. Avoid: vague promises ("Learn how to be more productive"). Add a time bound or a number to anchor it.
Open with a vignette from history, pivot to the present.
Use when: longform analysis, opinion piece, idea essay. Avoid: tutorials, news pieces. Reads as indulgent.
"X is not what you think. It's Y."
Use when: opinion piece, contrarian deep dive. Avoid: when your reframe is just a slight angle. Sounds gimmicky.
Lead with a name plus a specific action.
Use when: business piece, profile, analytical essay. Avoid: name-dropping without payoff. The action must be specific and relevant.
Lead with a specific date, hour, or moment.
Use when: reported piece, retrospective, "why now" framing. Avoid: vague time anchors ("recently", "these past few years"). Use a specific date or cut the time framing.
Self-segment the reader. Pre-target the curiosity.
Use when: tutorial, advice piece, segmented audience. Avoid: conditions too broad ("If you've ever felt stuck..."). Segments nobody.
Start something, withhold the resolution.
Use when: longform, pieces where the journey matters as much as the answer. Avoid: unresolved loops. Creates disproportionate betrayal when the article ends without paying off.
Cliché openers that immediately disqualify the writer:
Current AI tells (refresh yearly):
Run every candidate through this list before presenting. If a candidate matches, rewrite.
For the extended anti-pattern list, see references/anti-patterns.md.
If the audience is French: write in French. Apply the attaque journalistique register: concrete scene-setting, restrained tone, dated anchors, formal "vous" or restrained tutoiement. Do not translate American hype tropes literally. "You'll never believe..." becomes "Vous n'allez pas en croire vos yeux", which reads as scam in French. French marketing-skepticism baseline is higher than English; high promises trigger réactance faster.
If English: default to direct-response register for marketing or tutorial content, longform register for essays and reported pieces.
If bilingual: produce hooks in both languages, label clearly.
For deeper register guidance, see references/anglophone-vs-francophone.md.
references/anti-patterns.md: extended cliché and AI-tell list.references/anglophone-vs-francophone.md: register conventions, what does not translate.references/formulas.md: 30 reusable templates (EN + FR) for quick template-based hooks.The catalog above is sufficient for most invocations. Load references only when the user asks for templates, deeper register guidance, or to sanity-check anti-patterns.
If invoked from inside another skill's workflow (e.g., technical-article-writer reaches the hook step), produce options, ask, wait. Return the chosen hook to the parent skill for the rest of the article.
If the user has already drafted an opening and asks for "a better one", treat that draft as Option 0 (their current version) and propose 3 alternatives across different hooks. Do not silently discard their version.
User: "I'm writing a Substack piece on why most Go developers misuse generics. About 1500 words, intermediate Go devs, English."
Correct skill response:
## Hook options for: "Why Most Go Developers Misuse Generics"
**Option 1: Contrarian** (prediction-break)
A. Most articles on Go generics explain when to use them. This one explains when to delete them.
B. Generics were the most requested Go feature for a decade. Three years in, the people who pushed hardest for them are the ones telling you to stop using them.
**Option 2: Concrete detail** (sensory + specific)
A. samber/lo ships 87 generic helpers. Six of them account for 94 percent of the binary-size complaints. The other 81 are fine.
B. A function called `Map[T, U any]` looks innocent. Compile a project that imports it 40 times and your build time triples. Here is why.
**Option 3: Direct problem (PAS)** (reader-direct)
A. Your Go code compiles slower since you adopted generics. The cause is not what the linter is telling you.
B. If your team adopted generics last year and your build times doubled, you are not alone. The diagnosis is more boring than the fix.
Which? Reply with letter combination (e.g., "1B") or "more" for different techniques.
Then wait for the pick. Do not write the rest of the article until the user has chosen.