shipped@di-atomic/hook-generator · v1.4.0 · beta

53 sourced hooks. 7 with real numbers. Your agent invents none of them.

Ask any model for ten hooks and you get the statistical middle of every opener it has ever read. hook-generator installs instead — from 53 templates that each carry the URL they came from — then refuses to hand you the set until five scripts agree it passed.

For founders and marketers whose AI writes the first line — and quietly hands them the same opener it just handed everyone else.

A chalkboard split in two: INVENT, where a training-data cloud funnels into six identical grey rectangles, versus INSTALL, where a drawer of sourced hooks feeds six different gold shapes
Built by Di-Atomic Marketing & compliance agency BPR / CLP claim-aware 7-language team Clients incl. ONYX Radiance, Pamit Group
53source-attributed hook templates
6angles generated on every run
5enforcement scripts gate every set
100/100marketplace security score
Installopvs-skills install @di-atomic/hook-generator

Then say: “write me 5 LinkedIn hooks for CFOs at mid-market SaaS”

Why it works when “write me some hooks” doesn’t

A model inventing from training data
> write me 10 hooks

"Unpopular opinion: ..."
"Here’s the thing nobody
 tells you about ..."

(no source, no length gate,
 no structure check)

They scan fine. They are also the average of every opener the model has read, which is why your feed is full of them.

hook-generator installs, then gates
install registry/  ✓ 3 templates + URLs
generate           ✓ 6 across 6 angles
verify-hook-quality   ✓ 6/6 under ceiling
lint-anti-patterns    ✓ 0 banned
grade-against-examples ✓ 6 structures
lint-build-diary      ✓ 6/6 level 3

Five scripts gate the set with PASS/FAIL numbers the agent can’t fudge.

A hook that sounds good is not proof. The exit code is.

What you actually get

📇

It installs, it doesn’t invent

Matches on platform and angle, pulls templates out of a 53-item registry, and writes your topic into shapes that already ran on real posts. Every template carries the URL it came from.

🎯

It knows the surface and the moment

Six angles — contrarian, number-led, admission, story, future-shock, identity — tuned to where each platform truncates. Announcing a launch loads a separate recipe that names what the buyer gets instead of how you built it.

🚫

It hard-blocks regulated claims

Sell a biocide and “non-toxic” is a BPR problem, not a style choice. That lint is a hard gate and cannot be overridden, in any of the seven languages we work in.

The two rules that keep it honest

Chalk grid of squares with exactly 7 filled gold, bracketed 7 measured, and the rest as outlines bracketed pattern-level
Only 7 carry a verifiable metric. The rest say pattern-level rather than carrying a number nobody measured.
Chalk diagram: six hook cards pass through five gates labelled LENGTH, SLOP plus BPR, STRUCTURE, LAUNCH LINT and COORDINATION, with a fail loop back to rewrite and a gold pass arrow out
Every set runs the same five gates. Fail one and it loops back to rewrite — there is no ship-anyway path.

A real run — including the one that failed

> 6 blog-title hooks for the launch of this very skill

  RUN 1
  lint-build-diary ........ FAIL  1 hook read as level 2, a symptom not a launch
  lint-anti-patterns ...... PASS  0 banned
  grade-against-examples .. FAIL  1/4 structures, 2 UNCLASSIFIED

  → regenerate

  RUN 2
  lint-build-diary ........ PASS  6/6 level 3 launch
  lint-anti-patterns ...... PASS  0 banned, 0 em-dashes
  grade-against-examples .. PASS  6 structures, 0 questions, 0 unclassified

  Shipped: "Everyone’s launch post sounds like a build log.
            Your agent writes the other kind."

That is the actual gate output from writing this page’s launch post. Deterministic scripts — not an LLM grading its own copy.

Where it stops

Chalk diagram: a gold hook-generator box inside a dashed boundary emits the opener, fanning out to post-writer, outbound-engine and section-designer, which reach a globe labelled publishes
It writes the opener and nothing else. The siblings finish the job and publish — this one produces text and stops.
It will not write your body copy, your full post or your email sequence. And it will not invent a language it has not validated: German, French, Spanish, Russian and Romanian templates are held until the native lead for each signs off, and Hebrew is out entirely. Ask for those today and it tells you so instead of guessing.
Why this exists

I built this by dogfooding the same stack I run for clients.

hook-generator is one skill in the system behind Di-Atomic — the marketing & compliance agency that runs cognitoAI, SpiderIQ and OPVS. If you want openers that are grounded in evidence rather than guessed at, gated before they ship, and compliant in regulated categories — in any of our seven languages — that’s the day job. Let’s talk.

Book a 30-min call with Di-Atomic

Just want the skill? Install @di-atomic/hook-generator free.