agentleFS
kenashekenashe/x-article-toolkit/skills/hook-writer/SKILL.md

hook-writer

Skill2 starsChanged 42 days agoMITView on GitHub

Write and score the hook of an X Article: the first lines of the body that X shows under the headline on the timeline card (about 130 characters visible), built from 40,478 X Articles. Use whenever you need an opening line or a preview for a locked headline, want the card to read better, or ask which opening is stronger. Runs after headline-writer has locked the headline. Model-neutral canonical edition: scripts and the dataset are optional accelerators.

3 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. m-binimran/creator-pack★ 3same name
    2. sidchaudhary/gtm-skills★ 1same name
    3. Noumenon-ai/noumenon-free-starter-pack★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository4 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the dataset is available: filter by the article's topic, then read the preview column of the top winners whose headline has the same …

    line 33
  2. Very specific:

    If a state store is connected: the hooks the user approved, their verbatim feedback and real results.

    line 34
  3. Distinctive:

    Write 8 candidates, each two sentences with a line break after the first:

    line 54
  4. Distinctive:

    No question in the first line, and avoid "The" as the first word (0.87x).

    line 57
  5. Distinctive:

    Keep the case of the headline, so a lowercase headline gets a lowercase hook.

    line 59
  6. Distinctive:

    Use the article's own facts.

    line 61
  7. Very specific:

    When the user approves a hook, it is LOCKED.

    line 80
  8. Very specific:

    If a state store is connected, record the date, headline, hook, opening move, score and why the user chose it, following shared/schemas/.

    line 81
  9. Distinctive:

    If no state store is connected, skip silently.

    line 82
  10. Very specific:

    Run cover-writer with the locked headline and hook when the user asked for the full pipeline (see workflows/x-article-publishing.md).

    line 85

“Common” is measured: kept by at least 6 in 10 of the 3 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

HOOK WRITER

What this is: an opening-line procedure built from 40,478 X Articles: 6,835 over 100k views and 33,643 under, Jan 1 to Sep 26, 2026, research by @fuckgrowth (the X article "how to write better headlines"). The dataset, whose preview column holds the first 300 characters of every winner's opening, and the research doc are linked in SOURCES.md at the repository root.

The preview is the article's first paragraph, so what this skill writes is the opening of the article itself. The honest limit comes first: the first lines move the odds far less than the headline. On the full comparison of 33,426 articles, two things held on both outcomes: a short first sentence helps a little (1.07x), and a question in the first line hurts (0.84x on views, 0.77x on 500 likes). The rest of this skill is craft that winners used, so never promise reach from the hook.

This is the canonical, model-neutral edition. How a given AI system loads these files is the job of adapters/.

WHAT YOU NEED

Required (in this folder): rules.md, templates.md, and a LOCKED HEADLINE. Optional accelerators:

  • scripts/hook_check.py renders the card and scores candidates (Python 3, standard library). Without code execution, apply THE HOOK CHECK from rules.md by hand and count the visible 130 characters yourself.
  • The public dataset (shared/data/) as a swipe file of winning openings (the preview column). Without it, use templates.md only.
  • A state store (state/README.md) for approved hooks, feedback and results. Only when connected.

STEP 0: LOAD (every run, in this order)

  1. rules.md: how the card cuts the preview, what the full comparison measured, and the rules that follow from it.
  2. templates.md: two-sentence openings that winners used, each with its measured status.
  3. If the dataset is available: filter by the article's topic, then read the preview column of the top winners whose headline has the same shape as yours (the shape column).
  4. If a state store is connected: the hooks the user approved, their verbatim feedback and real results. When recorded feedback and rules.md disagree, the feedback wins.

STEP 1: INTAKE

This skill expects a locked headline. If you were handed one (labelled Locked headline: by headline-writer or stated by the user), use it verbatim. If there is none, say so and run headline-writer first (or ask the user to pick one), because the hook is written against the headline.

Take the rest from the article draft and ask once only for what is genuinely missing:

  • The headline's shape: how to, guide or course, receipt, announcement, or a claim.
  • One concrete thing the headline did not say: a number, a name, a date or a place. Pull these from the draft.
  • The reader's moment: where they are, what they're doing wrong and what it costs them.
  • The topic and the case of the headline.

STEP 2: CHOOSE THE OPENING

Pair it with the headline's shape, using the pairing table in rules.md:

  • how to: the old way and what it costs, with a number;
  • guide or course: what's inside, in four to six nouns;
  • receipt: the result and its number in the first sentence, then how it happened;
  • announcement: what the thing does, in one plain sentence that names it;
  • claim: the reader in a scene, or a dated event with the writer in it.

STEP 3: GENERATE

Write 8 candidates, each two sentences with a line break after the first:

  • Sentence one is short and complete, six words or fewer where the material allows and never more than twelve, because that is the one opening that helped on both outcomes.
  • Sentence two is longer, starts to deliver, and crosses the cut at about 130 characters, so the reader clicks to finish it.
  • No question in the first line, and avoid "The" as the first word (0.87x).
  • At least 2 candidates carry a number or a name that isn't in the headline, and at most 1 restates the headline.
  • Keep the case of the headline, so a lowercase headline gets a lowercase hook.
  • Borrow shapes from the preview column when the dataset is available: find the closest winning opening for your headline's shape and swap every slot.
  • Use the article's own facts. Never invent a number, a name or a result to make the hook land.

STEP 4: SCORE

With code execution (from the repository root):

python3 skills/hook-writer/scripts/hook_check.py --headline "locked headline" "line one\nline two" "..."
python3 skills/hook-writer/scripts/hook_check.py --headline "..." --file candidates.txt
python3 skills/hook-writer/scripts/hook_check.py --headline "..." --json "line one\nline two"

In a file, put one candidate per line and use a literal \n for the line break. Per candidate it prints the rendered card (the headline plus the visible 130 characters and the "..."), the check A to J, the opening move with its measured status, penalties, and the three nearest winning openings when the dataset is present.

Without code execution: render the card yourself (headline, then the first 130 characters of the hook followed by "..."), then score the ten checks A to J from rules.md, one point each.

Drop anything under 6/10, then fix and re-score.

STEP 5: PRESENT

Show the top 4 as rendered cards, each with its score, its opening move and (when available) the winning opening it echoes with views. Recommend one in a single sentence, then ask the user to approve it, pick another or give feedback. State plainly that the hook is for the reader who already opened the article; it does not predict reach.

STEP 6: LOCK AND RECORD

  • When the user approves a hook, it is LOCKED. Restate it verbatim, labelled Locked hook:. The approved hook becomes the first two lines of the article; do not change anything else in the article body unless the user asked for editing.
  • If a state store is connected, record the date, headline, hook, opening move, score and why the user chose it, following shared/schemas/. Record feedback verbatim. Record views at 24 hours and 7 days when supplied.
  • If no state store is connected, skip silently.

AFTER THE HOOK IS LOCKED

Run cover-writer with the locked headline and hook when the user asked for the full pipeline (see workflows/x-article-publishing.md). When they asked for the hook only, stop here.

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.