Solves a financial-services case study end-to-end. Inventories the case folder, classifies the case (model-only / deck-only / model+deck), dispatches the right subset of three workers (case-digester, case-modeler, case-deck-builder) preloaded with Anthropic's modeling and pitch-deck skills, and produces deliverables under <case-folder>/_output/. Use when the user invokes /solve-case-study or asks to solve a case study from a folder of provided artifacts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/case-study-orchestrator:solve-case-study [case-folder-path][case-folder-path]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
When this skill is invoked, you orchestrate a financial-services case study end to end. You classify the case, dispatch a minimal set of scoped subagents, hold a single review gate when the deck depends on prior work, and verify the deliverables.
When this skill is invoked, you orchestrate a financial-services case study end to end. You classify the case, dispatch a minimal set of scoped subagents, hold a single review gate when the deck depends on prior work, and verify the deliverables.
You do not perform the subagents' work yourself. Opus under-delegates by default — the dispatch logic below is load-bearing. Follow it rather than collapsing the pipeline into a single pass.
Produce the deliverables the case asks for — typically a filled Excel model, a PowerPoint deck, or both — using only the materials in the case folder. No external research unless the user explicitly authorizes it mid-flow.
Resolve the case folder: if $ARGUMENTS is a path, use it; otherwise use the current working directory. List every file.
Identify the prompt in this order of preference:
*Prompt*, *Case Study*, *Instructions*, or starts with 00..xlsx (Edgewater-style cases embed the prompt inside the model template).Set three classification flags from the prompt and the file inventory:
has_narrative_source_docs — there are multiple narrative PDFs to synthesize (press releases, investor decks, conference-call transcripts, equity research notes, broker materials, news). A single financials PDF alone does NOT trigger this — the modeler reads that directly.has_model_template — there is an Excel template to fill, OR the prompt requests an in-prompt modeling exercise (e.g., "build a 5-year P&L from these assumptions"). Both cases require the modeler.requires_deck — the prompt asks for slides, a presentation, a deck, a one-pager, or a memo.Note worker dependencies. Does the requested deck depend on figures the model will produce (purchase price, leverage, returns)? Yes for combined-deliverable cases. No when the deck and model are independent sub-exercises in the same pack.
Show a one-line classification to the user before dispatching anything:
"I see this as a [model-only / deck-only / model+deck] case with [N] narrative source docs. Dispatching: [worker list]. Proceed?"
Wait for confirmation. This is the lightweight checkpoint that catches gross misclassification before any expensive subagent fires.
Subagent definitions live in this plugin's agents/ directory. Dispatch each by its name using the Agent tool.
Dispatch-prompt discipline. Hand workers the paths and a short list of methodology-skill hints — not pre-resolved formulas or cell-level prescriptions. The worker's preloaded skills are the mechanics; your job is routing, not modeling. Over-specified dispatch prompts (e.g., 150 lines of formula-level guidance) collapse the pipeline into a single pass, defeat the skill preload, and produce models that match the orchestrator's mental model rather than the template's conventions. Keep dispatch prompts focused on what to produce, not how to compute each cell.
If both fire, issue the Agent tool calls in a single assistant message so the workers run concurrently. Issuing them in separate messages will run them serially and defeat the parallel wave.
has_narrative_source_docs: dispatch case-digester with the case folder path and the list of narrative source PDFs. It returns a structured evidence pack as markdown.has_model_template: dispatch case-modeler with the case folder path, the prompt text (or the in-Excel instruction location), the model template path (if any), any raw financials PDF paths, and a short list of methodology-skill hints (e.g., "apply lbo-model and returns-analysis; this is a quarterly template with pre-wired acq/hold/exit flag rows"). It returns the path to a filled .xlsx plus a brief summary of headline outputs.Fire the gate only when both conditions hold:
requires_deck is true (a deck will be built).If both hold, pause before Wave B. Present to the user:
Ask for approval or amendments before dispatching the deck-builder. If the deck and model are independent sub-exercises (the deck does not depend on the model), skip the gate and dispatch the deck-builder immediately.
requires_deck: dispatch case-deck-builder with the prompt's required outline, the evidence pack (if Wave A produced one), the completed model path (if Wave A produced one), and the case folder path. It returns the path to a .pptx.Do not trust a worker's self-report. Verify directly using Bash + python:
.xlsx:
openpyxl (data_only=False), confirm the expected sheets exist and that key cells contain formulas (not literals where formulas are required).data_only=True read sees None for every IRR/MOIC. Shell out to libreoffice --headless --calc --convert-to xlsx --outdir <tmp> <file> when available, then re-load with data_only=True and verify IRR/MOIC return numeric values.Sources == Uses as a value comparison (not a formula-structural tie), terminal closing-debt = 0, EBITDA in the returns view equals the operating-model EBITDA.*<col>$<flag-row> multiplier. Six lines of Python catches a class of templating defects that pure structural checks miss.Assumptions tab)..pptx: open with python-pptx, confirm the expected number of slides and that text frames are non-empty.Convention-vs-spec conflict gate. If the modeler returns a conflict in its summary (e.g., a row label that says "Quarterly Rate" disagrees with prompt text that says "Annual"), pause. Present both interpretations to the user, recommend a treatment, and ask for direction before declaring the deliverable done. Conflicts that the modeler chose silently are bugs in waiting.
Report deliverable paths and a 3-line summary of headline outputs to the user.
case-modeler before reporting.case-modeler writes .xlsx. case-deck-builder writes .pptx. case-digester is read-only. You do not patch the .xlsx or .pptx directly — if a fix is needed, re-dispatch the relevant worker with a corrective instruction. You may write working scripts to _output/_artifacts/.<case-folder>/_output/. Working artifacts (recompute scripts, audit transcripts, scratch files) go to <case-folder>/_output/_artifacts/. Create both directories if missing. Never modify original input files. If a deliverable already exists at the target path, suffix .v2.xlsx, .v3.xlsx (dot-separated before .xlsx, not underscore-embedded in the stem).npx claudepluginhub zabrisket/case-study-orchestrator --plugin case-study-orchestratorOffers UI/UX design guidance for web and mobile with 50+ styles, 161 color palettes, 57 font pairings, and 99 UX guidelines across 10 stacks. Use for designing pages, components, color systems, or reviewing UI code.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.