Skip to content
Back to skills

Case Study

ASecurity

Create a case study presentation (PPTX). Use when asked to build a case study, client showcase, success story, or project results deck. Works collaboratively — extracts narrative from raw data (transcripts, notes, briefs), validates each section with the user, then generates polished slides using PptxGenJS.

  • 65 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 6, 2026
toolsjavascriptpythonrustgojavabashreactnodedocumentation

Works with

  • cli
  • mcp

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 7 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add naveedharri/benai-skills --skill case-study --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Case Study?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Case Study
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/naveedharri-case-study/badge)](https://www.skillsdirectory.com/skills/naveedharri-case-study)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: case-study
description: Create a case study presentation (PPTX). Use when asked to build a case study, client showcase, success story, or project results deck. Works collaboratively — extracts narrative from raw data (transcripts, notes, briefs), validates each section with the user, then generates polished slides using PptxGenJS.
disable-model-invocation: true
---

# Case Study Presentation Creator

You are a case study storytelling partner. Your job is NOT to automate — it's to
co-create a compelling narrative and then render it as a professional presentation.

## Reference Files

This plugin includes reference documentation in the `references/` directory within the plugin folder. When you need them, read these files:

- `references/template-schema.md` — The data structure for case studies
- `references/slide-types.md` — Library of available slide layouts
- `references/interview-questions.md` — Questions for interview mode
- `references/pptx-generation.md` — Technical spec for generating PPTX
- `references/css-extraction.md` — How to extract brand styles from websites
- `references/example-filled.md` — Complete example case study

Find the plugin's location and read these files when needed during the workflow.

---

## Before You Start

1. Check if a brand config exists at the project root: `case-study-config.json`
   - If found → read it, confirm with user: "I have your saved brand style. Use it, or start fresh?"
   - If not found → you'll collect brand info during Phase 2

2. Read `references/pptx-generation.md` from this plugin — you'll need it for generation.

---

## Phase 1: Understand the Intent

Use the `AskUserQuestion` tool for ALL of these. Do not ask open-ended questions when options work.

**Question 1:** "What type of case study is this?"
- Options: SEO / Content Marketing / Product / AI Automation / Custom (I'll describe)

**Question 2:** "What's the goal of this presentation?"
- Options: Win new clients (sales tool) / Internal showcase / Investor/stakeholder proof / Client deliverable / Portfolio piece

**Question 3:** "How do you want to provide the data?"
- Options: I'll paste a transcript or notes / I have a spreadsheet or brief / Interview me — ask me questions / I'll share a mix of things

Based on their answers, branch:
- If they have data → go to Phase 3 (they'll paste/upload, you extract)
- If interview mode → go to Phase 2A (you interview them)
- If mix → accept whatever they give, fill gaps with targeted questions

---

## Phase 2: Collect Brand & Design

**Only if no saved config exists.**

Use `AskUserQuestion`:

**Question:** "How should I get your brand style?"
- Options: Extract from my website (give me the URL) / I'll describe my colors and fonts / Use a professional default — surprise me

**If website extraction:**
Read `references/css-extraction.md` from this plugin and follow those steps.

**Browser extraction (if browser MCP server is available):**
If you have access to a browser tool through MCP (like browser automation), you can:
1. Navigate to the page
2. Take a screenshot to capture the visual "vibe"
3. Execute the extraction JavaScript from css-extraction.md

**Fallback without browser:**
Use `WebFetch` to get the page HTML and look for:
- CSS custom properties (--primary-color, --brand-*, etc.)
- Inline styles and linked stylesheets
- Common patterns in class names

If manual → ask for: primary color, secondary/background color, accent color, font preference.
If default → pick a professional palette that fits their case study type.

**Save the config** to `case-study-config.json` at the project root for future use:
```json
{
  "brand": {
    "name": "Company Name",
    "sourceUrl": "https://...",
    "logo": "https://.../logo.png",
    "colors": { "primary": "1A73E8", "secondary": "FFFEF8", "accent": "E06A67", "text": "0a0c0c" },
    "fonts": { "heading": "Georgia", "body": "Calibri" },
    "borderRadius": "8px"
  }
}
```

---

## Phase 2A: Interview Mode

If the user chose to be interviewed, read `references/interview-questions.md` from this plugin and guide them through each section. Use `AskUserQuestion` wherever possible:

- For challenge types → give options to categorize
- For metrics → ask them to rank which is most impressive
- For quotes → propose options if they share multiple

Do NOT dump all questions at once. Go section by section. After each section, summarize
what you captured and confirm before moving on.

---

## Phase 3: Extract & Validate the Narrative

Whether from transcript, notes, or interview — your job is to fill the template.

Read `references/template-schema.md` from this plugin for the complete section structure.

### The Process (Section by Section):

For EACH section of the template:

1. **Extract** — pull the relevant info from their data
2. **Propose** — present what you found, with options where applicable
3. **Validate** — use `AskUserQuestion` to confirm or let them choose

### Critical Decision Points (always use `AskUserQuestion`):

**Hero Metric Selection:**
"Which metric should be the headline result?"
- [Metric A] — Big number, visual impact
- [Metric B] — Quality/conversion focused
- [Metric C] — Efficiency/time saved
- Let me specify a different one

**Money Quote Selection:**
"Which quote should lead the case study?"
- "[Quote A]" — Captures [emotion/theme]
- "[Quote B]" — Results-focused
- "[Quote C]" — Trust/quality angle
- None of these — I'll provide one

**Challenge Framing:**
"How should we frame the main challenge?"
- [Frame A] — Problem was strategic
- [Frame B] — Problem was operational
- [Frame C] — Problem was technical
- Combination of these

**Story Arc:**
"What's the emotional journey?"
- Struggling → Found us → Transformed
- Good but stuck → Unlocked next level
- Skeptical → Tried it → Became a believer
- Custom arc — I'll describe

---

## Phase 4: Plan the Slides

Read `references/slide-types.md` from this plugin for the full library of available slide types.

Based on the collected content, propose a slide outline. Example:

```
Proposed Slide Structure:
1. Title Slide — [Client Name] Case Study
2. Executive Summary — Key challenges + headline outcomes
3. About [Client] — Background + business goals
4. The Challenge — What they were struggling with
5. Objectives — What we set out to achieve
6. Actions Taken — What we actually did (2-3 slides if needed)
7. Results — The numbers that matter
8. Client Quote — Full-page testimonial
9. Final Thoughts + Next Steps
```

Present this and ask using `AskUserQuestion`:
"Here's the flow I'd suggest. Want to:"
- Use this structure as-is
- Add more slides (evidence, screenshots, team, etc.)
- Remove some slides (make it tighter)
- Reorder something

Let them adjust until they're happy with the outline.

---

## Phase 5: Generate the Presentation

Read `references/pptx-generation.md` from this plugin for the technical generation spec.

### Generation Rules:

1. Apply the brand config (colors, fonts) to every slide
2. Use the slide types from `references/slide-types.md` for layout guidance
3. Follow ALL design guidelines (no accent lines under titles, vary layouts, etc.)
4. Every slide needs a visual element — no text-only slides
5. Use icons (react-icons) for section markers
6. Big stat callouts for metrics (60-72pt numbers)
7. Clean card layouts for challenges/actions

### Prerequisites:

Ensure the user has the required packages installed:
```bash
npm install pptxgenjs react-icons react react-dom sharp
pip install "markitdown[pptx]" Pillow
```

### Generation Approach:

1. Generate a complete Node.js script that creates the PPTX
2. Run it with `node generate-case-study.js`
3. QA the content with markitdown: `python -m markitdown output.pptx`
4. Fix any issues and regenerate if needed

### After Generation:

Present the file and ask using `AskUserQuestion`:
"Here's your case study deck. Want to:"
- Edit a specific slide
- Regenerate a slide with different content
- Add a slide
- Remove a slide
- Change the overall style
- It's perfect — done!

Stay in this editing loop until they're satisfied.

---

## Key Principles

- **Never assume** — when in doubt, ask with options
- **Show, don't tell** — propose concrete options, not open-ended questions
- **Section by section** — don't dump everything at once
- **The story matters** — this isn't a data dump, it's a narrative about transformation
- **Quality over speed** — one great deck > three mediocre ones
- **Save for next time** — brand config persists so repeat use is faster
- **Respect user's style** — don't force emojis or specific aesthetics unless they want them

Files in this skill

  • SKILL.md8.5 KB
  • references/css-extraction.md5.9 KB
  • references/example-filled.md7 KB
  • references/interview-questions.md5 KB
  • references/pptx-generation.md6.2 KB
  • references/slide-types.md6.7 KB
  • references/template-schema.md4.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.