skills/plugin-dev-validation/SKILL.md
Domain validation criteria for plugin components. Consumed by corrector during artifact review.
npx skillsauth add ddaanet/agent-core plugin-dev-validationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Review criteria for Claude Code plugin components. This skill is consumed by corrector during artifact review, not invoked interactively.
Artifact types covered:
.claude/skills/**/SKILL.md, plugin/skills/**/SKILL.md).claude/agents/*.md).claude/hooks/*.{sh,py}, .claude/settings.json hook configuration).claude/commands/**/*)plugin.json, directory layout)Path patterns:
.claude/plugins/**/*.claude/skills/**/*.claude/agents/**/*.claude/hooks/**/*plugin/skills/**/*plugin/agents/**/*Critical:
Valid frontmatter: YAML block with required fields (name, description)
name field must match directory namedescription field must be concise (1-2 sentences)user-invocable field required (true/false)Progressive disclosure: Content organized from simple to complex
Imperative form: Instructions use imperative verbs (Read, Write, Invoke, Check)
Major:
Triggering conditions: Clear "When to Use" section
Lean SKILL.md: Main skill file focuses on protocol, detailed guidance in subdirectories
examples/, patterns to patterns/Minor:
See references/examples-per-type.md Skills section for good/bad examples.
Critical:
Valid frontmatter: YAML with name (3-50 chars), description with examples, model, color, tools
name: 3-50 characters, hyphen-separateddescription: Multi-line with usage examplesmodel: sonnet|opus|haikucolor: Valid color nametools: Array of tool namesTool access specification: tools array lists only necessary tools
Major:
System prompt clarity: Agent body clearly states role, responsibilities, constraints
Triggering examples: Description includes invocation patterns
Minor:
-agent or -taskSee references/examples-per-type.md Agents section for good/bad examples.
Critical:
Security: Exact match for allowed operations, not startswith()
command in allowed_commandscommand.startswith(allowed_prefix)Valid event types: PreToolUse, PostToolUse, UserPromptSubmit, SessionStart
Error output to stderr: Blocking hooks must write to stderr and exit 2
>&2 echo "Error message"; exit 2echo "Error message"; exit 1Major:
Matcher patterns: PreToolUse hooks specify tool matcher (Bash, Write, Edit)
Output format: Hooks use hookSpecificOutput for structured data
additionalContext for context injectionsystemMessage for user-visible messagesMinor:
chmod +x)#!/usr/bin/env bash or #!/usr/bin/env python3See references/examples-per-type.md Hooks section for good/bad examples.
Critical:
Valid YAML frontmatter: Command definition with name, arguments, description
Executable script: Command script exists and has execute permissions
Major:
Minor:
See references/examples-per-type.md Commands section for good/bad examples.
Critical:
Valid plugin.json: Root manifest with description and hooks/skills/agents
Directory layout: Standard structure (skills/, agents/, hooks/)
skills/skill-name/SKILL.mdagents/agent-name.mdhooks/hook-name.{sh,py}Major:
No broken symlinks: All symlinks resolve to valid targets
.claude/agents/, .claude/skills/ symlinksFrontmatter consistency: All artifacts have required frontmatter fields
Minor:
See references/examples-per-type.md Plugin Structure section for good/bad examples.
What corrector can fix directly:
Missing frontmatter fields: Add required fields with sensible defaults
user-invocable: true for skills (can be adjusted)model: sonnet for agents (common default)tools: [] for agents (minimal set)Format issues: Heading structure, list formatting, code block markers
Imperative form: Convert passive voice to imperative
Security patterns (hooks): Replace startswith() with exact match
in check with set/listProgressive disclosure: Reorder sections to simple-first
Lean skill content: Move detailed content to subdirectories
examples/ or patterns/ subdirectoriesWhat requires human decision:
Missing purpose/goal: Skill or agent lacks clear statement of what it does
Tool access ambiguity: Agent needs tools not in allowed list, or has unnecessary tools
Security vulnerability (complex): Hook pattern exploitable in non-obvious ways
Broken references: Skill references non-existent files or agents
Architectural issues: Agent responsibilities overlap with existing agents
How this skill is used:
plugin/skills/plugin-dev-validation/SKILL.md for artifact type: [skills|agents|hooks|commands|plugin-structure]"No changes to corrector protocol: This skill provides enriched criteria; corrector applies them using existing review process.
tools
Manage git worktrees for parallel task execution. Triggers on "create a worktree", "set up parallel work", "merge a worktree", "branch off a task", or uses the `wt`, `wt merge`, or `wt-rm` shortcuts. Worktree lifecycle: creation, focused sessions, merge ceremony, cleanup, parallel task setup.
testing
Recall behavioral knowledge from project decisions. Triggers on "when to do X", situational patterns, or decision content for recognized situations. Invoke with "/when <trigger>".
tools
Sync edify fragments and portable justfile to match the current plugin version. Detects user-edited files and warns instead of overwriting. Use --force to overwrite conflicts.
testing
Write compact bash scripts using exec tracing pattern. Triggers when writing bash scripts with 3+ sequential commands. The exec 2>&1 + set -xeuo pipefail pattern eliminates echo statements via automatic command tracing, reducing script size by 40-60%.