{"id":"42838d3d-56fe-404b-9e8b-66311a2b2087","shortId":"QjeWqM","kind":"skill","title":"graphic-case-study","tagline":"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 cu","description":"# Graphic Case Study\n\nGenerate 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.\n\n---\n\n**Critical rules -- non-negotiable:**\n\n1. Every page MUST fit within the A4 canvas (1200×1697px). No content overflow.\n2. ALL scalable font sizes use `clamp()`. Fixed px only for structural borders/lines.\n3. Single self-contained HTML: all CSS inline. Zero external dependencies except font CDN link.\n4. Never dump HTML in chat. Save to file, show summary only.\n5. Results stat numbers MUST be visually dominant -- at least 3× body text size.\n6. No generic AI slop: no Inter as display font, no purple gradient on white, no \"Thank You\" closing.\n\n---\n\n## Step 1: Brief Intake\n\nNeed four things to start. If all four present in the message: skip to Step 2.\n\nIf any missing, ask exactly:\n\n> \"To create your case study, I need four things:\n> 1. **Customer name** -- company name (or a descriptor to anonymize: \"Fortune 500 Retailer\")\n> 2. **Challenge** -- what problem did they have before using your product? (2-5 sentences)\n> 3. **Solution** -- what did your product do to solve it? (features, approach)\n> 4. **Results** -- measurable outcomes: ideally 3 stats (%, time saved, revenue impact, etc.)\"\n\nWait for all four before continuing.\n\n---\n\n## Step 2: Complete Intake\n\nAsk all questions in one message, grouped by category. User can skip any -- defaults apply.\n\n> \"A few questions before I start:\n>\n> **Content**\n> 1. **Customer context** -- industry, company size, location? (optional, used for overview page)\n> 2. **Testimonial** -- customer quote (40 words max) + speaker name + title? (or \"I'll add later\")\n> 3. **Page count** -- 1-pager (summary card) / 2-pager (standard, default) / 4-pager (detailed)\n> 4. **Customer logo** -- URL or \"none\"\n>\n> **Design**\n> 5. **Your company name** -- vendor name for the CTA page (+ logo URL if available)\n> 6. **Style** -- clean-slate / midnight-editorial / matt-gray / product-minimal / mint-pixel-corporate / warm-earth / brutalist / magazine-red / \"show me options\"\n> 7. **Orientation** -- A4 portrait (default, 1200×1697) / landscape 4:3 (1200×900)\n>\n> **Output**\n> 8. **Anonymize?** -- Keep company name / replace with industry descriptor\n> 9. **Slug** -- filename slug (e.g. \"acme-corp-2025\"); I'll derive from customer name if skipped\"\n\n**Defaults if skipped:**\n\n| Question | Default |\n|---|---|\n| Customer context | none |\n| Testimonial | none |\n| Page count | 2 |\n| Customer logo | none |\n| Your company name | derived from context |\n| Style | clean-slate |\n| Orientation | A4 portrait |\n| Anonymize | keep name |\n| Slug | kebab-case of customer name |\n\n**If style = \"show me options\":**\nGenerate 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.\n\n---\n\n## Step 2.5: Internal Page Architecture (not shown to user)\n\nDerive internally before Step 3. Never ask the user.\n\n**Hero metric identification:**\nScan 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.\n\n**Page count -> structure template:**\n\n| Count | Page sequence |\n|---|---|\n| 1-pager | 1 page: [cover-compact] -- all content condensed into one page |\n| 2-pager | Page 1: [cover] + [challenge-solution] stacked · Page 2: [results] + [testimonial-cta] stacked |\n| 4-pager | Page 1: [cover] · Page 2: [overview] + [challenge] · Page 3: [solution] + [results] · Page 4: [testimonial] + [closing-cta] |\n\n**Visual character** derived from style choice:\n- clean-slate → professional authority, generous whitespace, enterprise-safe\n- midnight-editorial → premium dark, editorial weight, tech/AI companies\n- matt-gray → trusted neutral, operational, board-safe\n- warm-earth → approachable warmth, consulting/agency/services\n- brutalist → bold standout, design-forward, attention-commanding\n- If not specified: default to clean-slate for B2B SaaS, midnight-editorial for technical companies.\n\n---\n\n## Step 3: Page Structure\n\nRead `references/page-library.md` before planning.\n\nPlan 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.\n\nOutput as numbered list with `[section-type]` labels per page. Example for 2-pager:\n\n```\nProposed structure (2 pages, clean-slate style):\n\nPage 1:\n  [cover] -- Acme Corp cut reporting time by 80%\n  [challenge-solution] -- manual process / DataPulse automation\n\nPage 2:\n  [results] -- 80% time saved, 95% error reduction, $200K saved\n  [closing-cta] -- Get in touch: hello@datapulse.io\n\nDoes this structure work, or should I adjust anything?\n```\n\nWait for confirmation before Step 4.\n\n---\n\n## Step 4: Content Draft\n\nWrite per-page-section copy. Plain text only -- no HTML yet.\n\n**Copy rules per section:**\n\n- `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\")\n- `overview`: 4 facts only -- Industry / Company size / Location / Use case -- each value 4 words max\n- `challenge`: context paragraph (2-3 sentences) + 3 pain points (1 sentence each, no bullet filler)\n- `solution`: 2-3 feature callouts -- feature name (3 words max) + 1-sentence outcome description each\n- `results`: 3 metrics (number + short label + 1-line context). Optional: 2-sentence narrative. ZERO body copy at same weight as the numbers.\n- `testimonial`: exact quote (40 words max) + speaker name + title + company\n- `closing-cta`: headline (5 words max) + CTA action text (3 words) + email + URL (both required)\n\n**Forbidden words** (no exceptions): \"powerful\", \"seamless\", \"game-changing\", \"leverage\", \"innovative\", \"revolutionary\", \"transform\", \"cutting-edge\", \"robust\", \"unlock\", \"scalable\" (as filler adjective).\n\n**Copy philosophy:** Numbers beat adjectives. Lead every section with the outcome, not the feature. Fragments are fine.\n\n---\n\n## Step 5: HTML Generation\n\nRead ALL before generating any HTML:\n\n**This skill's references:**\n- `references/design-system.md`\n- `references/page-library.md`\n- `references/style-presets.md`\n\n**frontend-slides cross-references (read this exact file):**\n- `/Users/ksd/Desktop/Varnan_skills/frontend-slides/viewport-base.css` -- include FULL contents verbatim inside `<style>` block\n\n**Generation rules:**\n\n1. Single self-contained HTML. All CSS inline. Font CDN `<link>` is the only external reference.\n2. Include the FULL verbatim contents of `viewport-base.css` inside the `<style>` block -- do not paraphrase or shorten it.\n3. After pasting viewport-base.css, add portrait A4 overrides:\n   ```css\n   /* A4 portrait overrides */\n   html { scroll-snap-type: none; scroll-behavior: auto; }\n   .slide {\n     width: 100vw;\n     height: 100vh;\n     height: 100dvh;\n     overflow: hidden;\n     display: flex;\n     flex-direction: column;\n     position: relative;\n     scroll-snap-align: none;\n   }\n   ```\n4. Every page section = `<section class=\"slide\">` -- required for export-pdf.sh detection.\n5. Comment each page: `/* === PAGE N: SECTION-TYPES === */`\n6. Results stat numbers: `clamp(2.5rem, 7vw, 5rem)` minimum. Hero metric in accent color. Other metrics in secondary text color.\n7. No images provided -> CSS-generated visuals (geometric shapes, gradient backgrounds, icon-like CSS constructs). Never output visible placeholder boxes.\n8. No SlidePresentation JS. Include only a minimal IntersectionObserver for `.reveal` entrance animations (viewer experience; PDF export renders to final state automatically).\n9. For landscape 4:3 (if requested): use `clamp()` values from graphic-slide-deck proportions -- landscape 1200×900 means 1vw=12px, similar to portrait.\n\n**Typography discipline (all clamp-based, tuned for 1200px A4 portrait):**\n- Cover headline: `clamp(2rem, 5vw, 3.5rem)`\n- Section heading: `clamp(1.25rem, 2.5vw, 2rem)`\n- Body: `clamp(0.875rem, 1.25vw, 1.1rem)`\n- Stat number (hero): `clamp(3rem, 8vw, 5.5rem)` in accent color\n- Stat number (secondary): `clamp(2.5rem, 7vw, 5rem)` in secondary color\n- Quote: `clamp(1.1rem, 2vw, 1.5rem)` italic\n- Label/caption: `clamp(0.65rem, 0.9vw, 0.8rem)` uppercase\n\n---\n\n## Step 6: Self-QA\n\nCheck every item. Fix every failure -- do not skip.\n\n**Layout and rendering:**\n- [ ] Every `.slide` has `height:100vh; height:100dvh; overflow:hidden`\n- [ ] ALL scalable font sizes use `clamp()`\n- [ ] No content overflows at 1200×1697 viewport -- check each page's density against `references/page-library.md` limits\n- [ ] CSS-generated visuals present for all image placeholder spots\n- [ ] No `-clamp()`, `-min()`, `-max()` in CSS -- wrap negatives in `calc(-1 * ...)`\n\n**Structure:**\n- [ ] Page count matches Step 3 plan\n- [ ] Every page uses `class=\"slide\"`\n- [ ] All content sections from Step 3 are present\n- [ ] `class=\"slide\"` only on `<section>` elements, not inner divs\n\n**Design quality:**\n- [ ] Hero metric visually dominant on results section -- accent color, largest size, no competing elements at equal weight\n- [ ] Style preset tokens applied consistently (colors, fonts from `references/style-presets.md`)\n- [ ] No slop patterns (check DO NOT USE list in `references/style-presets.md`)\n- [ ] Typography hierarchy clear: cover headline >> section heading >> body (at least 2:1 ratio)\n\n**Content:**\n- [ ] No forbidden words in any copy\n- [ ] Cover headline leads with a number or measurable result\n- [ ] Testimonial quote is 40 words or fewer\n- [ ] Closing CTA has headline + action + email + URL (all four)\n- [ ] All stats in results section have labels (no naked numbers)\n\n---\n\n## Step 7: Output\n\n**Save the main HTML:**\n\n```bash\nmkdir -p case-study/[slug]\n```\n\nWrite to: `case-study/[slug]/index.html`\n\nOpen it: `open case-study/[slug]/index.html`\n\n**Per-page HTML files (always generate these):**\n\nExtract each `<section class=\"slide\">` from the main HTML. For each one, create a standalone file with:\n- The full `<style>` block from the main HTML (copied verbatim)\n- The individual `<section class=\"slide\">` wrapped in a minimal HTML shell\n- No JS (static per-page viewing)\n\nWrite to: `case-study/[slug]/page-01.html`, `page-02.html`, etc.\n\n**PDF export (always do this for A4 portrait):**\n\n```bash\nbash /Users/ksd/Desktop/Varnan_skills/frontend-slides/scripts/export-pdf.sh \\\n  case-study/[slug]/index.html \\\n  case-study/[slug].pdf --portrait\n```\n\nIf landscape 4:3 was requested, omit `--portrait` and use `--compact` instead (1280×720).\n\nNote: first run installs Playwright automatically (~30-60 seconds). Inform the user.\n\n**Cleanup:** Delete `.claude-design/previews/` if style preview files were generated in Step 2.\n\n---\n\n## Step 8: Summary (no HTML in chat)\n\nPresent in chat:\n\n```\n## Case Study: [customer name]\nDate: [today] | Style: [style] | Pages: [N] | Format: A4 portrait\nVendor: [your company] | Customer: [customer name]\n\n---\n\n### Files\nMain:      case-study/[slug]/index.html\nPer-page:  case-study/[slug]/page-01.html -> page-0N.html\nPDF:       case-study/[slug].pdf\n\n---\n\n### Case Study Checklist\n- [ ] Replace [IMAGE: logo] placeholder with real logo file\n- [ ] Verify all stats are accurate (page [results page number])\n- [ ] Confirm customer has approved quote usage\n- [ ] Proof company name spelling, speaker title accuracy\n- [ ] Test PDF page count = [N] and no content clips\n- [ ] Share PDF at case-study/[slug].pdf\n```\n\nDo not print HTML in chat.\n\n---\n\n## Section Reference\n\n| Section | Purpose |\n|---|---|\n| cover | Opening page -- customer name, headline result, logos |\n| overview | At-a-glance profile -- industry, size, use case |\n| challenge | The problem -- context + pain points |\n| solution | How your product solved it -- feature callouts |\n| results | Key metrics + supporting narrative |\n| testimonial | Full-width pull quote from customer |\n| closing-cta | Vendor logo + contact info + next step |","tags":["graphic","case","study","opendirectory","varnan-tech","agent-skills","gtm","hermes-agent","marketing-skills","openclaw-skills","skill-pack","skills"],"capabilities":["skill","source-varnan-tech","skill-graphic-case-study","topic-agent-skills","topic-gtm","topic-hermes-agent","topic-marketing-skills","topic-openclaw-skills","topic-skill-pack","topic-skills","topic-technical-seo"],"categories":["opendirectory"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Varnan-Tech/opendirectory/graphic-case-study","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Varnan-Tech/opendirectory","source_repo":"https://github.com/Varnan-Tech/opendirectory","install_from":"skills.sh"}},"qualityScore":"0.593","qualityRationale":"deterministic score 0.59 from registry signals: · indexed on github topic:agent-skills · 286 github stars · SKILL.md body (12,177 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:54:41.098Z","embedding":null,"createdAt":"2026-05-02T18:54:59.594Z","updatedAt":"2026-05-18T18:54:41.098Z","lastSeenAt":"2026-05-18T18:54:41.098Z","tsv":"'-3':860,873 '-4':26 '-5':248 '/previews/style-a.html':494,503 '/users/ksd/desktop/varnan_skills/frontend-slides/viewport-base.css':1000 '1':25,101,190,223,306,336,577,579,593,609,747,865,881,892 '12':821 '1200':110,401,406 '1697':402 '1697px':111 '2':115,208,236,247,281,318,340,447,590,600,612,736,740,764,859,872,896 '2.5':523 '200k':772 '2025':426 '3':128,166,250,267,333,405,480,506,521,535,616,692,862,878,887,928 '4':144,262,344,347,404,606,620,795,797,842,853 '40':322,911 '5':156,354,922,974 '500':234 '6':170,368 '7':19,88,396,709 '8':409 '80':755,766,834 '9':22,93,418 '900':407 '95':769 'a4':108,398,462 'accent':559 'accent-color':558 'acm':424,749,829 'acme-corp':423 'action':926 'add':331 'adject':955,960 'adjust':788 'ai':173 'anonym':232,410,464 'anyth':789 'appli':298 'approach':261,662 'architectur':526 'ask':212,284,515,537 'assign':704 'attent':672 'attention-command':671 'author':635 'autom':762 'avail':367 'b2b':13,60,683 'beat':959 'biggest':552 'board':657 'board-saf':656 'bodi':167,900 'bold':666 'borders/lines':127 'brief':191 'browser':80 'brutalist':389,665 'bullet':869 'callout':875 'canva':109 'card':339 'case':3,9,35,43,54,61,217,470,512,850 'categori':292,836 'cdn':142 'challeng':237,596,614,757,856 'challenge-solut':595,756 'chang':942 'charact':626 'chat':149 'choic':630 'choos':505 'clamp':121 'claud':492,501 'claude-design':491,500 'clean':371,459,632,680,743 'clean-slat':370,458,631,679,742 'close':188,623,775,919 'closing-cta':622,774,918 'color':560 'command':673 'compact':583 'compani':226,310,356,412,452,649,690,817,846,917 'complet':282 'condens':586 'confirm':792 'consulting/agency/services':664 'contain':74,132 'content':113,305,585,798,1003 'context':308,441,456,514,857,894 'continu':279 'copi':805,812,901,956 'corp':425,750 'corpor':385 'count':335,446,571,574 'cover':486,582,594,610,748,816 'cover-compact':581 'creat':33,215 'critic':96 'cross':994 'cross-refer':993 'css':135 'cta':362,604,624,776,920,925 'cu':52 'custom':39,65,224,307,320,348,431,440,448,472,838 'cut':751,830,948 'cutting-edg':947 'dark':645 'datapuls':761 'default':297,343,400,435,439,677 'depend':139 'deriv':429,454,531,627 'descript':884 'descriptor':230,417 'design':8,46,59,353,493,502,669 'design-forward':668 'detail':67,346 'display':178 'domin':163 'draft':799 'dump':146 'e.g':422 'earth':388,661 'edg':949 'editori':375,643,646,687 'email':930 'enterpris':639 'enterprise-saf':638 'error':770 'etc':273,504 'everi':102,962 'exact':213,909,998 'exampl':734 'except':140,937 'extern':138 'fact':843 'featur':260,874,876,969 'file':76,152,999 'filenam':420 'filler':870,954 'fine':972 'fit':105 'fix':122 'font':118,141,179 'forbidden':934 'fortun':233 'forward':670 'four':194,200,221,277 'fragment':970 'frontend':991 'frontend-slid':990 'full':701,1002 'game':941 'game-chang':940 'generat':5,56,479,976,980 'generic':172 'generous':636 'get':557,777 'gradient':182 'graphic':2,53 'graphic-case-studi':1 'gray':378,652 'greatest':553 'group':290 'headlin':819,921 'hello@datapulse.io':780 'hero':540 'html':75,133,147,484,810,975,982 'ideal':266 'identif':542 'impact':272 'impress':549 'includ':1001 'industri':309,416,845 'inlin':136 'innov':944 'insid':1005 'intak':192,283 'inter':176 'intern':524,532 'kebab':469 'kebab-cas':468 'keep':411,465 'label':731,837,891 'landscap':403 'largest':551 'later':332 'layout':21,91 'lead':825,961 'least':165 'leverag':943 'line':893 'link':143 'list':726 'll':330,428 'locat':312,848 'logo':349,364,449 'magazin':391 'magazine-r':390 'make':41 'manual':759 'market':17 'match':510 'matt':377,651 'matt-gray':376,650 'max':324,823,855,880,913,924 'maximum':563 'measur':264 'messag':204,289 'metric':541,556,888 'midnight':374,642,686 'midnight-editori':373,641,685 'minim':381 'mint':383 'mint-pixel-corpor':382 'miss':211 'multipl':716 'multipli':554 'must':104,160,824 'name':225,227,326,357,359,413,432,453,466,473,818,877,915 'narrat':898 'need':193,220 'negoti':100 'neutral':654 'never':145,536 'non':99 'non-negoti':98 'none':352,442,444,450 'number':159,550,725,828,889,907,958 'one':288,588,721 'open':77,497,499 'oper':655 'option':313,395,478,835,895 'orient':397,461 'outcom':265,883,966 'output':28,68,408,723 'overflow':114 'overview':316,613,841 'page':20,27,89,103,317,334,363,445,483,487,525,569,570,575,580,589,592,599,608,611,615,619,693,702,714,722,733,741,746,763,803 'pager':337,341,345,578,591,607,737 'pain':863 'paragraph':858 'pdf':11,45,63,86 'per':732,802,814 'per-page-sect':801 'philosophi':957 'pick':518 'pixel':384 'plain':806 'plan':698,699 'plus':81 'point':864 'portrait':399,463 'power':938 'premium':644 'present':201 'preset':24,95,508 'preview':485 'print':84 'print-readi':83 'problem':239 'process':760 'product':246,255,380 'product-minim':379 'profession':7,58,634 'propos':738 'purpl':181 'px':123 'question':286,301,438 'quot':321,910 'read':695,977,996 'readi':85 'red':392 'reduct':771 'refer':986,995 'references/design-system.md':987 'references/page-library.md':696,711,988 'references/style-presets.md':989 'replac':414 'report':752,831 'requir':933 'result':157,263,544,568,601,618,765,820,886 'retail':235 'revenu':271 'revolutionari':945 'robust':950 'rule':97,813 'saa':14,684 'safe':640,658 'sale':15 'save':150,270,489,768,773 'say':32 'scalabl':117,952 'scan':543 'seamless':939 'section':90,705,715,717,729,804,815,963 'section-typ':728 'self':73,131 'self-contain':72,130 'sentenc':249,861,866,882,897 'sequenc':576,703 'short':890 'show':153,393,476 'shown':528 'singl':71,129,482,547 'single-pag':481 'size':119,169,311,847 'skill':984 'skill-graphic-case-study' 'skip':205,295,434,437 'slate':372,460,633,681,744 'slide':992 'slop':174 'slug':419,421,467 'solut':251,597,617,758,871 'solv':258 'source-varnan-tech' 'speaker':325,914 'specifi':676 'stack':598,605,719 'standard':342 'standout':667 'start':197,304 'stat':158,268 'step':189,207,280,520,522,534,691,794,796,973 'stori':40,49,66,840 'structur':126,572,694,739,783 'studi':4,10,36,44,55,62,218,513 'style':23,94,369,457,475,507,629,745 'style-b.html':495 'style-c.html':496 'success':48,839 'summari':154,338 'support':18,87 'tech/ai':648 'technic':689 'templat':573 'testimoni':319,443,603,621,908 'testimonial-cta':602 'text':168,807,927 'thank':186 'thing':195,222 'time':269,753,767,832 'titl':327,916 'topic-agent-skills' 'topic-gtm' 'topic-hermes-agent' 'topic-marketing-skills' 'topic-openclaw-skills' 'topic-skill-pack' 'topic-skills' 'topic-technical-seo' 'touch':779 'transform':946 'treatment':561 'trigger':29 'trust':653 'turn':50 'type':706,730 'unlock':951 'url':350,365,931 'use':120,244,314,849 'user':31,293,516,530,539 'valu':852 'vendor':358 'verbatim':1004 'visual':162,564,625 'wait':274,790 'warm':387,660 'warm-earth':386,659 'warmth':663 'weight':565,647,904 'white':184 'whitespac':637 'within':106,720 'word':323,822,854,879,912,923,929,935 'work':784 'write':37,800 'yet':811 'zero':137,899","prices":[{"id":"2fa524d3-3a38-40c9-bf1a-063439f11e17","listingId":"42838d3d-56fe-404b-9e8b-66311a2b2087","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Varnan-Tech","category":"opendirectory","install_from":"skills.sh"},"createdAt":"2026-05-02T18:54:59.594Z"}],"sources":[{"listingId":"42838d3d-56fe-404b-9e8b-66311a2b2087","source":"github","sourceId":"Varnan-Tech/opendirectory/graphic-case-study","sourceUrl":"https://github.com/Varnan-Tech/opendirectory/tree/main/skills/graphic-case-study","isPrimary":false,"firstSeenAt":"2026-05-02T18:54:59.594Z","lastSeenAt":"2026-05-18T18:54:41.098Z"}],"details":{"listingId":"42838d3d-56fe-404b-9e8b-66311a2b2087","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Varnan-Tech","slug":"graphic-case-study","github":{"repo":"Varnan-Tech/opendirectory","stars":286,"topics":["agent-skills","gtm","hermes-agent","marketing-skills","openclaw-skills","skill-pack","skills","technical-seo"],"license":"mit","html_url":"https://github.com/Varnan-Tech/opendirectory","pushed_at":"2026-05-18T18:27:10Z","description":" AI Agent Skills built for Founders who hate Marketing","skill_md_sha":"5c7df17333297135368c3c2eaa4884d89fbd091e","skill_md_path":"skills/graphic-case-study/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Varnan-Tech/opendirectory/tree/main/skills/graphic-case-study"},"layout":"multi","source":"github","category":"opendirectory","frontmatter":{"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]"},"skills_sh_url":"https://skills.sh/Varnan-Tech/opendirectory/graphic-case-study"},"updatedAt":"2026-05-18T18:54:41.098Z"}}