Install
$ agentstack add skill-norahe0304-art-30x-mckinsey-research-deck-mckinsey-market-research-deck ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
McKinsey-Style Market-Research Deck
Build a research-backed, visually elite, page-turning deck (HTML reviewed on screen → PDF for sharing). This skill is the distilled, reusable playbook. Read the four reference files as you reach each phase — do not try to hold all of it in head at once.
references/methodology.md— how to do the research and what each section must containreferences/design-system.md— the locked visual contract (tokens, page types, layout laws)../mckinsey-deck/assets/deck_engine.py— the canonical engine (owned by themckinsey-deck
style skill; this skill consumes it — never fork a local copy, that's how drift starts)
references/qc-checklist.md— the self-verify pass before deliveryreferences/image-handoff.md— the template that hands product/cover images to an image generator
The 7-page spine (always)
- The Answer — one
answer_slide()right after the cover: the governing thought (the full
recommendation in one sentence) + 3–4 pillar conclusions with key numbers. Pyramid Principle: the answer comes first; the rest of the deck is its proof. Drafted in Phase 1.5, finalized last.
- Market Overview — size, growth, channel, the structural shift
- Brand Landscape — Good/Better/Best ladder + brand-by-brand profiles
- Product Categories — per-subcategory competitor price ladder + pain points + the brand's lineup
- Customer Pain Points — sourced failure modes, each one a selling-point opening
- Opportunities — pain points → product direction
- The Solution — positioning, pricing/packaging, the line plan, and the decision pages (bottom-up market sizing, economics, business case) + the thesis
End with a full source register (every URL, numbered).
Workflow (run in order)
Phase 0 — Scope + Day-1 hypothesis
Get: the brand, the parent retailer/company, the category, the geography, the SKU-count target, and the strategic question (usually "what line should we build and why"). Confirm the deck is the deliverable (pure market research), not a precursor needing first-party data. Then write the Day-1 hypothesis — a one-paragraph draft of the answer ("we believe X because A/B/C") before researching. It steers the research (80/20: go deep only on the branches that confirm or kill it) and it is there to be falsified, not defended — revise it whenever the evidence disagrees, and say so in the deck.
Phase 1 — Research → one data file
Do the research per references/methodology.md. Land everything in a single -data.json (the deck is data-driven from it). Every number must carry a sourceUrl. Schema in methodology.md. Use WebSearch/WebFetch; capture competitor prices/plan tiers live with the capture date (shelf price for goods, plan/ACV for software, cost-to-adopt for OSS/service). Source bar (full rules in methodology.md § The source bar): prices from the vendor's own page only; market sizes from named research, never an SEO aggregator alone; pains quoted verbatim from a named venue; load-bearing inputs need 2 sources or an explicit "judgment call" label; floor of ≥1.5 unique URLs per content page with ≥50% primary/named-research — and zero padding URLs.
Phase 1.5 — Ghost deck (dot-dash storyline)
Before rendering a single page, write the headline-only outline: every page as one action-title sentence, in order, plus a one-line sketch of its exhibit. Then run the horizontal-logic test: read the headlines top to bottom — they must read as one persuasive essay (SCQA arc: situation → complication → question → answer). If a headline doesn't advance the argument, the page gets cut or merged now, before any layout work is spent. Draft the §0 governing thought + pillars here too.
Phase 2 — Generate the deck
Copy the canonical engine ~/.claude/skills/mckinsey-deck/assets/deck_engine.py into the project (single source of truth — engine fixes go back to that file, never to a project-local fork). Point it at -data.json, set BRAND, compose the 6-section build() (the engine ships the renderers + an example build). Render:
python3 deck_engine.py # writes -Deck.html
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless --disable-gpu \
--no-pdf-header-footer --print-to-pdf="-Deck.pdf" "-Deck.html"
After EVERY build, assert structure: div diff must be 0 (an unclosed div breaks pagination).
python3 -c "h=open('-Deck.html').read();print('div diff:',h.count(''))"
Phase 3 — Decision pages (adversarial verify)
The three pages that turn "opportunity scan" into "decision deck": bottom-up market sizing (TAM/SAM/SOM), economics (validate the value/margin claim with the buildup that fits the category — landed COGS for goods, CAC/payback for SaaS, adoption→conversion for OSS), business case (investment, 3 scenarios, payback). The questions are universal; the arithmetic forks by archetype — see methodology.md (§ Decision pages) for each pattern, and set exhibit.boldKeys to mark the answer rows. Generate + verify them with a Workflow pipeline — one analyst agent per page, then an adversarial verifier that re-derives every number. Persist each verified page as _decision_.json.
Phase 4 — Images
List what's missing (cover hero + any product cutouts + optional dividers). Write the handoff with references/image-handoff.md, hand it to the image generator, then wire the returned PNGs into the engine.
Phase 5 — QC (mandatory, self-run)
Run references/qc-checklist.md end to end: render every page, eyeball for overlap / mid-word truncation / >30% whitespace / unblended images, and programmatically verify the source register count. Fix defects, re-render, re-check. Only then present.
Hard design laws (baked in — never violate)
These are user-confirmed preferences; treat as non-negotiable defaults:
- No eyebrow/kicker labels. No small letter-spaced ALL-CAPS tags above titles or on the cover.
The action-title headline carries the meaning.
- Cover is ultra-minimal: title + one italic subtitle, on the navy hero image. No KPI band,
no method/evidence block, no "Prepared ".
- Action-title headlines: the headline is a full-sentence conclusion, not a topic label.
- Charts ride beside their analysis. Embed the donut/bar/heatmap in a content page's right rail
(essay_slide(side=...)); never put a chart alone on a standalone page.
- ≥4 charts per deck, each centered-titled and load-bearing. A deck has at least four charts
(donut / bar / heatmap mix) that each carry a real finding; chart titles are always centered.
- Notes pinned to a uniform bottom position (
margin-top:auto), same on every page. - Nothing overlaps the footer line.
.padreserves bottom clearance. - Fill by composition, not by stretching — <30% whitespace. Sparse prose spreads (
space-evenly);
sparse tables keep their uniform row height (header 34px / rows 52px, deck-wide) and take an extra= stat strip or more researched rows. Never balloon an element to hide thin content.
- No mid-word truncation. Use the engine's
clipw()(word boundary + "…"), never raw[:n]. - Images: clean cutout on pure white, no shadow,
mix-blend-mode:multiplyto blend; every image
gets an italic caption. Cover/divider images are the only ones on navy.
- Flat only: no drop shadows, no bevels (navy cover/divider excepted).
- Self-verify by rendering the PDF, not by trusting the browser tab (an already-open tab won't
reload — tell the user to hard-refresh with Cmd+Shift+R).
Quality bar
Match AND exceed a reference McKinsey report on both content density and visual polish. Prose pages use "bold theme + flowing paragraph", not terse bullets. Be honest about assumptions — flag the load-bearing judgment calls rather than hiding them; that honesty is what reads as senior.
Two final gates before delivery:
- Elevator test — the §0 governing thought + thesis page must sell the recommendation in 30
seconds, standalone. If it needs the rest of the deck to make sense, it isn't the answer yet.
- Horizontal logic — re-run the headline read-through on the finished deck (QC §C); page
edits during build often break the essay.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: norahe0304-art
- Source: norahe0304-art/30x-mckinsey-research-deck
- License: MIT
- Homepage: https://norahe0304-art.github.io/30x-mckinsey-research-deck/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.