The marketplace loader rejected 9 of 20 plugins on sync:
- 29 vertical-plugin SKILL.md sources had no YAML frontmatter — the
skill name/description sat in the body as a bare `description:` line
after the `# Title` H1. Synthesized proper `--- name/description ---`
frontmatter (name = skill dir, description = the existing body text),
matching the loading skills (e.g. fund-admin/accrual-schedule). Agent
bundles re-synced via scripts/sync-agent-skills.py (12 copies).
- 4 hooks/hooks.json were `[]`; the loader requires a JSON object.
Changed to `{ "hooks": {} }` — the form investment-banking already
uses and that synced clean.
- partner-built/spglobal defined the `spglobal` MCP server both inline
in plugin.json and in .mcp.json (identical). Dropped the inline copy;
.mcp.json is the canonical location.
scripts/check.py: OK — 80 files, 0 issues.
Co-authored-by: Jake Marsh <jakemarsh@anthropic.com>
- Move verticals from repo root into plugins/vertical-plugins/ and partner
plugins into plugins/partner-built/
- Add 10 named, self-contained agent plugins under plugins/agent-plugins/
(Pitch Agent, Market Researcher, Earnings Reviewer, Model Builder,
Meeting Prep, GL Reconciler, Month-End Closer, Statement Auditor,
Valuation Reviewer, KYC Screener) — each bundles its own skills so it
installs standalone
- Add managed-agent-cookbooks/ (one per agent) with subagent isolation
and steering examples for /v1/agents deployment
- Add fund-admin and operations verticals so the finance-ops/onboarding
agents ship real domain skills
- Add scripts/ (check.py manifest lint, sync-agent-skills.py,
deploy-managed-agent.sh, orchestrate.py reference loop,
test-cookbooks.sh)
- Add .github/workflows/secret-scan.yml (gitleaks + internal-ref grep)
- Tighten agent tool grants to declared MCPs only — no Bash, WebFetch,
or undeclared mcp__* references in any agent
- Add not-investment-advice disclaimer to README
- Rename claude-in-office to claude-for-msft-365-install (content
unchanged)