Capture your build decisions in real time. Generate portfolio and marketing case studies from your development journey.
An always-on AI partner that watches your coding sessions and prompts reflection questions when you're making architecture tradeoffs, hardening security, or navigating constraints. When you ship, generate polished case study pages from the real decisions you captured — not from memory weeks later.
Everything runs locally in your project folder. No API keys. No cloud. No accounts.
Free Cursor & Claude plugin. casestudymaker.dev — Premium themes, PDF export, LinkedIn kit.
Important: Clone this repo inside the project you want to document.
cd ~/my-awesome-app
git clone https://github.com/julieclarkson/case-study-maker.git .case-study-maker
bash .case-study-maker/cursor/csm-initcsm-init creates the .case-study/ directory, installs rules and commands into .cursor/, copies templates, and sets up a post-commit hook.
Then say "activate case study maker" in Cursor chat.
cd ~/my-awesome-app
git clone https://github.com/julieclarkson/case-study-maker.git .case-study-maker
cp -r .case-study-maker/claude/skills .claude/skills
cp -r .case-study-maker/claude/commands .claude/commandsThen use /activate-case-study-maker in Claude.
- Cursor: launchpad-cursor
- Claude: launchpad-claude
- Activate in your project — creates
.case-study/with event log and templates - Build normally — the AI partner watches for decision moments (architecture, security, constraints)
- Answer reflections — one question at a time, inline in chat, never interrupts debugging
- Generate — pick a category, template, theme, and tone; get a self-contained HTML/CSS/JS page
The plugin captures five categories of engineering reasoning:
| Category | Triggered by |
|---|---|
| Constraints | Platform limits, budget, time pressure, team size |
| Tradeoffs | "Chose X over Y", architecture decisions, library evaluations |
| Risks | Error handling, external APIs, data migration, infrastructure |
| Security | Auth, validation, encryption, CORS, user data handling |
| Iteration | Refactoring, rewrites, version changes, major restructuring |
| Command | What it does |
|---|---|
/csm |
Show all commands and current status (event count, active template/theme) |
/activate |
Initialize case study tracking in your project |
/capture |
Capture a reflection and append it to the timeline |
/auto-capture |
Draft reflections from your conversation and recent commits |
/review |
Review coverage and identify gaps in your timeline |
/generate |
Generate a case study (choose category, template, theme, tone) |
/generate-portfolio-card |
Generate an embeddable portfolio card |
/generate-custom |
Generate output for any installed category (pitch-deck, linkedin, etc.) |
/customize |
Change template, theme, tone, colors, fonts, or install a template pack |
/install-template |
Install premium or custom template packs |
/send-to-pages |
Copy outputs to your GitHub Pages repo |
cursor/ — Cursor plugin (rules, skills, commands, templates, hooks)
claude/ — Claude plugin (skills, commands, templates)
See cursor/README.md or claude/README.md for full documentation.
- Node.js 18+ (optional) — enables post-commit hooks that flag undocumented decisions. All core features work without it.
Case Study Maker runs entirely within the IDE sandbox. All data stays in your project folder under .case-study/.
Built-in safeguards:
- Activation gate — the AI rule only fires when
.case-study/exists in your project; no ambient tracking - Scope boundary — all reads and writes are confined to the project root; no access to home directory, other projects, or paths containing
.. - Zero dependencies — no npm packages, no supply chain risk
- Input validation — user selections are whitelist-validated; output filenames must match
[a-zA-Z0-9_-]+ - XSS prevention —
escapeHtml()on all user content in generated templates - CSP headers — all generated HTML includes
Content-Security-Policymeta tags - Shell safety — hook scripts use
execFileSyncwith argv arrays (notexecSync) to prevent command injection through crafted commit messages
Your responsibility:
- Manage IDE scope and permissions. Cursor and Claude may request expanded permissions for operations like
/send-to-pages(writes outside the project folder). Review each prompt carefully. Configure your IDE's scope settings to control what the AI agent can do. - Don't commit secrets. The plugin never stores API keys (it doesn't use any), but your reflections may reference sensitive decisions. Review
.case-study/events.jsonbefore committing if your project involves proprietary information.
Security-related changes are tracked in SECURITY_LOG.md.
Case Study Maker is the first step in a three-plugin workflow:
- Case Study Maker (this plugin) — Capture build decisions and generate case studies
- Demo Maker — Generate narrated video demos from your codebase
- Git Launcher — Generate README, launch posts, and social assets
Each plugin feeds into the next. Demo Maker reads your case study timeline for narrative context. Git Launcher reads both for README content and embeds demo videos into launch posts.
Install order: Case Study Maker → Demo Maker → Git Launcher
Published by Jacobus Company LLC (dba Superfly Web Designs), United States.
- LICENSE — MIT License (copyright Jacobus Company LLC)
- Terms of Service — (repo copy)
- Privacy Policy — (repo copy)
- Liability Waiver — (repo copy)
The Software is provided "as is." You are responsible for reviewing generated content, managing credentials, and IDE permissions. The hosted pages above are the canonical human-readable legal documents.
MIT License. See LICENSE.
Copyright (c) 2026 Jacobus Company LLC (dba Superfly Web Designs).