The Revenue AI Report
Marketing

Hook Writer

Produces five opening lines from the finished piece, scores each on specificity, tension, and clarity, validates length with check_hooks.py, and recommends one with a runner-up so the next channel can test the alternative.

Part of The Content Engine, a seven skill pipeline. Get every file in one place.

Where it came from

  • Source: Part of The Content Engine suite, seven skills built from the one agent per task workflow Mark Fershteyn described on the GTM AI Podcast with Coach K. Published as received.
  • Frameworks applied: Specificity, tension, and clarity scoring; check_hooks.py length validation; recommended plus runner-up

Why it was chosen

Hooks decide whether the rest gets read, and most drafts bury the best line in paragraph three. Scoring five options against the same rubric beats picking on instinct.

Known weakness, published as found: Scores are the model's judgment, not audience data. Treat the ranking as a shortlist, not a prediction.

How to use it

  1. 1.Copy the SKILL.md text below, or download the raw file.
  2. 2.Create a folder named exactly hook-writer in your agent's skills directory.
  3. 3.Save the file inside that folder as SKILL.md.
  4. 4.Ask the agent one of the trigger requests below.
  5. 5.Check the output against what you already know before it leaves your desk.

Ask it this

  • write five hooks for this post
  • give me a better opening line
  • score these hooks and pick one

Do not use it for

  • rewrite the whole article
  • build the newsletter version

The SKILL.md file

---
name: hook-writer
description: Writes five opening lines for a post, scores each on specificity, tension, and clarity, and uses a script to validate length and rank them. Use when the user says "write hooks," "give me hooks," "better opening line," "scroll-stopper," "first line for this post," "score these hooks," "which hook is best," or when the content-engine runs Step 4. Does not edit the body or write channel versions.
---

# Hook Writer

One job: write the first line people actually stop for.

On LinkedIn, the feed cuts off around 140 characters. If the hook fails, nothing else gets read.

## STEP 1 (REQUIRED): Load inputs

1. Read `edited.md` (or the text the user pasted).
2. Read `learnings.md` if present. Hook rules from past retros override this skill.
3. Pull the 3 strongest raw materials from the piece: the biggest number, the most surprising moment, the opinion people would argue with.

## STEP 2 (REQUIRED): Write 5 hooks, each a different type

| Type | Pattern | Example |
|---|---|---|
| Number | Lead with the hard stat | "4 years, $8M, 26 people. Then 6 months, solo." |
| Moment | Drop into the scene | "My SDR opened the account brief and laughed." |
| Opinion | A take someone will argue with | "Your AI agent is bad because it has six jobs." |
| Mistake | Admit what went wrong | "I built 11 AI skills last month. 9 made my work worse." |
| Stakes | What's changing and who's at risk | "Teams without a research agent are 37 minutes behind on every account." |

Rules:
- Under 140 characters
- Do not start with "I" as the first word unless it's a Mistake hook
- No question that can be answered "no"
- No em dashes
- Every number must come from the piece. Never invent a stat for a hook.

## STEP 3 (REQUIRED): Score and validate

Score each hook 1 to 10 on:
- **Specificity:** holds a number, name, or concrete image
- **Tension:** opens a gap the reader needs closed
- **Clarity:** understood in 3 seconds on a phone

Write the table to `hooks.md` in this exact format, then run the script:

```markdown
| # | Type | Hook | Spec | Tension | Clarity |
|---|---|---|---|---|---|
| 1 | Number | 4 years, $8M, 26 people. Then 6 months, solo. | 9 | 9 | 8 |
```

```bash
python scripts/check_hooks.py hooks.md
```

The script checks length, first word, dashes, and whether a digit is present, then totals and ranks the hooks. Rewrite any hook that FAILs and re-run until PASS.

## Output: `hooks.md`

The scored table, the script's ranked output, and one line:
"Recommended: #1 (26/30). Runner-up for A/B test: #3 (24/30)."

## Edge cases

- **Piece has no numbers:** skip the Number type and write two Moment hooks. The script will warn; that's fine.
- **User rejects all five:** ask what they liked in past top posts, then write five more of that type.
- **Two hooks tie:** recommend both for an A/B test across two posting days.

Common questions

What does the Hook Writer skill do?
Produces five opening lines from the finished piece, scores each on specificity, tension, and clarity, validates length with check_hooks.py, and recommends one with a runner-up so the next channel can test the alternative.
Where does the Hook Writer skill come from?
Part of The Content Engine suite, seven skills built from the one agent per task workflow Mark Fershteyn described on the GTM AI Podcast with Coach K. Published as received.. It was written by The Revenue AI Report against a 12 criterion quality rubric and graded in an independent scoring pass.
Why was the Hook Writer skill chosen for this library?
Hooks decide whether the rest gets read, and most drafts bury the best line in paragraph three. Scoring five options against the same rubric beats picking on instinct.
When should the Hook Writer skill not be used?
Do not use it for: rewrite the whole article Or: build the newsletter version
How do I install the Hook Writer SKILL.md file?
Download the file, create a folder named exactly hook-writer inside your agent's skills directory, and save the file inside it as SKILL.md. The agent loads it when a request matches the description.

Raw file: https://www.therevenueaireport.com/agent-skills/hook-writer/SKILL.md. Plain-language skills with worked examples live in the Skills and Prompts library.

More Marketing skills

Share this skill

Posting to Instagram or TikTok? Copy the link, it carries the title, summary and share image.

Get the Report

The research behind these skills, weekly.

Arrives weekly by email. Free. Unsubscribe anytime. By subscribing you agree to our Privacy policy and Terms. We never sell or share the list.