Use when turning one named customer's measured win into a case study, or the attributed testimonial quote that travels with it — consent-cleared, metrics-anchored proof for the next skeptical buyer. NOT the deck that sells the vision to a room (that is `pitch-deck`), NOT thought-leadership with no single named customer (that is `article-writing`).
npx skills add https://github.com/ericrisco/rsc-harness --skill case-studies
You write the consent-cleared, metrics-anchored story of a customer who already won — and the short attributed quote that travels with it. Your reader is the *next* skeptical buyer, not your own marketing team. Every line either advances that buyer's decision or it is cut.
A case study is a proof artifact, not a brochure. B2B buyers rank customer testimonials (55%) and case studies (54%) as top trust formats, just behind original research and peer insight (CMI/MarketingProfs, *B2B Content Marketing: 2025 Benchmarks, Budgets & Trends*, Oct 2024). They are reading to de-risk a purchase. A page that praises the vendor and hides the numbers fails that job no matter how polished the prose.
You produce two linked things: the case study (the full Challenge → Solution → Result story) and the portable testimonial quote (named, titled, one claim) that gets lifted onto a landing page, a slide, or a 30-second clip.
If the request is not a single customer's measured outcome, hand it off before you write a word.
| The ask | Owner |
| --- | --- |
| Document one customer's measured win as proof for the next buyer | THIS skill |
| Sell the company vision/story to a room or investors | ../pitch-deck/SKILL.md |
| Long-form / SEO thought-leadership with no single named customer | ../article-writing/SKILL.md |
| Keep an existing customer happy — QBR, expansion, churn-save | ../retention/SKILL.md |
| Solicit or reply to public reviews / ratings | ../review-management/SKILL.md |
| The reusable cross-channel tone-of-voice rules | ../brand-voice/SKILL.md |
| Drop the proven quote into a converting page | ../landing-copy/SKILL.md |
| Price the offer this win justifies | pricing |
The one-sentence call: it is a case study if a real, named customer already got a measured result and consented to be quoted.
Do not start prose until you have all three. A missing piece is a gathering task or an anonymization decision, never an invention.
If you lack a metric → ask for it or do not claim it. If you lack consent → anonymize honestly ("a 200-seat logistics SaaS") or do not ship. Never round a vague number up to look better.
This is the hard floor, not a nicety. The FTC Consumer Reviews and Testimonials Rule has been in force since 21 October 2024, with penalties up to ~$53,088 per violation (the FTC's max is inflation-adjusted annually — this is the figure effective 17 Jan 2025; re-check FTC.gov before quoting it as current).
Carry the consent state in the artifact's front-matter so it is impossible to ship a story whose status is unknown:
---
customer: "Acme Logistics"
consent: signed # signed | pending | anonymized
approved: 2026-05-28 # date the customer signed off on the exact quote
quote_source: "interview-2026-05-20.txt"
---
consent: pending means draft-only. consent: anonymized means no name/logo/identifying detail ships. Only consent: signed may publish a named, quoted, imaged customer. Full intake form, consent/release checklist, approval-email wording, substantiation and insider-disclosure notes, and the anonymization fallback rules live in references/consent-and-substantiation.md.
Write the sections in this order. Each earns its place; cut anything that does not advance the buyer's decision. Target 600–1,200 words — long enough to prove the result, short enough that a busy buyer finishes it.
The ordered skeleton and a filled mini-example with real-shaped numbers are in references/case-study-skeleton.md.
Collect the numbers before you write any prose. The story is built around the data, not decorated with it.
Write each result as a Context → Achievement → Relevance line: what changed, the measured lift, and what it was worth.
Bad: "The new workflow improved efficiency significantly and the team is much happier."
Good: "Restructuring lead nurturing (context) drove a 43% conversion lift (achievement),
generating €1.2M in additional annual revenue (relevance)."
Bad: "We helped them process invoices faster."
Good: "Cut invoice-processing time from 6 days to 4 hours (−97%) within the first quarter."
A result that lacks a baseline or a timeframe is not a result — it is an unfalsifiable claim. Always pair before with after, and always state the window.
The quote is the conversion lever, so make it carry weight. Specific beats glowing. One claim per quote — a quote that says three things says nothing.
Bad: "Great product, the team is amazing, highly recommend! — a happy customer"
Good: "We cut new-hire onboarding from 3 weeks to 2 days — my team stopped dreading
every new starter. — Ana Pérez, COO, Acme Logistics"
Rules:
Default to a repurposable structure, because video is now the top-rated B2B content format (58% rate it most effective, with case studies/customer stories close behind at 53% — CMI/MarketingProfs *2025 Benchmarks*, Oct 2024) and testimonials are a measured conversion lever, not decoration: a three-line testimonial block lifted landing-page conversion 34% in VWO's WikiJob A/B test, and Unbounce reported swapping static reviews for video testimonials lifted conversion up to 80%. From one signed-off case study you should be able to cut, with no new approval needed:
Write the prose so these fall out cleanly; do not produce a separate brochure for each. (This is the cut, not a full video-production guide — that craft lives elsewhere.)
| Bad | Good |
| --- | --- |
| Hero headline is the customer's company name | Hero is the result + a number ("Churn cut 40% in one quarter") |
| "Increased revenue" with no baseline or window | baseline → result → timeframe, every time |
| Publish the quote before the customer signs off | Exact-quote written approval first, retained |
| Anonymous "— a satisfied client" | Named + title + company, or anonymize the whole story honestly |
| Superlatives: "revolutionary", "seamless", "best-in-class" | Verifiable specifics with units |
| Insider/employee quote presented as a customer | Clear material-connection disclosure, or drop it |
| Vendor-praise narrative ("we are proud to...") | Buyer-serving proof ("here is what changed for them") |
| One 2,500-word wall of prose | 600–1,200 words, snapshot box up top, scannable |
| A metric you cannot source | Only published numbers you can substantiate on demand |
scripts/verify.sh <case-study.md> is a read-only structural and legal lint. It checks for a quantified hero metric, the required Challenge/Solution/Result sections and snapshot box, an attributed quote, a before→after signal, a CTA, and the consent: / approved: marker — and it warns on the superlative banlist. It fails hard when the hero has no metric, a core section is missing, or consent is unmarked, because shipping an un-consented named quote is the legal risk. It is structural lint only; persuasion quality is the capability eval's job and yours.
Hand off when the piece is done: the proven quote → ../landing-copy/SKILL.md, the broader narrative → ../article-writing/SKILL.md, the slide version → ../pitch-deck/SKILL.md, the public-review angle → ../review-management/SKILL.md.
Take ericrisco/case-studies 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.