/graphic-case-study
Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this
$ npx -y skills add Varnan-Tech/opendirectory --skill graphic-case-study --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/graphic-case-study
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this
SKILL.md
graphic-case-study.SKILL.mdname: graphic-case-study
description: Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".
compatibility: [claude-code, gemini-cli, github-copilot]
author: OpenDirectory
version: 1.0.0
Graphic Case Study
Generate a professionally designed B2B case study PDF from customer story details. Output is a single self-contained HTML file (opens in any browser) plus a print-ready PDF. Supports 7 page section layouts and 9 style presets.
---
**Critical rules -- non-negotiable:**
1. Every page MUST fit within the A4 canvas (1200×1697px). No content overflow. 2. ALL scalable font sizes use `clamp()`. Fixed px only for structural borders/lines. 3. Single self-contained HTML: all CSS inline. Zero external dependencies except font CDN link. 4. Never dump HTML in chat. Save to file, show summary only. 5. Results stat numbers MUST be visually dominant -- at least 3× body text size. 6. No generic AI slop: no Inter as display font, no purple gradient on white, no "Thank You" closing.
---
Step 1: Brief Intake
Need four things to start. If all four present in the message: skip to Step 2.
If any missing, ask exactly:
> "To create your case study, I need four things: > 1. **Customer name** -- company name (or a descriptor to anonymize: "Fortune 500 Retailer") > 2. **Challenge** -- what problem did they have before using your product? (2-5 sentences) > 3. **Solution** -- what did your product do to solve it? (features, approach) > 4. **Results** -- measurable outcomes: ideally 3 stats (%, time saved, revenue impact, etc.)"
Wait for all four before continuing.
---
Step 2: Complete Intake
Ask all questions in one message, grouped by category. User can skip any -- defaults apply.
> "A few questions before I start: > > **Content** > 1. **Customer context** -- industry, company size, location? (optional, used for overview page) > 2. **Testimonial** -- customer quote (40 words max) + speaker name + title? (or "I'll add later") > 3. **Page count** -- 1-pager (summary card) / 2-pager (standard, default) / 4-pager (detailed) > 4. **Customer logo** -- URL or "none" > > **Design** > 5. **Your company name** -- vendor name for the CTA page (+ logo URL if available) > 6. **Style** -- clean-slate / midnight-editorial / matt-gray / product-minimal / mint-pixel-corporate / warm-earth / brutalist / magazine-red / "show me options" > 7. **Orientation** -- A4 portrait (default, 1200×1697) / landscape 4:3 (1200×900) > > **Output** > 8. **Anonymize?** -- Keep company name / replace with industry descriptor > 9. **Slug** -- filename slug (e.g. "acme-corp-2025"); I'll derive from customer name if skipped"
**Defaults if skipped:**
| Question | Default | |---|---| | Customer context | none | | Testimonial | none | | Page count | 2 | | Customer logo | none | | Your company name | derived from context | | Style | clean-slate | | Orientation | A4 portrait | | Anonymize | keep name | | Slug | kebab-case of customer name |
**If style = "show me options":** Generate 3 single-page HTML previews (cover page only). Save to `.claude-design/previews/style-a.html`, `style-b.html`, `style-c.html`. Open each: `open .claude-design/previews/style-a.html` etc. Choose 3 style presets that match the case study context. Ask user to pick before Step 3.
---
Step 2.5: Internal Page Architecture (not shown to user)
Derive internally before Step 3. Never ask the user.
**Hero metric identification:** Scan results for the single most impressive number (largest %, biggest $, greatest multiplier). This metric gets accent-color treatment and maximum visual weight on the results page.
**Page count -> structure template:**
| Count | Page sequence | |---|---| | 1-pager | 1 page: [cover-compact] -- all content condensed into one page | | 2-pager | Page 1: [cover] + [challenge-solution] stacked · Page 2: [results] + [testimonial-cta] stacked | | 4-pager | Page 1: [cover] · Page 2: [overview] + [challenge] · Page 3: [solution] + [results] · Page 4: [testimonial] + [closing-cta] |
**Visual character** derived from style choice:
- clean-slate → professional authority, generous whitespace, enterprise-safe
- midnight-editorial → premium dark, editorial weight, tech/AI companies
- matt-gray → trusted neutral, operational, board-safe
- warm-earth → approachable warmth, consulting/agency/services
- brutalist → bold standout, design-forward, attention-commanding
- If not specified: default to clean-slate for B2B SaaS, midnight-editorial for technical companies.
---
Step 3: Page Structure
Read `references/page-library.md` before planning.
Plan the full page sequence. Assign section types from the 7 in `references/page-library.md` to each page section. Multiple sections can stack within one page.
Output as numbered list with `[section-type]` labels per page. Example for 2-pager:
Proposed structure (2 pages, clean-slate style):
Page 1:
[cover] -- Acme Corp cut reporting time by 80%
[challenge-solution] -- manual process / DataPulse automation
Page 2:
[results] -- 80% time saved, 95% error reduction, $200K saved
[closing-cta] -- Get in touch: hello@datapulse.io
Does this structure work, or should I adjust anything?
Wait for confirmation before Step 4.
---
Step 4: Content Draft
Write per-page-section copy. Plain text only -- no HTML yet.
**Copy rules per section:**
- `cover`: company name + headline result (12 words max, MUST lead with the number: "Acme cut reporting time by 80%") + optional category label ("Customer Success Story")
- `overview`: 4 facts only -- Industry / Company size / Location / Use case -- each value 4 words max
- `challenge`: context paragraph (2-3 sentences) + 3 pain points (1 sentence each, no bullet filler)
- `solution`: 2-3 feature c
Read more
name: graphic-case-study description: Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF". compatibility: [claude-code, gemini-cli, github-copilot] author: OpenDirectory version: 1.0.0
Graphic Case Study
Generate a professionally designed B2B case study PDF from customer story details. Output is a single self-contained HTML file (opens in any browser) plus a print-ready PDF. Supports 7 page section layouts and 9 style presets.
---
**Critical rules -- non-negotiable:**
1. Every page MUST fit within the A4 canvas (1200×1697px). No content overflow. 2. ALL scalable font sizes use `clamp()`. Fixed px only for structural borders/lines. 3. Single self-contained HTML: all CSS inline. Zero external dependencies except font CDN link. 4. Never dump HTML in chat. Save to file, show summary only. 5. Results stat numbers MUST be visually dominant -- at least 3× body text size. 6. No generic AI slop: no Inter as display font, no purple gradient on white, no "Thank You" closing.
---
Step 1: Brief Intake
Need four things to start. If all four present in the message: skip to Step 2.
If any missing, ask exactly:
> "To create your case study, I need four things: > 1. **Customer name** -- company name (or a descriptor to anonymize: "Fortune 500 Retailer") > 2. **Challenge** -- what problem did they have before using your product? (2-5 sentences) > 3. **Solution** -- what did your product do to solve it? (features, approach) > 4. **Results** -- measurable outcomes: ideally 3 stats (%, time saved, revenue impact, etc.)"
Wait for all four before continuing.
---
Step 2: Complete Intake
Ask all questions in one message, grouped by category. User can skip any -- defaults apply.
> "A few questions before I start: > > **Content** > 1. **Customer context** -- industry, company size, location? (optional, used for overview page) > 2. **Testimonial** -- customer quote (40 words max) + speaker name + title? (or "I'll add later") > 3. **Page count** -- 1-pager (summary card) / 2-pager (standard, default) / 4-pager (detailed) > 4. **Customer logo** -- URL or "none" > > **Design** > 5. **Your company name** -- vendor name for the CTA page (+ logo URL if available) > 6. **Style** -- clean-slate / midnight-editorial / matt-gray / product-minimal / mint-pixel-corporate / warm-earth / brutalist / magazine-red / "show me options" > 7. **Orientation** -- A4 portrait (default, 1200×1697) / landscape 4:3 (1200×900) > > **Output** > 8. **Anonymize?** -- Keep company name / replace with industry descriptor > 9. **Slug** -- filename slug (e.g. "acme-corp-2025"); I'll derive from customer name if skipped"
**Defaults if skipped:**
| Question | Default | |---|---| | Customer context | none | | Testimonial | none | | Page count | 2 | | Customer logo | none | | Your company name | derived from context | | Style | clean-slate | | Orientation | A4 portrait | | Anonymize | keep name | | Slug | kebab-case of customer name |
**If style = "show me options":** Generate 3 single-page HTML previews (cover page only). Save to `.claude-design/previews/style-a.html`, `style-b.html`, `style-c.html`. Open each: `open .claude-design/previews/style-a.html` etc. Choose 3 style presets that match the case study context. Ask user to pick before Step 3.
---
Step 2.5: Internal Page Architecture (not shown to user)
Derive internally before Step 3. Never ask the user.
**Hero metric identification:** Scan results for the single most impressive number (largest %, biggest $, greatest multiplier). This metric gets accent-color treatment and maximum visual weight on the results page.
**Page count -> structure template:**
| Count | Page sequence | |---|---| | 1-pager | 1 page: [cover-compact] -- all content condensed into one page | | 2-pager | Page 1: [cover] + [challenge-solution] stacked · Page 2: [results] + [testimonial-cta] stacked | | 4-pager | Page 1: [cover] · Page 2: [overview] + [challenge] · Page 3: [solution] + [results] · Page 4: [testimonial] + [closing-cta] |
**Visual character** derived from style choice:
- clean-slate → professional authority, generous whitespace, enterprise-safe
- midnight-editorial → premium dark, editorial weight, tech/AI companies
- matt-gray → trusted neutral, operational, board-safe
- warm-earth → approachable warmth, consulting/agency/services
- brutalist → bold standout, design-forward, attention-commanding
- If not specified: default to clean-slate for B2B SaaS, midnight-editorial for technical companies.
---
Step 3: Page Structure
Read `references/page-library.md` before planning.
Plan the full page sequence. Assign section types from the 7 in `references/page-library.md` to each page section. Multiple sections can stack within one page.
Output as numbered list with `[section-type]` labels per page. Example for 2-pager:
Proposed structure (2 pages, clean-slate style): Page 1: [cover] -- Acme Corp cut reporting time by 80% [challenge-solution] -- manual process / DataPulse automation Page 2: [results] -- 80% time saved, 95% error reduction, $200K saved [closing-cta] -- Get in touch: hello@datapulse.io Does this structure work, or should I adjust anything?
Wait for confirmation before Step 4.
---
Step 4: Content Draft
Write per-page-section copy. Plain text only -- no HTML yet.
**Copy rules per section:**
- `cover`: company name + headline result (12 words max, MUST lead with the number: "Acme cut reporting time by 80%") + optional category label ("Customer Success Story")
- `overview`: 4 facts only -- Industry / Company size / Location / Use case -- each value 4 words max
- `challenge`: context paragraph (2-3 sentences) + 3 pain points (1 sentence each, no bullet filler)
- `solution`: 2-3 feature c
AI Agent Skills built for Founders who hate Marketing
Repo: Varnan-Tech/opendirectory
Other skills on opendirectory-gtm-skills.
- /app-store-review-arbitrage
Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.
Open skill - /blog-cover-image-cli
Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.
Open skill - /brand-alchemy
World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.
Open skill - /claude-md-generator
Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.
Open skill - /cold-email-verifier
Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.
Open skill - /company-radar
Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.
Open skill

