Bug Description
Plugin installation fails with manifest validation error on Claude Code 2.1.x.
Error
Error: Failed to install: Plugin has an invalid manifest file at ...\.claude-plugin\plugin.json.
Validation errors: userConfig.hookProfile.title: Invalid input: expected string, received undefined, userConfig.hookProfile: Unrecognized key: "enum"
Steps to Reproduce
- Claude Code version: 2.1.104 (latest)
- Run
/plugin marketplace add xiaobei930/cc-best
- Try to install cc-best plugin
- Error appears before installation completes
Root Cause
In .claude-plugin/plugin.json, the userConfig.hookProfile field uses schema fields not supported by Claude Code 2.1.x validator:
"hookProfile": {
"type": "string",
"enum": ["minimal", "standard", "full"],
"default": "full",
"description": "..."
}
Claude Code 2.1.x only accepts title as a string for userConfig fields. The enum and description keys cause validation to fail.
Expected Fix
"hookProfile": {
"title": "Hook execution tier: minimal (safety only), standard (safety + quality), full (all hooks)",
"type": "string",
"default": "full"
}
Or remove userConfig.hookProfile entirely (the hook tier can be set via settings.local.json).
Environment
- OS: Windows 11
- Claude Code: 2.1.104
- cc-best: v0.10.0
- Node.js: 22.x
Additional Context
The v0.10.0 release notes say "compatible with Claude Code v2.1.97" but the plugin.json was not updated to match the actual validator schema.
Bug Description
Plugin installation fails with manifest validation error on Claude Code 2.1.x.
Error
Steps to Reproduce
/plugin marketplace add xiaobei930/cc-bestRoot Cause
In
.claude-plugin/plugin.json, theuserConfig.hookProfilefield uses schema fields not supported by Claude Code 2.1.x validator:Claude Code 2.1.x only accepts
titleas a string foruserConfigfields. Theenumanddescriptionkeys cause validation to fail.Expected Fix
Or remove
userConfig.hookProfileentirely (the hook tier can be set viasettings.local.json).Environment
Additional Context
The v0.10.0 release notes say "compatible with Claude Code v2.1.97" but the plugin.json was not updated to match the actual validator schema.