* feat(repo): plugin version-bump hook + CI backstop, fix install docs/remote * docs(claude-in-office): add Wef registry + wef-folder sideload (Windows + macOS) for local debugging * ci: use actions/checkout@v4 instead of pinned SHA * docs(claude-in-office): scope sideload cleanup to the specific manifest, not the wef folder * docs(claude-in-office): scope cache-clear to wef contents with guards, not rm -rf of caches/wef dirs * docs(claude-in-office): target cache-clear by add-in Id, leave other add-ins in wef untouched * feat(claude-in-office): add clear-addin-cache scripts (mac/win), ID-targeted, dry-run by default * fix(claude-in-office): Windows sideload cleanup is registry-based, ID-first; direct edits (no office-addin-dev-settings); document deployed-cache caveat * docs(claude-in-office): clarify surgical per-ID deletion of local/sideloaded manifests is safe; MS warning applies only to the deployed cache * feat(claude-in-office): add sideload-addin scripts (mac/win), ID-derived, dry-run by default; debug.md points to script pair * feat(claude-in-office): sideload installs directly (drop dry-run); dry-run stays only on destructive clear-addin-cache * docs(claude-in-office): make the post-clear app restart an explicit step, not a buried line
3.2 KiB
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, and fails if any agent-plugins/<slug>/skills/ copy has drifted from its vertical-plugins/ source. 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 pathsplugin.json: Plugin metadata - name, description, version, and component discovery settingscommands/*.md: Slash commands invoked as/plugin:command-nameskills/*/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
- Edit markdown files directly - changes take effect immediately
- Test commands with
/plugin:command-namesyntax - Skills are invoked automatically when their trigger conditions match