View the Social Hook Optimizer SKILL.md the file this guide runs on
---
name: social-hook-optimizer
version: 1.0.0
description: >
Use when the user says "write hooks for this," "fix this hook," "will this
stop the scroll," "optimize this post," "give me openers for this," or
"social copy for [thing]." Rewrites the first line of a social post, scored
on She Leads AI's own post history.
---
# Social Hook Optimizer v1
Rewrites the one line a reader sees before "see more."
## Sibling Skill, Different Baseline
This is the social counterpart to `email-open-optimizer`. Same method, different evidence.
**The two are not interchangeable.** A subject line and a hook are scored against different baselines because the surfaces behave differently. The clearest proof is in the data — the Pamela Oberg announcement was a strong LinkedIn post and the worst-performing SLAI Effect subject line in the same week. Never port a line from one to the other without re-scoring it.
## The Feed Exemption
The banned-items carve-out for subject lines does **not** extend here. A social post is public body copy, so the banned list applies in full to the hook and to everything under it. Read `banned-items.md` fresh and enforce it.
The one thing this skill borrows from its sibling is the method, not the exemption.
## Context Required
Read fresh every run.
- `your-workspace\slai-skills-gallery\team\social-hook-optimizer\linkedin-baseline-30.md` — what has already been posted and how it did
- `your-workspace\slai-skills-gallery\team\brand-enforcement\banned-items.md`
- `your-workspace\slai-skills-gallery\team\brand-enforcement\word-swaps.md`
- `your-workspace\slai-skills-gallery\team\brand-enforcement\naming-rules.md`
- `your-workspace\slai-skills-gallery\team\slai-voice\SKILL.md` and its `voice-dna.md`
- `your-workspace\slai-skills-gallery\standards\programs\canonical-descriptions.md` when the post names a program
If any file cannot be read, stop and say so.
## Inputs
- The post body, or what the post is about
- The platform, since the truncation point differs
- Whether it has an image, video, document, or nothing
## Steps
1. Read the context files and the post body.
2. **Who cares.** Run this first. Does the hook offer the reader something or announce something about She Leads AI. Event logistics, scheduling, and "we invite you to" openers sit at the bottom of the baseline. If the hook fails this, say so and rework the premise instead of generating variants of a dead angle.
3. **Length.** Count the characters. The measured split in the baseline is at roughly 83 characters for the strong posts against 117 for the weak ones. Anything over about 100 needs a reason.
4. **Truncation.** Say where the platform cuts and what the reader loses.
| Platform | Roughly cuts at |
|---|---|
| LinkedIn | 140 characters on desktop, less on mobile |
| Instagram | 125 characters |
| Facebook | 80 characters on mobile |
| Threads and X | The whole post is the hook |
5. **Baseline comparison.** Name which posts in `linkedin-baseline-30.md` this most resembles and how they did. Compare within format where possible.
6. **Brand enforcement.** Full banned-items pass on the hook and the body. No exemption here.
7. Write five hooks, each a different angle, each with its character count.
8. Recommend one and say why in a sentence.
9. Run the check-in questions.
## Angles
**Angles that have won on this list**
- **Give the thing away.** Publishing the offer in full, the price, the framework itself. The top post in the baseline by a factor of three.
- **Contrarian defense.** Pushing back on a claim about the audience. Drew the most comments in the set.
- **Flat opinion, unexplained.** "Life is too short for markdown files." Short, declarative, explains nothing in the first line.
- **First-person confession.** What Anne did or refuses to do.
- **Personal news about a person.** Works here and does not work in an inbox. Keep it to people the audience knows.
**Angles that have lost on this list**
- Event logistics — a time, a Zoom link, a date as the opening line.
- "We invite you to" and other host-voice openers.
- Hooks over about 110 characters that explain the whole post before the cut.
## Output
```
HOOK AUDIT
Current — "[exact text]" ([n] chars, cuts after "[word]" on [platform])
Who cares PASS / FAIL — [one line]
Length PASS / FLAG — [n] vs 83 median for strong posts
Truncation PASS / FLAG — [what the reader loses]
Baseline [closest comparable posts and how they did]
Brand PASS / FLAG — [quote the violation, cite the rule]
FIVE HOOKS
1. [Angle] "[text]" ([n])
Why [one sentence]
2–5. [same shape]
RECOMMENDATION
[Which one, one sentence why.]
```
## Works With
**Chains upstream from**
- `slai-voice` (OPTIONAL) — run first for anything in Anne's voice.
- `social-saturday-promo`, `create-speaker-spotlight`, `slai-session-promo`, `pepper-content-mine` (OPTIONAL) — supply the post this skill writes the hook for.
**Chains downstream to**
- `brand-enforcement` — MANDATORY, full pass, no exemption.
- `social-posting-engine` — takes the finished post.
**Pairs well with**
- `email-open-optimizer` — the sibling. Same method, different baseline. Never share lines between them.
**Standalone mode**
Paste a hook and get the audit plus five rewrites. Without the body, the who-cares check runs on the hook alone and says so.
## Gotchas
I know you'll want to reuse a strong email subject line as a hook, or the reverse — don't. The Pamela announcement proves the surfaces diverge. Re-score against the right baseline every time.
I know you'll want to apply the subject-line banned-items exemption here because this skill is the sibling of the one that has it — don't. A social post is public body copy. The list applies in full.
I know you'll want to explain the post in the first line so nobody is confused — don't. The two shortest opinion hooks in the baseline are both top performers and neither explains itself. The hook earns the click; the body does the explaining.
I know you'll want to open an event post with the date and time — don't. Every logistics-first post in the baseline is in the bottom third. Lead with why it is worth going, put the time in the body.
I know you'll want to cite engagement rate because AuthoredUp returns it — don't. That field came back above 100% for several posts and is not trustworthy here. Use impressions, reactions, and comments.
I know you'll want to invent a detail Anne did not say — don't. Leave a bracket. This failed once in the sibling skill and Anne caught it.
I know you'll want to treat a single 3,999-impression post as the pattern — don't. It is one post. Say "the top post did X" rather than implying every giveaway post will.
Add to this list as failures surface.
## Constraints
- Never move a line between this skill and `email-open-optimizer` without re-scoring.
- Never apply the subject-line exemption to a social post.
- Never cite engagement rate from this data set.
- Any fact not in the post body stays in brackets.
- Impressions are affected by format and by time since posting. Compare within format, and never rank a two-day-old post against a two-month-old one without saying so.
## Check-Ins
After the first run, ask
- Are you editing any of the five, and what are you changing?
- Did the recommended hook feel obvious, or did you reach past it?
Before wrapping up, ask
- Any failure pattern to add to gotchas while it's fresh?
- What else can I take off your plate?
## Changelog
| Date | Version | What Changed |
|------|---------|-------------|
| 08.07.26 | 1.0.0 | Initial skill. Built as the social sibling of `email-open-optimizer`, scored on 30 LinkedIn posts pulled from AuthoredUp. Subject-line banned-items exemption deliberately not extended here. |