[DOCS] Plugin docs omit root-level `SKILL.md` discovery without a `skills/` subdirectory
Documentation Type
Missing documentation (feature not documented)
Documentation Location
https://code.claude.com/docs/en/plugins-reference
Section/Topic
Skills, Component path fields, and plugin skill file-location rules
Current Documentation
The docs currently describe plugin skills only as skills/ subdirectories by default:
Plugins add skills to Claude Code, creating/nameshortcuts that you or Claude can invoke. Location:skills/orcommands/directory in plugin root File format: Skills are directories withSKILL.md; commands are simple markdown files
The introductory plugin guide says the same thing:
Skills live in theskills/directory. Each skill is a folder containing aSKILL.mdfile. The folder name becomes the skill name, prefixed with the plugin's namespace (hello/in a plugin namedmy-first-plugincreates/my-first-plugin:hello).
The only documented root-level SKILL.md case is an explicit manifest override:
When a skill path points to a directory that contains aSKILL.mddirectly, for example"skills": ["./"]pointing to the plugin root, the frontmatternamefield inSKILL.mddetermines the skill's invocation name. This gives a stable name regardless of the install directory. Ifnameis not set in the frontmatter, the directory basename is used as a fallback.
What's Wrong or Missing?
Claude Code v2.1.142 added another plugin-skill discovery path: plugins with a root-level SKILL.md and no skills/ subdirectory are now surfaced as a skill.
That behavior is not documented in the default plugin layout or skill-location guidance.
As written now, the docs imply that plugin authors must either:
- create
skills/<name>/SKILL.md, or - add an explicit manifest
"skills": ["./"]override.
They do not explain that a plugin can now expose a skill from a root-level SKILL.md even without a skills/ subdirectory.
This leaves a new user-facing plugin packaging behavior undocumented, and it is especially confusing because the existing docs already mention a root-level SKILL.md only in the narrower manifest-override case.
Suggested Improvement
Update plugins-reference and the introductory plugins guide to document the new fallback clearly.
Minimum fix:
- In
plugins-reference, add a note near theSkillssection and file-location rules that if a plugin has noskills/subdirectory, a root-levelSKILL.mdis surfaced as a plugin skill. - Clarify the naming rule for that fallback, including that the
namefrontmatter field determines the invocation name when present. - In
plugins, add a short note thatskills/<name>/SKILL.mdremains the recommended structure, but a lone root-levelSKILL.mdis also recognized in v2.1.142+ when noskills/directory exists.
Suggested wording:
If a plugin does not contain askills/directory, Claude Code also treats a root-levelSKILL.mdas a plugin skill. Usenamefrontmatter to control the invoked skill name; otherwise Claude falls back to the directory basename.
Impact
Medium - Makes feature difficult to understand
Additional Context
Affected Pages:
| Page | Context |
|------|---------|
| https://code.claude.com/docs/en/plugins-reference | Technical reference currently documents skills/ directories by default and root-level SKILL.md only for explicit "skills": ["./"] manifest paths |
| https://code.claude.com/docs/en/plugins | Introductory plugin authoring guide says skills live in skills/ and gives only skills/<name>/SKILL.md examples |
Total scope: 2 pages affected
Source: Changelog v2.1.142
Exact changelog entry:
Plugins with a root-levelSKILL.mdand noskills/subdirectory are now surfaced as a skill
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