Case Study Orchestrator — Marketplace
Single-plugin Claude Code / Cowork marketplace hosting case-study-orchestrator.
What it is
A thin orchestrator that solves financial-services case studies end to end by routing through Anthropic's published financial-analysis, investment-banking, and private-equity plugins. The user invokes /solve-case-study from a case folder; the plugin inventories the materials, classifies the case shape (model-only, deck-only, or model+deck), and dispatches the smallest set of three scoped worker subagents required.
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. The plugin adds only what Anthropic's pre-built model-builder and pitch-agent subagents don't ship: Bash access (so the bundled python 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 would not function in headless case-study runs.
Prerequisites
These plugins must be enabled for the worker preloads to resolve:
claude plugin marketplace add anthropics/claude-for-financial-services
claude plugin install financial-analysis@claude-for-financial-services
claude plugin install investment-banking@claude-for-financial-services
claude plugin install private-equity@claude-for-financial-services
Required versions: financial-analysis v0.1.1+, investment-banking v0.2.1+, private-equity v0.1.2+. Missing skills are skipped silently at subagent startup (a warning is written to the debug log).
Install
Claude Code (CLI)
claude plugin marketplace add ZaBrisket/case-study-orchestrator
claude plugin install case-study-orchestrator@case-study-marketplace
Cowork (Desktop)
- Push this repository to GitHub.
- In the Cowork desktop app, open the Customize menu and add this repo as a marketplace.
- Install case-study-orchestrator from the marketplace.
Local development
claude plugin marketplace add /path/to/this/repo
claude plugin install case-study-orchestrator@case-study-marketplace
One-shot test without installing:
claude --plugin-dir ./plugins/case-study-orchestrator -p "Reply DONE."
Usage
cd path/to/case-folder
/solve-case-study
Or with an explicit folder argument:
/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.
Architecture
case-study-orchestrator/
├── .claude-plugin/marketplace.json
├── README.md ← you are here
├── plugins/
│ └── case-study-orchestrator/
│ ├── .claude-plugin/plugin.json
│ ├── README.md ← architecture deep-dive
│ ├── skills/
│ │ └── solve-case-study/SKILL.md ← orchestrator, /solve-case-study
│ ├── agents/
│ │ ├── case-digester.md ← read-only synthesizer
│ │ ├── case-modeler.md ← writes .xlsx (8 preloaded skills)
│ │ └── case-deck-builder.md ← writes .pptx (8 preloaded skills)
│ └── scripts/ ← bundled helpers (v0.2.0+)
│ ├── audit_lbo_template.py
│ ├── sensitivity_datatable.py
│ └── preserve_protected_sheets.py
└── tests/ ← regression harness (see tests/README.md)
| Case shape | Workers dispatched |
|---|---|
| Model-only | case-modeler |
| Deck-only with narrative sources | case-digester → case-deck-builder |
| Model + deck (deck depends on model) | case-modeler → review gate → case-deck-builder |
| Independent sub-exercises (e.g., Republic Services pack) | case-digester ∥ case-modeler → case-deck-builder |
Workers run in parallel when their inputs are independent. A single review gate fires before the deck-builder 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.
Tests
A regression harness lives in tests/ — it runs the orchestrator against three known fixtures (Vortex / Republic Services / Edgewater) and validates the produced deliverables against frozen structural and numerical contracts (BS balance, sources-equal-uses tie, IRR/MoM within tolerance, slide count, slide titles, no error cells, etc.).
python tests/run_tests.py
Fixture materials are gitignored — the harness is structure-only until materials are added locally. See tests/README.md for the contract schema.
What's new in v0.2.0
Lessons from a real-world Summit LBO case run (May 2026):
- Native Excel two-input data tables for sensitivity grids — the modeler now writes
DataTableFormulavia the bundledscripts/sensitivity_datatable.py. scripts/audit_lbo_template.pyextendsfinancial-analysis:audit-xlswith LBO templating-convention checks (hold-flag gating, S=U numeric tie, terminal debt, sensitivity-table format, in-workbook assumption labels).scripts/preserve_protected_sheets.pykeeps reference sheets (Answer Key, Variance) byte-identical to the source.- Label-vs-spec conflict surface — modeler flags conflicts rather than picking silently.
- No autonomous v2 rewrites — the modeler's first deliverable is canonical; revisions happen on explicit user direction.
- Versioning clarified — subsequent revisions:
.FILLED.v2.xlsx(dot-separated, not_v2). - Working artifacts (recompute scripts, audit transcripts) go to
<case-folder>/_output/_artifacts/, not alongside the deliverable.
See plugins/case-study-orchestrator/README.md for the architecture deep-dive and plugins/case-study-orchestrator/scripts/README.md for the helper APIs.
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.
- No cross-case memory. Each dispatch is a fresh classification.
- No dispatch to Anthropic's
model-builder/pitch-agentsubagents. Verified to be wired for live-Excel mode with no Bash access; they cannot run the bundled python in headless case-study runs.
License
MIT