Guide for creating new Claude Code skills following current conventions
Version: v1 | Date: 2026-04-02 | Author: system
Create a new skill based on the user's request, strictly following the structure and conventions below.
flowchart LR
A[User request] --> B[Create skill directory]
B --> C[Write SKILL.md\nwith frontmatter]
C --> D{Extra files\nneeded?}
D -- Yes --> E[Add reference.md\nscripts/ examples/]
D -- No --> F[Done]
E --> F
Figure 1.1 — Skill creation overview
flowchart TD
A[skill-name/] --> B[SKILL.md\nRequired: entry point]
A --> C[reference.md\nOptional: docs]
A --> D[examples/\nOptional: sample outputs]
A --> E[scripts/\nOptional: run.sh etc.]
Figure 2.1 — Skill directory layout
<skill-name>/
├── SKILL.md # Required - entry point with frontmatter + instructions
├── reference.md # Optional - supporting documentation
├── examples/ # Optional - example outputs
│ └── sample.md
└── scripts/ # Optional - executable scripts
└── run.sh
flowchart TD
A[Get skill name from ARGUMENTS or ask user] --> B[Ask for purpose and behavior]
B --> C[Create directory under skills root]
C --> D[Write SKILL.md with frontmatter and instructions]
D --> E{Supporting files needed?}
E -- Yes --> F[Add reference.md / scripts / examples]
E -- No --> G[Done]
F --> G
Figure 3.1 — New skill creation steps
flowchart LR
A[SKILL.md] --> B[frontmatter\n--- name description ---]
B --> C[Markdown body\nClaude instructions]
C --> D{Optional frontmatter\nfields?}
D --> E[allowed-tools\ncontext: fork\nuser-invocable]
Figure 4.1 — SKILL.md structure
---