Validates plugin directory layout against the official Claude Code plugin spec. Triggers: validate structure, check layout, directory audit, plugin skeleton check.
From plugin-qanpx claudepluginhub javimontano/mao-plugin-qaThis skill is limited to using the following tools:
examples/clean-plugin.mdexamples/dirty-plugin.mdprompts/structure-check.mdreferences/plugin-directory-spec.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
"A plugin that does not follow the spec is not a plugin -- it is a folder with aspirations."
Validates that a Claude Code plugin's directory tree conforms to the official specification. Detects missing directories, misplaced files, naming violations, path traversal risks, and script permission issues.
plugin.json at the provided path (official spec location)..claude-plugin/plugin.json (legacy location). Report INFO: plugin.json found at legacy .claude-plugin/ path if found there.CRITICAL: No plugin.json found -- not a valid plugin root..claude-plugin/ directory exists, list all files inside it.plugin.json is inside .claude-plugin/, only plugin.json should be there. Any other file is a WARNING: Unexpected file in .claude-plugin/.plugin.json is at root (preferred), this check is N/A.skills/, commands/, agents/, hooks/.plugin.json.skills/ = WARNING if the plugin description implies skill-based functionality.commands/ = INFO (commands are optional).agents/ = INFO (plugin can use the host agent).hooks/ = INFO (hooks are optional).SKILL.md file: skills/<name>/SKILL.md..md files directly under commands/: commands/<name>.md..md files directly under agents/: agents/<name>.md.CRITICAL for any skill directory missing SKILL.md.WARNING for unexpected file types (.txt, .json) in commands/ or agents/.^[a-z][a-z0-9]*(-[a-z0-9]+)*$.WARNING for each violation with the offending name and suggested kebab-case alternative..md, .json, .sh files for ../ sequences.^/ in script files and hook configurations.CRITICAL for any ../ usage in hooks.json or script references.WARNING for ../ in documentation files (may be intentional examples)..sh, .py, .js files in the plugin tree.#!/bin/bash, #!/usr/bin/env node, etc.).chmod +x). Use ls -la to check.WARNING for missing shebang. Report WARNING for missing execute permission.| Severity | File/Path | Finding | Spec Reference |.../ that resolves safely is still flagged because it indicates a portability risk.Bad finding:
Missing skills directory.
Missing: no severity, no path, no spec reference.
Good finding:
WARNING | skills/ | Directory absent. Plugin description implies skill-based functionality but no skills/ directory exists. | Official spec: optional
Includes: severity, path, context explaining why it matters, spec reference.
.gitkeep, .DS_Store) -- these should be INFO, not errors..claude-plugin directory name -- CRITICAL on case-sensitive filesystems.