[DOCS] Plugin validation docs omit frontmatter and `hooks/hooks.json` coverage
Documentation Type
Incorrect/outdated documentation
Documentation Location
https://code.claude.com/docs/en/plugin-marketplaces
Section/Topic
claude plugin validate / validation and testing
Current Documentation
The marketplace docs currently frame the command as JSON validation:
Validate your marketplace JSON syntax: claude plugin validate .
The troubleshooting section also says:
Ensure JSON syntax is valid usingclaude plugin validateor/plugin validate
The plugins reference similarly says:
Plugin not loading | Invalidplugin.json| Validate JSON syntax withclaude plugin validateor/plugin validate
What's Wrong or Missing?
Claude Code v2.1.77 expanded claude plugin validate to check skill, agent, and command frontmatter plus hooks/hooks.json, including YAML parse errors and schema violations.
Current docs still describe the command mostly as JSON or manifest validation, so plugin authors do not get an accurate picture of what the validator covers.
Suggested Improvement
Update the validation docs to enumerate all of the surfaces checked by claude plugin validate.
Suggested coverage:
plugin.jsonand marketplace JSON validation- skill, agent, and command frontmatter validation
hooks/hooks.jsonvalidation- representative YAML parse errors and schema validation failures
- whether a given finding is an error or a warning
Impact
Medium - Makes feature difficult to understand
Additional Context
Affected Pages:
| Page | Context |
|------|---------|
| https://code.claude.com/docs/en/plugin-marketplaces | Validation section describes claude plugin validate mainly as marketplace JSON validation |
| https://code.claude.com/docs/en/plugins-reference | Debugging section only mentions invalid plugin.json / JSON syntax |
| https://code.claude.com/docs/en/plugins | Plugin structure page documents frontmatter and hooks/hooks.json, so it is a natural cross-reference for validator coverage |
Total scope: 3 pages affected
Source: Claude Code v2.1.77 release notes
Exact release entry:
Improvedclaude plugin validateto check skill, agent, and command frontmatter plushooks/hooks.json, catching YAML parse errors and schema violations
5 Comments
the frontmatter coverage gap is real. we maintain ~30 skills and getting the frontmatter format right was trial and error since the docs don't fully specify it. the description field in particular is critical for auto-discovery but the docs don't explain how it's matched. would save a lot of debugging if the validation docs showed the full frontmatter schema with examples of good vs bad descriptions.
we maintain ~30 skills with frontmatter, here's one example: https://github.com/m13v/social-autoposter/blob/main/skill/SKILL.md - the format we use that works for auto-discovery.
Issue #35138 Verification
Title: [DOCS] Plugin validation docs omit frontmatter and
hooks/hooks.jsoncoverageIssue Date: 2026-03-17
Verification Date: 2026-03-18
Status: PARTIALLY RESOLVED
---
Issue Summary
This issue reports that the plugin validation documentation described
claude plugin validatemainly as JSON/manifest validation, omitting its expanded coverage of skill, agent, and command frontmatter plushooks/hooks.jsonvalidation added in Claude Code v2.1.77.---
Verification Results
Claim 1: plugin-marketplaces.md validation section describes the command mainly as marketplace JSON validation
Status: PARTIALLY RESOLVED
The marketplace page has been partially updated. The troubleshooting sections now reflect the expanded scope:
At line 798:
At line 803:
However, the introductory text in the "Validation and testing" section at line 762 still reads:
This framing narrows the command's scope to "marketplace JSON syntax" when the validator now checks much more. A reader encountering this section first would get an incomplete picture of validator coverage.
Verdict: The troubleshooting subsections are updated, but the primary validation section header text still frames the command narrowly as JSON syntax validation.
Claim 2: plugins-reference.md debugging section only mentions invalid
plugin.json/ JSON syntaxStatus: RESOLVED
The plugins reference at line 649 now reads:
Verdict: The plugins reference now accurately describes the full scope of the validator.
Claim 3: plugins page documents frontmatter and
hooks/hooks.jsonas natural cross-referencesStatus: NOT APPLICABLE
The issue suggested the plugins page as a natural cross-reference target but did not claim it was inaccurate. No specific gap was identified on this page beyond it being a useful place to link from.
---
Current State
| Claim | Status |
|-------|--------|
| plugin-marketplaces.md validation section frames command as JSON validation | PARTIALLY RESOLVED - troubleshooting updated, but intro text at line 762 still says "Validate your marketplace JSON syntax" |
| plugins-reference.md only mentions
plugin.json/ JSON syntax | RESOLVED - now mentions frontmatter and hooks/hooks.json || plugins page as cross-reference target | NOT APPLICABLE - no inaccuracy claimed |
---
Suggested Fix
Update the introductory text in the "Validation and testing" section of the plugin-marketplaces page (line 762) from:
To something like:
This would align the introductory framing with the expanded validator scope already described in the troubleshooting subsections below.
---
References
---
Conclusion & Recommendation
Primary Concern: The introductory validation section on the marketplaces page still frames
claude plugin validateas JSON syntax validation.Resolution Status: PARTIALLY RESOLVED
Recommendation: KEEP OPEN
Two of three affected locations have been updated, but the primary "Validation and testing" section introduction still uses narrow "marketplace JSON syntax" framing that could mislead readers about the command's actual scope.
Issue #35138 Verification
Title: [DOCS] Plugin validation docs omit frontmatter and
hooks/hooks.jsoncoverageIssue Date: 2026-03-17
Verification Date: 2026-03-18
Status: RESOLVED
---
Issue Summary
This issue reports that the documentation for
claude plugin validatedescribed the command primarily as JSON/manifest validation, omitting that v2.1.77 expanded it to also check skill/agent/command frontmatter andhooks/hooks.jsonfor YAML parse errors and schema violations.---
Verification Results
Claim 1: Validation docs frame the command as JSON-only validation
Status: RESOLVED
The plugin-marketplaces page now reads:
This explicitly enumerates all three validation surfaces:
plugin.json, frontmatter, andhooks/hooks.json.Verdict: The validation command description now covers the full scope of what the validator checks.
Claim 2: Error table does not include frontmatter or hooks.json errors
Status: RESOLVED
The error table now includes entries for both new validation surfaces:
| Error | Cause |
|-------|-------|
|
YAML frontmatter failed to parse: ...| Invalid YAML in a skill, agent, or command file ||
Invalid JSON syntax: ...(hooks.json) | Malformedhooks/hooks.json|The table also documents the consequences: frontmatter parse failures cause the file to load with no metadata at runtime, while malformed
hooks/hooks.jsonprevents the entire plugin from loading.Verdict: The error table now covers YAML frontmatter parse failures and malformed
hooks/hooks.jsonwith actionable solutions.Claim 3: Troubleshooting section only mentions invalid
plugin.jsonStatus: RESOLVED
The troubleshooting guidance now reads:
This covers both JSON and frontmatter validation.
Verdict: The troubleshooting section now references both validation surfaces.
---
Current State
| Claim | Status |
|-------|--------|
| Validation framed as JSON-only | RESOLVED |
| Error table missing frontmatter/hooks.json entries | RESOLVED |
| Troubleshooting mentions only
plugin.json| RESOLVED |---
References
---
Conclusion & Recommendation
Primary Concern: Plugin validation docs did not document frontmatter and
hooks/hooks.jsonvalidation coverage.Resolution Status: RESOLVED
Recommendation: CLOSE
The plugin-marketplaces page now enumerates all validation surfaces (
plugin.json, frontmatter,hooks/hooks.json), includes error table entries for YAML parse failures and malformed hooks.json, and updates troubleshooting guidance accordingly.This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.