
Case Study Orchestrator
- Updated May 22, 2026
- ZaBrisket/case-study-orchestrator
case-study-orchestrator is a Claude Code skill in the AI & Agent Building category. Solves financial-services case studies end-to-end by dispatching workers preloaded with Anthropic's financial-analysis, investment-banking, and private-equity skills.
Key points
- case-study-orchestrator
- AI & Agent Building
- AI-coding skill
Case Study Orchestrator by the numbers
- Data as of Jul 7, 2026 (Skillselion catalog sync)
/plugin marketplace add ZaBrisket/case-study-orchestrator/plugin install case-study-orchestrator@case-study-marketplaceAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Last updated | May 22, 2026 |
|---|---|
| Repository | ZaBrisket/case-study-orchestrator ↗ |
What it does
Solves financial-services case studies end-to-end by dispatching workers preloaded with Anthropic's financial-analysis, investment-banking, and private-equity skills.
README.md
Case Study Orchestrator
A Claude Code plugin that solves financial-services case studies end-to-end. Hand it a folder of case materials (a prompt PDF, source documents, model templates), invoke /solve-case-study, and it produces the deliverables — typically a filled .xlsx, a .pptx, or both — to <case-folder>/_output/.
What's new in v0.2.0
Based on a real-world Summit LBO case run (May 2026):
- Native Excel two-input data tables for sensitivity grids. The modeler now writes
DataTableFormula(via the bundledscripts/sensitivity_datatable.py) instead of hardcoded numeric IRR grids — closes the single material gap between the plugin's first deliverable and what shipped to the hiring manager. - LBO templating-convention audit (
scripts/audit_lbo_template.py). Extendsfinancial-analysis:audit-xlswith checks the upstream skill does not perform: hold-flag gating per operating row, one-time S&U row spreading with acq/exit-flag gating, debt amortMIN(amort, opening_balance)cap, terminal closing-debt = 0, sensitivity-table format, in-workbook assumption labels. - Protected-sheet preservation (
scripts/preserve_protected_sheets.py). Copies reference sheets (Answer Key, Variance) byte-for-byte instead of letting openpyxl re-encode and drift float precision. - Label-vs-spec conflict surface. When a row label conflicts with prompt text (e.g., label says "Quarterly Rate" but spec says "Annual"), the modeler surfaces the conflict to the orchestrator rather than picking silently.
- No autonomous v2 rewrites. The modeler's first deliverable is the canonical answer; v2 happens only on explicit user direction. Working scripts go to
<case-folder>/_output/_artifacts/, not alongside the deliverable. - Tightened dispatch-prompt discipline. The orchestrator hands workers paths + short skill hints, not 150-line formula prescriptions.
- Versioning convention clarified. Subsequent revisions:
.FILLED.v2.xlsx(dot-separated before.xlsx, not underscore-embedded).
Architecture
One orchestrator skill (solve-case-study) plus three worker subagents (case-digester, case-modeler, case-deck-builder). The orchestrator inventories the case folder, classifies it on three flags (has_narrative_source_docs, has_model_template, requires_deck), and dispatches the smallest set of workers required.
| Case shape | Workers dispatched | Example |
|---|---|---|
| Model-only | case-modeler |
LBO build from a trial balance |
| Deck-only with narrative sources | case-digester → case-deck-builder |
2-slide transaction summary from source PDFs |
| Model + deck (deck depends on model) | case-modeler → review gate → case-deck-builder |
LBO + 2-page opportunity overview |
| Parallel sub-exercises | case-digester ∥ case-modeler → case-deck-builder |
Pack with both a narrative-deck task and a standalone modeling task |
Workers run in parallel when their inputs are independent. A single review gate fires before the deck-builder only when the deck depends on prior worker output.
Routing through Anthropic's plugins
All methodology comes from skills preloaded into the workers via the skills: frontmatter field — full skill content is injected at subagent startup, not just the description.
case-modelerpreloads:financial-analysis:3-statement-model,lbo-model,dcf-model,comps-analysis,clean-data-xls,audit-xls,xlsx-author,private-equity:returns-analysis.case-deck-builderpreloads:investment-banking:pitch-deck,strip-profile,datapack-builder,financial-analysis:ib-check-deck,pptx-author,private-equity:deal-screening,dd-checklist,ic-memo.case-digesterpreloads nothing — it is a focused read-only synthesizer.
The plugin adds only what Anthropic's pre-built model-builder and pitch-agent subagents don't ship: Bash access (so the bundled python scripts in xlsx-author / pptx-author can run) and case-study-specific I/O (reading prompts from PDFs or in-Excel instructions, handling yellow/blue template conventions, etc.). Anthropic's *-agent plugins are wired for live-Excel mode via mcp__office__excel_* and don't include Bash; they don't fit headless case-study workflows out of the box.
Required plugins
These must be enabled for the worker preloads to resolve:
financial-analysis@claude-for-financial-services(v0.1.1+)investment-banking@claude-for-financial-services(v0.2.1+)private-equity@claude-for-financial-services(v0.1.2+)
If a preloaded skill is missing, Claude Code skips it silently and writes a warning to the debug log. The plugin still functions in degraded form but loses the corresponding methodology.
Install
/plugin marketplace add ZaBrisket/case-study-orchestrator
/plugin install case-study-orchestrator@case-study-marketplace
Usage
cd path/to/case-folder
/solve-case-study
Or with an explicit folder:
/solve-case-study /absolute/path/to/case-folder
The orchestrator inventories the folder, classifies the case, and shows you a one-line dispatch plan before any subagent fires. A review gate fires before the deck-builder only when the deck depends on prior worker output.
Output
Deliverables write to <case-folder>/_output/. Original input files are never modified. Each run suffixes .v2, .v3 etc. rather than overwriting existing deliverables.
What's deliberately not included
- No bundled MCP, no userConfig, no hooks. Self-contained and headless.
- No external research in the default flow. Case studies typically forbid it. Invoke
firecrawlskills separately between waves if a case explicitly allows external sources. - No cross-case memory. Each dispatch is a fresh classification.
- No dispatch to Anthropic's
model-builderorpitch-agentsubagents. Verified to be wired for live-Excel mode with no Bash access; they would fail to run the bundled python in headless case-study runs.
Versioning
plugin.json pins version: "0.1.0". Per Claude Code's plugin-caching rules, the cache key is derived from this field. Bump the version on every release; otherwise /plugin update reports "already at latest" even after new commits are pushed.
Files
case-study-orchestrator/
├── .claude-plugin/
│ └── plugin.json
├── README.md
├── skills/
│ └── solve-case-study/
│ └── SKILL.md ← orchestrator (user-invocable, /solve-case-study)
├── agents/
│ ├── case-digester.md ← read-only worker
│ ├── case-modeler.md ← writes .xlsx; preloads modeling skills
│ └── case-deck-builder.md ← writes .pptx; preloads deck + screening skills
└── scripts/ ← bundled helpers (v0.2.0+)
├── audit_lbo_template.py ← LBO templating-convention audit
├── sensitivity_datatable.py ← native two-input data tables
└── preserve_protected_sheets.py ← byte-for-byte sheet preservation