Use when writing the words on a single conversion page — the hero headline and subhead, the offer, the proof and testimonials, and one primary CTA — or diagnosing a page that gets traffic and does not convert, as a copy problem rather than a layout one. NOT the paid ad that drives the click (that is `ads`), NOT the visual layout the words sit in (that is `design`), NOT the experiment that picks the winning variant (that is `ab-testing`).
npx skills add https://github.com/ericrisco/rsc-harness --skill landing-copy
*Hook, offer, proof, CTA. You write the words a visitor reads top to bottom; you do not draw the layout, build the page, or write the ad that sent them.*
This skill owns conversion copy for a single page: a hero headline under ~8 words plus a benefit subhead, a top-to-bottom page skeleton, the offer stated as a benefit, proof slotted next to the ask, and one primary CTA repeated without competing. It is a copy job. The pixels are design's, the React/Next build is nextjs's, the ad that drives the click is ads's.
design (../design/SKILL.md).nextjs (../nextjs/SKILL.md) / react.ads.brand-voice.seo-geo.ab-testing.case-studies.marketing (../marketing/SKILL.md).Boundary in one line: you own the words that convert on one page; ads owns the click that arrives, design owns the layout they sit in, ab-testing owns the proof of which words win.
These numbers set expectations. State them as a band; the moment you promise a flat conversion rate you are lying to the user.
Every conversion page is these four jobs, top to bottom. Each has a distinct question, a home on the page, and a failure mode. Diagnose a dead page by finding which block is weak.
| Block | Must answer | Lives where | Failure mode if weak |
| --- | --- | --- | --- |
| Hook | "What is this and why should I care?" in <5s | Hero, above the fold | Visitor bounces before scrolling; ~80% never see the rest |
| Offer | "What exactly do I get, and what does it cost me?" | Right after the hook / problem | Feature dump; reader can't tell what they walk away with |
| Proof | "Why should I believe you?" | Adjacent to each CTA | Claims read as marketing; trust never forms |
| CTA | "What is the one thing to do next?" | Hero, repeated down the page | Competing asks → decision fatigue → no click |
The H1 carries the *what*; the subhead carries the *benefit*; both must echo whatever the visitor clicked.
ads.*Bad — "Reimagine The Future Of Financial Operations" (clever, 6 words, says nothing)
Good — "Expense reports done in 30 seconds" (clear, 5 words, names the outcome)
Subhead: For finance teams drowning in receipts — snap, submit, approved.
Name the thing, the outcome, and the cost in effort or money. Lead with the outcome the buyer gets, then the mechanism that delivers it. This feature→benefit transform is the highest-impact copy shift on most pages.
The scaffold is FAB — Feature → Advantage → Benefit — but you stop at the benefit the reader cares about and back it with the mechanism as proof, not the other way round.
Bad — "Our platform has advanced AES-256 encryption."
Good — "Protect customer data with AES-256 encryption, so your security team
signs off in days, not months."
Rule: every feature line answers "so what?" with an outcome. If it can't, cut it.
Belief is built next to the ask, not in a wall of quotes elsewhere.
[[NEEDS PROOF]] and ask the user — do not invent it.Bad — "Loved by teams everywhere. World-class results!"
Good — "We cut expense-report time 82% in the first month."
— Maria Ortiz, CFO, Lumen (47-person finance team)
One primary action, verb-led, repeated — not varied — down the page.
Bad buttons — [Submit] [Learn more] [Contact sales]
Good buttons — [Start my free trial] ...repeated... [Start my free trial]
under it: No credit card. Cancel anytime.
These are skeletons to fill with the buyer's actual language, not fill-in templates:
Common stack: PAS/AIDA hook → FAB offer → proof → CTA. How much you agitate the problem before the offer depends on traffic temperature (cold needs more, warm goes straight to the offer). Full explanations with fresh examples and the awareness-stage note → references/frameworks.md.
| Rationalization | Reality / Fix |
| --- | --- |
| "A clever headline will stand out" | Clever is unclear. Name the outcome in <8 words; clear beats clever. |
| "More features = more value shown" | Feature dumps bury the benefit. Lead with the outcome, then the mechanism. |
| "Give them several CTAs to choose from" | Choice kills conversion. One primary action, repeated, not varied. |
| "Any testimonials will do" | Generic raves don't persuade. 3–5 named quotes with a hard result, near the CTA. |
| "World-class, cutting-edge, game-changing" | Hype words signal AI-template copy. Replace with a number or a named result. |
| "The page can say its own thing" | If the headline ignores the ad's promise, you lose the message-match lift. Echo the click. |
| "Promise them a 12% conversion rate" | Never promise a flat number. Quote the band for their vertical. |
| "I'll invent a plausible metric" | Never. Mark [[NEEDS PROOF]] and ask the user. |
The annotated top-to-bottom skeleton (hook → problem → offer → proof → CTA → objections/FAQ → final CTA), with one fully worked B2B SaaS example and the variable slots marked, lives in references/page-skeleton.md. Start there when you write a full page rather than a single block.
Run scripts/verify.sh over the file you wrote (or your project) before claiming done. It is a read-only, dependency-free static check: H1 length, exactly one primary CTA verb (flags competing asks), presence of a proof block and a benefit subhead, a banlist of hype/AI-tell phrases, and a "Submit" warning. It warns on soft issues and exits non-zero only on hard ones (no CTA, no proof). It is a backstop, not the judgement — the four-block table is.
../design/SKILL.md — the pixels: layout, hierarchy, the visual system the words sit in.../nextjs/SKILL.md — the build: rendering the page in code.../marketing/SKILL.md — the broader campaign: email sequences, channels, launch arc.ads — the paid ad copy that drives the click (route here; you only match the page to it).ab-testing — the experiment that proves which headline/CTA wins.case-studies · brand-voice · seo-geo — the proof asset, the voice rules, the search layer.references/frameworks.md, references/page-skeleton.md.Take ericrisco/landing-copy from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.