Skip to content

fix: use array format for plugin manifest fields#92

Merged
affaan-m merged 1 commit intoaffaan-m:mainfrom
jhsong-musinsa:fix/plugin-manifest-validation
Jan 27, 2026
Merged

fix: use array format for plugin manifest fields#92
affaan-m merged 1 commit intoaffaan-m:mainfrom
jhsong-musinsa:fix/plugin-manifest-validation

Conversation

@jhsong-musinsa
Copy link
Contributor

@jhsong-musinsa jhsong-musinsa commented Jan 27, 2026

Summary

  • Fix plugin installation validation error: agents: Invalid input
  • Change agents, commands, skills fields from string to array format in plugin.json

Problem

Plugin installation fails with the following error:

Error: Failed to install: Plugin has an invalid manifest file at
/Users/gaemi/.claude/plugins/cache/temp_local_1769486831744_00ksfi/.claude-plugin/plugin.json.
Validation errors: agents: Invalid input

Solution

The plugin manifest validator requires array format for component path fields. Changed:

  • "agents": "./agents"["./agents/"]
  • "commands": "./commands"["./commands/"]
  • "skills": "./skills"["./skills/"]

This matches the format used by other working plugins (e.g., feedbackloopai-llc/optivai-claude-plugin, Parslee-ai/neo).

Test plan

  • Verify plugin installs successfully with /plugin install
  • Verify agents, commands, and skills load correctly after installation

Fixes #90

🤖 Generated with Claude Code

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 27, 2026

📝 Walkthrough

Walkthrough

Converted commands, skills, and agents in .claude-plugin/plugin.json from string values to arrays of strings and added a top-level version property; hooks left unchanged.

Changes

