Python repository by @anthropics. AI agent rules & system prompts with 34k stars.
# Financial Services Plugins
Cowork plugins and Claude Managed Agent templates for financial services. Each named agent ships two ways from one source.
## Repository Structure
```
βββ plugins/
β βββ agent-plugins/ # named agents β one self-contained plugin each
β β βββ <slug>/
β β βββ .claude-plugin/plugin.json
β β βββ agents/<slug>.md # β canonical system prompt (one source, two wrappers)
β β βββ skills/ # β bundled copies, synced from vertical-plugins/
β βββ vertical-plugins/ # FSI verticals β skill sources, commands, MCPs
β β βββ <vertical>/
β β βββ .claude-plugin/plugin.json
β β βββ commands/
β β βββ skills/
β β βββ .mcp.json
β βββ partner-built/ # partner plugins (LSEG, S&P Global)
βββ managed-agent-cookbooks/ # CMA cookbooks (one dir per named agent)
β βββ <slug>/
β βββ agent.yaml # system + skills β ../../plugins/agent-plugins/<slug>/...
β βββ subagents/*.yaml # depth-1 leaf workers
β βββ steering-examples.json
β βββ README.md # security tier + handoff notes
βββ claude-for-msft-365-install/ # admin tooling for the Microsoft 365 add-in (separate from FSI plugins)
βββ scripts/ # deploy-managed-agent.sh, check.py, validate.py, orchestrate.py, sync-agent-skills.py
```
Run `python3 scripts/check.py` before committing β it lints every manifest, verifies all `system.file` / `skills.path` / `callable_agents.manifest` references resolve, fails if any `agent-plugins/<slug>/skills/` copy has drifted from its `vertical-plugins/` source, and rejects non-ASCII bytes in a `.ps1` without a UTF-8 BOM.
**Keep `.ps1` files pure ASCII.** Windows PowerShell 5.1 β still the default shell on managed Windows β decodes a BOM-less `.ps1` using the machine's ANSI code page, not UTF-8. An em dash or curly quote becomes mojibake that can contain a literal `"`, which terminates a string and makes the whole script fail to *parse*. Write `--`, not `β`. This is invisible on macOS and fatal on Windows; `check.py` gates it. **Edit skills in `vertical-plugins/`**, then run `python3 scripts/sync-agent-skills.py` to propagate into the agent bundles.
`check.py` also self-installs a `pre-commit` hook (`git config core.hooksPath .githooks` β no Husky/Node). The hook patch-bumps any plugin's `.claude-plugin/plugin.json` `version` so a branch ends up exactly one patch ahead of `main` (bumped once, not per commit β a plugin's `version` gates update delivery to already-installed users). The `version-bump` GitHub Action enforces the same rule on PRs as a backstop. Bypass a single commit with `git commit --no-verify`; bump logic lives in `scripts/version_bump.py`.
## Key Files
- `marketplace.json`: Marketplace manifest - registers all plugins with source paths
- `plugin.json`: Plugin metadata - name, description, version, and component discovery settings
- `commands/*.md`: Slash commands invoked as `/plugin:command-name`
- `skills/*/SKILL.md`: Detailed knowledge and workflows for specific tasks
- `*.local.md`: User-specific configuration (gitignored)
- `mcp-categories.json`: Canonical MCP category definitions shared across plugins
## Development Workflow
1. Edit markdown files directly - changes take effect immediately
2. Test commands with `/plugin:command-name` syntax
3. Skills are invoked automatically when their trigger conditions match