Skill Writing

Skill Development

A Claude Code skill that guides Claude in creating effective skills for Claude Code plugins. It covers skill structure, progressive disclosure, trigger-phrase descriptions, writing style, validation and iteration.

  • 150k GitHub stars
Skill Development — illustration

What it is

Skill Development is a skill from the plugin-dev plugin. It is meant to be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description" or "organize skill content". It also applies when the user needs guidance on skill structure, progressive disclosure, or best practices for skills in Claude Code plugins. It describes skills as modular, self-contained packages that extend Claude's capabilities with specialized knowledge, workflows and tools. In its words, they are "onboarding guides" that turn Claude from a general-purpose agent into a specialized one. The skill explains how a skill is built. A skill has a required SKILL.md file, which contains YAML frontmatter with a required name and description, followed by Markdown instructions. It can also include optional bundled resources: scripts/ for executable code, references/ for documentation loaded into context as needed, and assets/ for files used in output. These pieces support a three-level progressive disclosure system. The metadata (about 100 words) is always in context. The SKILL.md body (under 5k words) loads when the skill triggers. Bundled resources load as needed, and scripts can run without being read into the context window. It sets out a six-step creation process: 1. Understand the skill through concrete examples. 2. Plan reusable contents. 3. Create the directory structure inside the plugin's skills/ directory. 4. Edit the skill. 5. Validate and test. 6. Iterate. It sets strict writing rules. The frontmatter description must be third person ("This skill should be used when...") and include specific trigger phrases. The body should use imperative/infinitive form rather than second person. SKILL.md should stay lean, ideally 1,500–2,000 words, with detailed material moved to references/. The skill also covers plugin-specific points. Claude Code auto-discovers skills by scanning the skills/ directory for subdirectories containing SKILL.md. Skills ship with the plugin, so no separate ZIP packaging is needed, and they can be tested locally with --plugin-dir. It also provides: - a validation checklist - common mistakes with bad and good examples - minimal, standard and complete layout templates - pointers to other plugin-dev skills (hook-development, agent-development, plugin-settings and others) as examples of best practice

Who it's for

  • Claude Code plugin developers adding skills to their plugins
  • Users who want to write a new skill or improve an existing skill's description
  • Developers who want to organize skill content using progressive disclosure

Requirements

Requirements

  • Claude Code
  • A plugin directory where the skill lives under skills/ (e.g. plugin-name/skills/skill-name/)

هاد السكيل بيساعد Claude يعمل سكيلز منيحة لبلَغِنات Claude Code. بيشرحلك كيف ترتّب الملفات، وكيف تكتب وصف فيه جمل تشغيل واضحة، وكيف تفحص السكيل وتحسّنه.

Examples

Create the skill directory structure

bash
bash
mkdir -p plugin-name/skills/skill-name/{references,examples,scripts}
touch plugin-name/skills/skill-name/SKILL.md

What it does: Step 3 of the process: plugin skills are created directly in the plugin's skills/ directory with a simple manual structure.

Good third-person description with trigger phrases

yaml
yaml
description: This skill should be used when the user asks to "create a hook", "add a PreToolUse hook", "validate tool use", "implement prompt-based hooks", or mentions hook events (PreToolUse, PostToolUse, Stop).

What it does: An example of a strong frontmatter description: it is written in third person and lists specific phrases users would say.

Ask the skill-reviewer agent to review a skill

Prompt
prompt
Ask: "Review my skill and check if it follows best practices"

Expected output: The skill-reviewer agent checks description quality, content organization and progressive disclosure.

Test the skill by loading the plugin locally

bash
bash
# Test with --plugin-dir
cc --plugin-dir /path/to/plugin

# Ask questions that should trigger the skill
# Verify skill loads correctly

What it does: Load the plugin locally, then ask questions that should trigger the skill to confirm it loads correctly.