Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add OutlineDriven/outline-driven-development --skill copywriting-hooksgit clone --depth 1 https://github.com/OutlineDriven/outline-driven-developmentWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/outlinedriven/outline-driven-development/copywriting-hooks)<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/copywriting-hooks"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/copywriting-hooks/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/copywriting-hooks"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/copywriting-hooks.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00045 | $0.03187 |
| Opus 5 | $0.00023 | $0.01594 |
| Sonnet 5 | $0.00009 | $0.00637 |
| Haiku 4.5 | $0.00005 | $0.00319 |
Grade A, and why
copywriting-hooks scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 111 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Copywriting hooks
Contract
| Field | Bound contract |
|---|---|
| Trigger | User asks for a hook, lede, or accroche for long-form content. |
| Authority | Read-only. No file, VCS, credential, paid, published, deployed, or remote mutation. |
| Side effect | No state outside the conversation. |
| Done | User-selected hook plus what it commits the opening to. |
Inputs
- Topic, audience, target language (EN, FR, or both), approximate length, and where it will be published. If any is unclear and material, ask before generating.
- Optional: an existing draft opening. If supplied, treat it as Option 0 and propose 3 alternatives; never silently discard it.
Procedure
A hook's only job is to make the reader want sentence 2. It does that through one of five levers, and a strong hook usually pulls two at once:
-
Open a gap: pose something incomplete the reader needs to close (curiosity gap, question, open loop).
-
Break a prediction: state something that violates the reader's prior (contrarian, definition reversal, surprising statistic).
-
Drop into a scene: load sensory or specific detail that builds a vivid frame (in medias res, concrete detail, time anchor).
-
Promise a payoff: name an outcome the reader wants (benefit, conditional, direct problem).
-
Borrow weight: lean on a name, number, or quote that carries embedded authority (authority hook, statistic, quote with disagreement).
-
Confirm the brief (see Inputs). Ask before generating if a material field is missing. Done when: the brief is confirmed or missing material fields are requested.
-
Pick 3 to 4 hooks from the 18-hook catalog below that are genuinely different, different levers, not three flavors of the same technique. Done when: 3-4 genuinely different hooks are selected from the catalog, each pulling a different lever.
-
Write 2 candidates per hook, specific to the user's article. The two candidates within one hook explore different angles (different anecdote, statistic, or scene), not rewordings of each other. Done when: 2 candidates per hook are written, each exploring a different angle.
-
Apply the quality gates to every candidate:
- Specific beats abstract: replace "many companies" with "Stripe, Shopify, Vercel"; replace "recently" with a date; replace "studies show" with the actual finding or cut the claim.
- The first sentence must force the second: read each candidate cold; if sentence 2 would not be clicked after sentence 1, rewrite.
- Match technique to article type using the type-fit table. Done when: every candidate passes the quality gates (specific detail, first-sentence-forces-second, type-fit).
-
Run every candidate through the anti-pattern cull. If a candidate matches any entry, rewrite it before presenting. Done when: every candidate passes the anti-pattern cull or is rewritten.
-
Present using the Output format, ask the user through the question tool, and wait. Do not pick for them. Done when: options are presented in the Output format and the user is asked to pick.
-
After the pick, name what the choice commits the rest of the article to. A contrarian hook commits paragraphs 2-3 to defending the non-consensus claim. A scene opener commits the next section to resolving or productively delaying the scene. Done when: the chosen hook's opening commitments are named in one sentence.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 111 lines · 45 tokens per session scan A c8c3b4255863
copywriting-hooks is a skill published in the GitHub repository OutlineDriven/outline-driven-development (52 stars, last pushed 2d ago), licensed Apache-2.0. It adds 45 tokens to every session and 3,187 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
audit-project
Run an iterative multi-agent code audit until critical and high findings are resolved. Use when the user says "audit my code", "find all the bugs", "deep code audit", "iterative review", or "review until clean".
duet
Use when the user invokes /duet, says "pair with me", or faces aesthetic, architectural, or irreversible decisions.
goal-prompt-drafting
Use when asked to draft copy-ready /goal objectives for long-running agents; returns one normalized one-line objective with measurable end state, grounded proof, easy-out invariants, a stop clause, and a Missing list. Not for source or remote-system changes.
handoff-prompt
Use when the user asks for a handoff, delegation, or clipboard-ready prompt for another agent: a standalone path-free prompt copied to the clipboard, confirmed by title. Not for session-snapshot briefs — use handoff; never remote, credential, publish, deploy, or irreversible.
publish-branch
Use when asked to publish the checked-out branch: commit and push it on whatever branch it is, the default branch included. Not for creating branches, PRs, force pushes, or pushing any other branch; when the request excludes the default branch, use commit-push-current.
drill
Use when a concept needs practising rather than explaining: run a scaffolded exercise from worked example to independent problem, quiz the learner, run spaced recall over what they cleared, or probe for the gaps blocking what they want next. For explanation, use explain-concept; for an end-to-end build, use capstone.