If the user wants to add a new skill, you can help them with this:
-
Ask the user for a short name and description of the skill. The name should be something that can be rendered as a short (10-30 character) descriptive sequence of words separated by hyphens. The description should be a line of text that is focused on conveying to a future agent when the skill would be appropriate to use and roughly what it does.
-
Ask the user for details. You can build up an idea of what the skill should do over multiple rounds of questioning. You want to find out:
- If the skill should involve any key thoughts or considerations.
- If the skill has an order of steps, or is an unordered set of tasks.
- If the skill involves running sub-agents and if so how many.
- **If the skill involves a lot of work** that might benefit from splitting
into subagent tasks (see below for considerations).
- If the skill should include commands to run.
- If the skill should include code to write.
- If for code or commands to there is specific text or more of a
sketch or template of text _like_ some example to include.
- Any hard rules that an agent doing the skill should ALWAYS or NEVER do.
- A set of conditions for stopping, looping/extending, or resetting/restarting.
- How the result of applying the skill should be conveyed to the user.
Subagent considerations
Skills that involve a lot of work may benefit from splitting into pieces and running each piece as a subagent. This keeps each subagent focused on a moderate amount of work so it doesn't get lost or wander off track. If the skill might use subagents, identify:
- How the work could be split into moderate-sized pieces
- What information each subagent needs to do its piece
- The skill file should have an "Inputs" section listing what's needed
- The skill should suggest a format for the subagent prompt
3. Once you have learned this information from the user, assemble it into a
file in the repository. Add a file named .claude/skills/<skill-name>/SKILL.md
with the following structure:
- YAML frontmatter with the fields `name` and `description` drawn from
the name and description.
- An introductory paragraph or two describing the goal of the skill and
any thoughts or special considerations to perform, as well as any
description of the meta-parameters like how to split work among subagents
and how to stop/loop/restart. If the skill involves a lot of work,
suggest how it might be split into moderate-sized subagent tasks.
- **If the skill might use subagents**: An "Inputs" section that lists
what information is needed for each piece, and suggests a format for the
subagent prompt. This section comes right after the overview.
- Either a sequential list of steps or an unordered list of tasks.
- Any code or commands in either specific or example form.
- Any of the ALWAYS/NEVER conditions.
- A "Completion" section describing how to summarize the work, noting that
if invoked as a subagent, the summary should be passed back to the
invoking agent.
When you're done, save that file and then present the user with a link to it so they can open it and review it.