Cohort / File(s) Summary
Plugin manifest
/.claude-plugin/plugin.json
Added "version": "1.0.0"; changed commands and skills from a string to arrays ("./commands"["./commands/"], "./skills"["./skills/"]); changed agents from a string to an array of multiple agent file paths (listed as ./agents/*.md); hooks unchanged.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

🐰 Paths once single, now in a row,
Arrays lined up in tidy show.
Version stamped and fields repaired,
A hop, a tweak, the manifest cared.
🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: converting plugin manifest fields from string to array format to fix validation errors.
Linked Issues check ✅ Passed All coding requirements from issue #90 are met: agents field converted to array format, manifest validation error resolved, and plugin installation fix implemented.
Out of Scope Changes check ✅ Passed All changes are directly related to fixing the manifest validation issue in issue #90; no out-of-scope modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Fixes plugin installation validation error: "agents: Invalid input"

The plugin manifest validator requires explicit file paths for agents,
not directory paths. Changed format:
- "agents": "./agents" → explicit file path array
- Added version field (required by validator)
- Changed commands/skills to array format for consistency

This matches the format used by other working plugins (e.g.,
Parslee-ai/neo uses explicit file paths for agents).

Validated with: claude plugin validate .claude-plugin/plugin.json

Fixes affaan-m#90

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@jhsong-musinsa jhsong-musinsa force-pushed the fix/plugin-manifest-validation branch from 31d4797 to cdf987d Compare January 27, 2026 05:48
@jhsong-musinsa
Copy link
Contributor Author

Test Results ✅

  • Plugin validation: passed
  • Plugin installation (project scope): passed
  • Loaded components: 12 agents, 18 commands, 16 skills

@keisukekomeda

This comment has been minimized.

@jhsong-musinsa
Copy link
Contributor Author

jhsong-musinsa commented Jan 27, 2026

@keisukekomeda
Thanks for catching this! You are absolutely right - the hooks/hooks.json file is automatically loaded by convention, so explicitly declaring it in the manifest causes duplicate loading errors.

I have removed the hooks field from plugin.json as you suggested. This aligns with the repository's previous fix in commit a7bc5f2 that addressed the same issue.

Appreciate the detailed explanation!

@affaan-m affaan-m merged commit 2563d1e into affaan-m:main Jan 27, 2026
2 checks passed
moyueheng added a commit to moyueheng/everything-claude-code that referenced this pull request Jan 29, 2026
675db95 feat: unify commands and skills (v1.2.0)
ca584e2 fix: escape pipe in markdown table for markdownlint
a44a055 fix: resolve ESLint errors and update tests for project-name fallback
c9ef02b docs: add requirements section and hooks field warning
0c53ad8 Revert "docs: update shorthand to shortform terminology"
c3430bd docs: add Traditional Chinese translation
fbe2e56 docs: add simplified Chinese README
7c0bc25 feat: add comprehensive CI/CD pipeline
58a97c8 docs: update shorthand to shortform terminology
04ee208 docs: add plugin manifest validation notes
e3a1306 fix: remove duplicate hooks declaration from plugin.json
81003b1 feat: use project name as session filename fallback
8996303 fix: prevent command injection in Prettier hook (affaan-m#102)
8894e1b docs: update README with skill-create and instinct commands
9bc587a feat: add skill-create and continuous-learning-v2 commands
0ced59a Merge pull request affaan-m#91 from Hor1zonZzz/fix/readme-rules-limitation
2563d1e Merge pull request affaan-m#92 from jhsong-musinsa/fix/plugin-manifest-validation
5dc1edb Merge pull request affaan-m#93 from pangerlkr/patch-3
2aac2d9 Create PLUGIN_SCHEMA_NOTES.md
cdf987d fix: use explicit file paths for agents in plugin.json
384b255 docs: add note about rules limitation in plugin installation
accbb47 feat: add proper header banner to shortform guide
ff67b03 feat: add images and rename guides to the-shortform-guide.md and the-longform-guide.md
7fc5ef1 Merge pull request affaan-m#83 from msyahidin/claude/add-golang-support-frw0Z
779085e fix: add missing agents and hooks declarations to plugin.json
5e1835a Merge pull request affaan-m#81 from pangerlkr/patch-2
2abefe6 Merge pull request affaan-m#79 from pangerlkr/patch-1
4bca615 Merge pull request affaan-m#80 from lichengzhe/fix/stop-hook-shell-error
a1f47f1 Merge pull request affaan-m#85 from roeiba/add-license-file
01ad21b docs: add missing MIT LICENSE file
c6c32cd fix: add language labels to fenced code blocks for MD040 compliance
75e1e46 feat: add comprehensive Golang language support
2feac5a docs: add The Longform Guide to Everything Claude Code
a0b84f7 Fix: Move Stop hook inline code to separate script file
1564213 docs: add The Shorthand Guide to Everything Claude Code
56ff5d4 fix: use correct unscoped agent-browser package name (affaan-m#77)
5c63fa9 feat: v1.1.0 release - session ID tracking, async hooks, new skills
5670fcd Fix plugin manifest validation errors (affaan-m#75)
1c9fa0b Add hooks.md to documentation index (affaan-m#40)
2bfd2fb feat: add cloud infrastructure security skill (affaan-m#44)
fae9716 feat(agents): add database-reviewer agent with Supabase patterns (affaan-m#48)
a2087a8 fix: remove unnecessary .sh hooks (affaan-m#41)
b9b7831 fix: multiple community-reported issues
660e0d3 fix: security and documentation fixes
a7bc5f2 revert: remove hooks declaration - auto-loaded by convention
22ad036 fix: add hooks declaration to plugin.json for proper hook loading
5230892 fix: remove version fields from marketplace.json
970f8bf feat: cross-platform support with Node.js scripts
4ec7a6b fix: remove version field to enable automatic plugin updates
0d438dd style: side-by-side guide layout matching profile README
7f4f622 feat: add star history chart and minimal badge bar
c3f1594 fix: move session-end hooks from Stop to SessionEnd
19345df fix: remove duplicate hooks field from plugin.json
73bda1a fix: use ${CLAUDE_PLUGIN_ROOT} for hook script paths
ecfbbd3 fix: use relative path './' for plugin source instead of GitHub object
ee5affb fix: remove agents field temporarily to debug validation
d362ae6 fix: use string format for repository field in plugin.json
9e8006c fix: use GitHub source object in marketplace.json
5010f82 feat: package as Claude Code plugin with marketplace distribution
4491f15 Clarify README description of the repository
e6440d3 docs: restructure README to flow shorthand → longform guides together
fa0928a Enhance README with update section and resources
2d6fd70 feat: add strategic-compact hook and update hooks.json with all hooks
f96ef1e feat: add memory persistence hooks and context files
7d3ea0f feat: add strategic compact skill
6bf102d feat: add continuous learning skill with session examples
3c1e7d9 Clarify repository purpose and additional resources
62a80df Update README with image and guide link
6eefb41 Update README with guide reading reminder
d7cf890 Fix formatting in README.md for guide link
e57979c Update README with image and guide link
45959c3 Initial release: Complete Claude Code configuration collection
REVERT: 69c0b1a Add link to Agent Skills specification website (affaan-m#160)
REVERT: be229a5 Fix links in agent skills specification (affaan-m#159)
REVERT: f232228 Split agent-skills-spec into separate authoring and client integration guides (affaan-m#148)
REVERT: 0075614 Add doc-coauthoring skill and update example skills (affaan-m#134)
REVERT: ef74077 Move example skills into dedicated folder and create minimal top-level folder structure (affaan-m#129)
REVERT: 0f77e50 Update example skills and rename 'artifacts-builder' (affaan-m#112)
REVERT: e5c6015 Add 'frontend-design' example skill (affaan-m#98)
REVERT: c74d647 Clarify Claude Code installation in README.md (#20)
REVERT: 0877bae Updates to README.md (affaan-m#9)
REVERT: b118d29 Add Claude Claude instructions to the readme (#8)
REVERT: 4d1e3f3 Add Claude Code Marketplace (affaan-m#5)
REVERT: 9b61003 Small tweak to blog link (#7)
REVERT: 10e0fbe Add initial Agent Skills Spec (#2)
REVERT: ec84104 Add 3rd Party notices (affaan-m#4)
REVERT: 67ada86 Adding more details to README (affaan-m#3)
REVERT: 83291af Reorganize the example skills (affaan-m#1)
REVERT: 37292f3 init repo

git-subtree-dir: upstream/anthropics-skills
git-subtree-split: 675db95
charlesbmi pushed a commit to charlesbmi/everything-claude-code that referenced this pull request Jan 29, 2026
…t-validation

fix: use array format for plugin manifest fields
524y added a commit to 524y/everything-claude-code-japanese that referenced this pull request Feb 2, 2026
…t-validation / PR affaan-m#92(jhsong-musinsa/fix/plugin-manifest-validation)をマージ
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.

Plugin installation fails: Invalid manifest file - agents field validation error

3 participants

Comments