skills/content/headlines/SKILL.md
Generate headlines, titles, and subject lines: charge, volume, tighten.
npx skillsauth add notque/claude-code-toolkit headlinesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generates headlines, article titles, social posts, and email subject lines from a brief or draft. Four phases: find the charge, generate volume across named moves, tighten survivors, output per format. Core rule: volume over polish — word-level features predict winners weakly, so breadth beats optimization.
| Signal | Load These Files | Why |
|---|---|---|
| generating candidates: the ten named headline moves with examples | references/headline-moves.md | Move definitions and concrete examples for Phase 2. |
Goal: Identify the single most compelling tension or stake in the material.
Gate: Charge is one sentence, names a specific tension or stake, and is true to the source material. Proceed only when it passes — every candidate in Phase 2 builds on it, so a weak charge produces 20 weak headlines.
Goal: Produce 15–25 candidate headlines spread across the named moves.
Load references/headline-moves.md for the move catalog: curiosity gap, specificity, stakes, contrast, question, how-to, number, voice-of-reader, news peg, negative space.
Gate: 15–25 candidates exist, each tagged with a move, at least 6 moves represented. Fewer than 15 means the charge is under-mined — return to the brief for more concrete material.
Goal: Select and sharpen 3–5 survivors using a stated criterion.
Gate: 3–5 survivors, each accurate to the brief, each from a distinct move where possible.
Goal: Adapt survivors to the formats the task needs. The user receives selected options plus one recommendation — triage stays inside this skill.
| Format | Constraint | Adjustment | |--------|-----------|------------| | Article title | ~60–70 chars; sentence case per site convention | Full charge; specificity over wordplay | | Social post | Platform length; standalone (no body to lean on) | Add the stake or number the title implies; end with pull, not summary | | Email subject line | ~30–50 chars; first words decide the open | Front-load the charge; cut articles and qualifiers first |
Per-platform length and format specs stay with content-engine (skills/content/content-engine/references/platform-specs.md); when both apply, the platform spec wins on length.
Present output as:
## Headline Options
**Charge**: [one-sentence charge]
### Article titles
1. "[title]" — [move]
2. ...
### Social posts
1. "[post]"
### Subject lines
1. "[subject]"
**Recommendation**: [pick one, one sentence why]
Gate: Each requested format has 2+ options. Recommendation given with reasoning.
Cause: Input has no stake, surprise, or change worth charging. Solution: Ask for the one fact that surprised the author, the cost of the problem, or what changed. If none exists, say so and produce plain utilitarian titles — a fabricated tension fails the Phase 3 accuracy check anyway.
Cause: Generation stayed inside one or two moves. Solution: Walk the move catalog in order and force one candidate per unused move. Mechanical coverage breaks the rut.
Cause: The charge is weak, not the wording. Word-level polish cannot rescue a stake-free premise. Solution: Return to Phase 1. Find a sharper tension in the material, or report honestly that the brief needs a stronger finding before headlines can work.
data-ai
Extract video transcripts: yt-dlp subtitles to clean paragraphs.
tools
Collect, filter, and freshness-qualify news items.
development
Convert PDF, Office, HTML, data, media, ZIP to Markdown.
testing
Verify factual claims against sources before publish.