Skip to content

All vertical plugins fail to load in Claude Code: hooks.json schema mismatch #175

@dzuluaga

Description

@dzuluaga

Summary

Installing any vertical plugin from this marketplace into Claude Code (e.g. equity-research) succeeds but the plugin then fails to load with a schema validation error on hooks/hooks.json.

Reproduction

claude plugin marketplace add https://github.com/anthropics/financial-services
claude plugin install equity-research@claude-for-financial-services
claude plugin list

Result:

❯ equity-research@claude-for-financial-services
  Version: 0.1.0
  Scope: user
  Status: ✘ failed to load
  Error: Hook load failed: [
    {
      "expected": "object",
      "code": "invalid_type",
      "path": [],
      "message": "Invalid input: expected object, received array"
    }
  ]

After patching hooks.json to {}, a second error appears:

Error: Hook load failed: [
  {
    "expected": "record",
    "code": "invalid_type",
    "path": ["hooks"],
    "message": "Invalid input: expected record, received undefined"
  }
]

Root cause

plugins/vertical-plugins/*/hooks/hooks.json ships as [] (empty array) in every vertical plugin. Claude Code's hook schema requires an object with a hooks key:

{
  "hooks": {
    "SessionStart": [ ... ]
  }
}

The minimal valid form for a plugin with no hooks is {"hooks": {}}, not [] or {}.

Affected plugins

Confirmed in all 5 vertical plugins:

  • plugins/vertical-plugins/equity-research/hooks/hooks.json
  • plugins/vertical-plugins/financial-analysis/hooks/hooks.json
  • plugins/vertical-plugins/wealth-management/hooks/hooks.json
  • plugins/vertical-plugins/private-equity/hooks/hooks.json
  • plugins/vertical-plugins/investment-banking/hooks/hooks.json

Each file currently contains [].

Suggested fix

Replace [] with {"hooks": {}} in all 5 files. After this change, plugins load successfully and skills/commands become available.

Workaround for users

for f in $(find ~/.claude/plugins -path '*/claude-for-financial-services/*' -name 'hooks.json'); do
  echo '{"hooks": {}}' > "$f"
done
claude plugin list

Environment

  • Claude Code (latest as of 2026-05-11)
  • macOS Darwin 25.3.0
  • Plugin marketplace version: 0.1.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions