Skip to content

fix(plugins): repair broken hooks.json + add plugin-validate CI#232

Merged
mihilmy merged 1 commit into
mainfrom
fix/hooks-json-plugin-validate
May 18, 2026
Merged

fix(plugins): repair broken hooks.json + add plugin-validate CI#232
mihilmy merged 1 commit into
mainfrom
fix/hooks-json-plugin-validate

Conversation

@mihilmy
Copy link
Copy Markdown
Collaborator

@mihilmy mihilmy commented May 18, 2026

Problem

Four vertical plugins shipped hooks/hooks.json as a bare [], which fails Claude Code's plugin loader:

Status: ✘ failed to load
Error: Hook load failed: expected object, received array

This broke private-equity, financial-analysis, equity-research, and wealth-management (and generated a large number of duplicate community PRs all reporting the same thing). investment-banking was already correct.

Fix

  • Replace [] with the minimal valid {"hooks": {}} in all four affected plugins.
  • Add a plugin-validate GitHub Actions workflow that runs the official claude plugin validate over the marketplace manifest and every plugin on each PR/push. A malformed manifest now fails CI instead of reaching users — closing the root cause behind the duplicate-PR flood.

CI workflow notes

  • Installs the Claude Code CLI from the official binary channel (claude.ai/install.sh, checksum-verified by the installer), pinned to a fixed version for reproducible builds.
  • The binary is cached keyed on the pinned version, so a warm cache skips the download entirely (validation of all 19 plugins + marketplace is ~3.4s).
  • Validates everything every run (simple, and catches breakage from shared changes like marketplace.json or synced skills).

Supersedes the many single-file community PRs reporting this issue (e.g. #230) — this repairs all four broken plugins and prevents recurrence.

…idate CI

The empty-array hooks.json in private-equity, financial-analysis,
equity-research and wealth-management caused those plugins to fail to
load ("Hook load failed: expected object, received array"). Replace [] with
the minimal valid {"hooks": {}} object in all four.

Add a plugin-validate workflow that runs the official `claude plugin
validate` over the marketplace manifest and every plugin on each PR and
push, so a malformed manifest fails CI instead of reaching users. The
CLI is installed from the official binary channel and cached, keyed on a
pinned version, so a warm cache skips the download entirely.
@mihilmy mihilmy enabled auto-merge (squash) May 18, 2026 19:11
@mihilmy mihilmy disabled auto-merge May 18, 2026 19:12
@mihilmy mihilmy merged commit 9affc6e into main May 18, 2026
3 checks passed
This was referenced May 18, 2026
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.

2 participants