This plugin is admin CLI tooling, not an app. There is nothing to build and
no server to boot. The surface is the terminal: scripts/*.sh on macOS,
scripts/*.ps1 on Windows.
Lint gate
python3 scripts/check.py # from the REPO ROOT, not the plugin dir
bash -n claude-for-msft-365-install/scripts/<script>.sh
check.py lints every manifest and self-installs the pre-commit hook that
patch-bumps .claude-plugin/plugin.json. Run it before committing.
Drive the scripts against a fake $HOME
Every macOS script resolves Office paths from $HOME, so overriding it gives a
throwaway sandbox — you can exercise the destructive --apply paths without
touching real Office data.
S=<scratchpad>/sandbox
for app in Excel Word Powerpoint; do
mkdir -p "$S/Library/Containers/com.microsoft.$app/Data/Documents/wef"
done
printf '<x/>' > "$S/Library/Containers/com.microsoft.Excel/Data/Documents/wef/aaaaaaaa-1111-1111-1111-111111111111.manifest-a.xml"
HOME=$S ./scripts/clear-addin-cache.sh # list
HOME=$S ./scripts/clear-addin-cache.sh --id <GUID> # dry-run
HOME=$S ./scripts/clear-addin-cache.sh --id <GUID> --apply # destructive
Seed at least two IDs across two apps, with mixed upper/lowercase. Both
properties have caught real bugs: cross-app blast radius, and a case-sensitive
glob that reported "already clear" and sent admins to a folder-wide wipe.
Prove storage is retained
The load-bearing claim of this plugin is that clearing a manifest never touches
the user's chat history. Verify it by snapshot-diffing both trees around the
operation, against the real$HOME:
snap() {
for app in Excel Word Powerpoint; do
find "$HOME/Library/Containers/com.microsoft.$app/Data/Library/WebKit/WebsiteData" \
-type f -exec stat -f '%N %z %m' {} \; 2>/dev/null
find "$HOME/Library/Containers/com.microsoft.$app/Data/Documents/wef" \
-type f -exec stat -f 'WEF %N %z' {} \; 2>/dev/null
done | sort
}
snap > before.txt; <run the script>; snap > after.txt; diff before.txt after.txt
Manifests live in Data/Documents/wef; storage lives in
Data/Library/WebKit/WebsiteData. Different subtrees — the diff should show
only the manifest you removed. Restore any planted files and re-diff to
confirm you left the machine as you found it.
Gotchas
The Bash tool runs zsh. Scripts are #!/usr/bin/env bash; test bash-only
behaviour (shopt, glob semantics) inside bash <<'EOF' … EOF, not inline.
PRAGMA integrity_check and SELECT count(*) fail on exported IndexedDB
files with no such collation sequence: IDBKEY. That is WebKit's custom
collation, not corruption — it fails on the source file too. Verify
completeness with SELECT sum(length(value)) FROM Records; on both sides.
Never claim the .ps1 scripts work without running them on Windows.
macOS has no PowerShell, so a .ps1 change verified only here is unverified.
Run it on a real Windows host against Windows PowerShell 5.1, and always
include a parse check before the behavioural ones:
A file can be perfectly fine on macOS and fail to parse outright on Windows
(see the ASCII note below), so parsing is the first thing to establish.
.ps1 files must be pure ASCII (enforced by scripts/check.py).
Windows PowerShell 5.1 reads a BOM-less .ps1 as ANSI, so an em dash decodes
to mojibake containing ", which terminates a string and breaks the parse.
clear-addin-cache.ps1 shipped broken this way and no macOS check caught it.
Probe the arg parser. --flag as the final argument makes shift 2 fail
under set -e and exits 1 with no output; each flag needs a
[ $# -ge 2 ] guard.
Reference agents, skills, and data connectors for the financial-services workflows we see most — investment banking, equity research, private equity, and wealth management.
Everything here is available two ways from one source: install it as a Claude Cowork plugin, or deploy it through the Claude Managed Agents API behind your own workflow engine. Same system prompt, same skills — you choose where it runs.
[!IMPORTANT]
Nothing in this repository constitutes investment, legal, tax, or accounting advice. These agents draft analyst work product — models, memos, research notes, reconciliations — for review by a qualified professional. They do not make investment recommendations, execute transactions, bind risk, post to a ledger, or approve onboarding; every output is staged for human sign-off. You are responsible for verifying outputs and for compliance with the laws and regulations that apply to your firm.
What's in the repo:
Agents — named, end-to-end workflow agents (Pitch Agent, Market Researcher, GL Reconciler, …). Each ships as a Cowork plugin and as a Claude Managed Agent template you deploy via /v1/agents.
Vertical plugins — the underlying skills, slash commands, and data connectors, bundled by FSI vertical. Install these on their own if you just want /comps, /dcf, /earnings and the connectors without a full agent.
Agents
Each agent is named for the workflow it runs. They're starting points: install the ones that match your work, then tune the prompts, skills, and connectors to how your firm does it.
Each agent plugin is self-contained — it bundles the skills it uses, so installing the agent is all you need.
Parses onboarding docs, runs the rules engine, flags gaps
For Managed Agent deployment — agent.yaml, leaf-worker subagents, steering-event examples, and per-agent security notes — see managed-agent-cookbooks/.
Repository Layout
plugins/
agent-plugins/ # Named agents — one self-contained plugin each
vertical-plugins/ # Skill + command bundles by FSI vertical, plus MCP connectors
partner-built/ # Partner-authored plugins (LSEG, S&P Global)
managed-agent-cookbooks/ # Claude Managed Agent cookbooks — one dir per agent
claude-for-msft-365-install/ # Admin tooling to provision the Claude Microsoft 365 add-in
scripts/ # deploy-managed-agent.sh · check.py · validate.py · orchestrate.py · sync-agent-skills.py
Getting Started
Cowork
In Cowork, open Settings → Plugins → Add plugin and either:
Paste this repo URL — https://github.com/anthropics/financial-services — then pick the agents and verticals you want from the marketplace list, or
Upload a zip — zip any directory under plugins/ (e.g. plugins/agent-plugins/pitch-agent/) and drop it in.
Claude Code
# Add the marketplace
claude plugin marketplace add anthropics/financial-services
# Core skills + connectors (install first)
claude plugin install financial-analysis@claude-for-financial-services
# Named agents — pick the ones you want
claude plugin install pitch-agent@claude-for-financial-services
claude plugin install gl-reconciler@claude-for-financial-services
claude plugin install market-researcher@claude-for-financial-services
# Vertical skill bundles
claude plugin install investment-banking@claude-for-financial-services
claude plugin install equity-research@claude-for-financial-services
Once installed, agents appear in Cowork dispatch, skills fire automatically when relevant, and slash commands are available in your session (/comps, /dcf, /earnings, /ic-memo, …).
Each template under managed-agent-cookbooks/ references the same system prompt and skills as its plugin counterpart. The deploy script resolves file references, uploads skills, creates leaf-worker subagents, and POSTs the orchestrator to /v1/agents. See scripts/orchestrate.py for a reference event loop that routes handoff_request events between agents via your own orchestration layer.
Research Preview: subagent delegation (callable_agents) is a preview capability. See per-agent READMEs for security and handoff guidance.
How It Fits Together
What it is
Where it lives
Agents
Self-contained plugins that own a workflow end to end — system prompt plus the skills it uses. Cowork and the Managed Agent wrapper both reference the same directory.
plugins/agent-plugins/<slug>/
Skills
Domain expertise, conventions, and step-by-step methods Claude draws on automatically when relevant. Authored once in the verticals; each agent bundles a synced copy of the ones it needs.
Advisor workflows: meeting prep and follow-up, compliance pre-check, prospect intake, rebalance review, alts and estate briefs, on live data from the advisor's CRM, portfolio, planning, and estate platforms.
MCP access may require a subscription or API key from the provider.
Claude for Microsoft 365 — Install Tooling
If your firm runs Claude inside Excel, PowerPoint, Word, and Outlook via the Microsoft 365 add-in, claude-for-msft-365-install/ is the admin tooling to provision it against your own cloud — Vertex AI, Bedrock, or an internal LLM gateway — instead of Anthropic's API.
It's a Claude Code plugin (not a Cowork plugin) that walks an IT admin through generating the customized add-in manifest, granting Azure admin consent, and writing per-user routing config via Microsoft Graph. Install with:
claude plugin install claude-for-msft-365-install@claude-for-financial-services
/claude-for-msft-365-install:setup
This is separate from the agents and vertical plugins above — it's the on-ramp that gets the add-in deployed in a tenant, after which the agents and skills here are what runs inside it.
Making It Yours
These are reference templates — they get better when you tune them to how your firm works.
Swap connectors — point .mcp.json at your data providers and internal systems.
Add firm context — drop your terminology, processes, and formatting standards into skill files.
Bring your templates — /ppt-template teaches Claude your branded PowerPoint layouts.
Adjust agent scope — edit agents/<slug>.md to match how your team actually runs the workflow.
Add your own — copy the structure for workflows we haven't covered.
Prep for management presentations and expert calls
unit-economics
/unit-economics
ARR cohorts, LTV/CAC, net retention, revenue quality
returns-analysis
/returns
IRR/MOIC sensitivity tables
ic-memo
/ic-memo
Investment committee memo drafting
portfolio-monitoring
/portfolio
Track portfolio company KPIs and variances
value-creation-plan
/value-creation
Post-close 100-day plans and EBITDA bridges
ai-readiness
/ai-readiness
Assess a portfolio company's AI readiness
Contributing
Everything here is markdown and YAML. Fork, edit, PR. For new content:
New skill → add it under plugins/vertical-plugins/<vertical>/skills/, then run python3 scripts/sync-agent-skills.py to propagate to any agent that bundles it.
New agent → plugins/agent-plugins/<slug>/ (with agents/<slug>.md + skills/) and a matching managed-agent-cookbooks/<slug>/.
Run python3 scripts/check.py before pushing — it lints every manifest, verifies all cross-file references resolve, and fails if any bundled skill has drifted from its vertical source.