Skip to content

Fix PE SKILL.md missing YAML frontmatter + hooks.json schema in all vertical plugins#221

Open
avireddy0 wants to merge 2 commits into
anthropics:mainfrom
avireddy0:fix/pe-skill-frontmatter-and-hooks-schema
Open

Fix PE SKILL.md missing YAML frontmatter + hooks.json schema in all vertical plugins#221
avireddy0 wants to merge 2 commits into
anthropics:mainfrom
avireddy0:fix/pe-skill-frontmatter-and-hooks-schema

Conversation

@avireddy0
Copy link
Copy Markdown

Closes #220.

Two bugs

1. PE SKILL.md missing YAML frontmatter (10 files)

All 10 plugins/vertical-plugins/private-equity/skills/*/SKILL.md files had description: written as a body line instead of inside ---\n...\n--- frontmatter. Claude Code's catalog reads them as descriptionless and `/doctor` reports them as dropped descriptions. The other vertical plugins (financial-analysis, equity-research, etc.) ship correctly — this was a PE-specific packaging oversight.

Before:
```markdown

Due Diligence Checklist

description: Generate and track comprehensive due diligence checklists...

Workflow

...
```

After:
```markdown

name: dd-checklist
description: Generate and track comprehensive due diligence checklists...

Due Diligence Checklist

Workflow

...
```

Affected files (10):

  • ai-readiness, dd-checklist, dd-meeting-prep, deal-screening, deal-sourcing
  • ic-memo, portfolio-monitoring, returns-analysis, unit-economics, value-creation-plan

2. hooks.json schema mismatch (4 of 5 vertical plugins)

Four plugins ship `hooks/hooks.json` containing just `[]` (empty array). Claude Code's hook loader expects `{"hooks": {: [...]}}` — a record with a `hooks` key. It errors with `expected: record, code: invalid_type` and refuses to load the plugin's hooks:

```
financial-analysis@claude-for-financial-services [financial-analysis]:
Hook load failed: [{"expected": "record", "code": "invalid_type", "path": [...
```

`investment-banking/hooks/hooks.json` was already correct (`{"hooks": {}}`) — using that as the reference shape since it matches what `product-tracking-skills` and other working plugins ship.

Patched:

  • private-equity/hooks/hooks.json
  • financial-analysis/hooks/hooks.json
  • equity-research/hooks/hooks.json
  • wealth-management/hooks/hooks.json

Verification

```bash

every SKILL.md has frontmatter

for f in plugins/vertical-plugins/private-equity/skills/*/SKILL.md; do
head -1 "$f" | grep -q '^---$' || echo "MISSING: $f"
done

every hooks.json has the right shape

for f in plugins/vertical-plugins/*/hooks/hooks.json; do
python3 -c "import json,sys; d=json.load(open('$f')); assert 'hooks' in d, '$f'" || echo "BAD: $f"
done
```

Discovered

During a downstream Claude Code config-repo cleanup pass on 2026-05-17.

avireddy0 added 2 commits May 16, 2026 22:58
**Bug 1: PE SKILL.md missing YAML frontmatter** (10 files)

Each `private-equity/skills/*/SKILL.md` had `description:` as a body line
instead of inside `---\n...\n---` frontmatter. Claude Code's catalog
reads them as descriptionless, and `/doctor` reports them as dropped
descriptions. Other vertical plugins (financial-analysis, equity-research,
investment-banking) ship with correct frontmatter — this was a packaging
oversight in the PE plugin specifically.

Fix: extract the body `description:` text into proper frontmatter at the
top of each file. Name field derives from the directory slug.

**Bug 2: hooks.json schema mismatch** (2 files)

Both `private-equity/hooks/hooks.json` and `financial-analysis/hooks/hooks.json`
contain just `{}`. Claude Code's hook loader expects `{"hooks": {...}}`
(a record with a `hooks` key) and rejects bare `{}`:

    financial-analysis@claude-for-financial-services [financial-analysis]:
      Hook load failed: [{"expected": "record", "code": "invalid_type", ...}]

Reference: plugins that don't actually register hooks (e.g., `product-tracking-skills`)
ship `{"hooks": {}}` — that's the minimal valid form.

Fixes anthropics#220.
Initial commit only updated the 2 plugins that were currently surfacing
the error. But all 5 vertical plugins ship hooks.json with the same
broken shape — upstream has `[]` (empty array), Claude Code's loader
expects `{"hooks": {...}}` (record with `hooks` key). Will surface
the same error if those plugins ever get enabled by a user.

Patched:
- equity-research/hooks/hooks.json
- investment-banking/hooks/hooks.json
- wealth-management/hooks/hooks.json

Same `{"hooks": {}}` minimal-valid shape as `product-tracking-skills` ships.
avireddy0 added a commit to Envision-Construction/financial-services that referenced this pull request May 17, 2026
…ction fork main

Brings in:
- PE SKILL.md YAML frontmatter (10 files)
- hooks.json schema fix across 4 vertical plugins

Equivalent of anthropics#221 — applying directly here
so Envision-Construction's marketplace consumers don't wait on the upstream
review cycle. Will also leave PR anthropics#221 open upstream as a courtesy
contribution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

private-equity skills: 10 SKILL.md files missing YAML frontmatter (description in body)

1 participant