home / skills / gwenwindflower / .charmschool / develop-agent-skills
/agents/claude/skills/develop-agent-skills
This skill helps you create or audit agent skills by guiding modular design, concise context, and referenced resources.
npx playbooks add skill gwenwindflower/.charmschool --skill develop-agent-skillsReview the files below or copy the command above to add this skill to your agents.
---
name: develop-agent-skills
description: Guide for creating and improving highly effective Agent Skills. Use when user wants to create a new skill, or when auditing and improving existing skills
allowed-tools:
- Bash(skillutil *)
---
# Skill Creator
Guide for creating and improving Agent Skills: modular packages that extend Claude with specialized workflows, domain knowledge, and bundled resources. The primary guidance for this skill in the [overview](overview.md) file fetched from the Anthropic docs via `skillutil refresh-docs`. You do not need to run this command to start, this file already exist. You should always read this, any other reference docs are optional based on need.
## Creating a New Skill
1. Read overview file
2. Ask the user any clarifying questions about skill goals, preferences, or examples
3. Plan contents (do you need additional files? Are scripts and assets appropriate?)
4. Initialize the skill (run `skillutil init <skill-name>` or `skillutil init <skill-name> --path <output-directory>`)
5. Edit the skill (write `SKILL.md`, add scripts, modular docs, and assets as needed)
6. Validate structure and frontmatter schema (run `skillutil validate <skill-path>`)
Follow these steps in order, skipping only if there is a clear reason why they are not applicable. If the user tells you to skip validation, it's fine to do so.
## Editing an Existing Skill
When editing an existing skill, first ask the user what they want to improve or add. Then follow steps 2-6 from the "Creating a New Skill" process above, skipping step 4 since the skill already exists.
## `skillutil` Tool
There is a mini CLI tool, written in Deno, housed in the `scripts/` directory of this skill (with the templates it consumes in `assets/`. Use it to create, validate, or fork third-party skills from GitHub.
### Creation
```bash
skillutil init <skill-name> [--path <output-directory>]
```
If `--path` is not provided, the skill will be created in `~/.claude/skills/` as a user-level skill available to all projects and sessions. This is often desirable! If the skill reflects the user's git preferences, shell environment that applies everywhere, or even frontend skills that are applicable across any web project, you should consider making it a user-level skill.
Examples:
```bash
# Create a user-level skill (default, ~/.claude/skills/my-skill)
skillutil init my-skill
# Create a project-scoped skill
skillutil init my-skill --path path/to/project
# Fork a GitHub repo as your skill base (must contain SKILL.md in root)
skillutil init --fork <GitHub repo url>
```
The script (unless forking):
- Creates the skill directory at the specified path
- Generates a SKILL.md template with proper frontmatter and TODO placeholders
- Creates example resource directories: `scripts/`, `references/`, and `assets/`
- Adds example files in each directory that can be customized or deleted
After initialization, customize or remove the generated template files as needed.
If forking, you will get the same structure as the external skill to start from, in the default or specified path.
### Validation
```bash
skillutil validate <skill-path>
```
### Adding Third-Party Skills
It's usually better to use `skillutil` add for external skills. It works for single skills or a directory of skill files, and safely skips any duplicate skills that already exist with the same name in the user's skill library at the given level/path.
```bash
skillutil add <GitHub repo url>
```
### Refresh Local Documentation
The key reference docs from Anthropic are available in this skill's root directory, with `overview.md` as the main entry point.
If these files were last modified more than a month ago, run `skillutil refresh-docs` to fetch updated documentation before relying on them for skill development.
## Full Schema Details
If you need frontmatter or content properties beyond basic fields and structure, fetch the latest version of the full spec here: <https://agentskills.io/specification>
This skill guides creators through designing, building, and improving Agent Skills: compact, reusable packages that extend an AI agent with workflows, code, references, and assets. It focuses on minimizing context bloat, choosing appropriate degrees of freedom, and organizing files so the agent loads only what it needs. Use it to create new skills or audit and improve existing ones.
The guide inspects skill structure, metadata, and resource choices and prescribes a progressive-disclosure layout: minimal frontmatter, concise SKILL.md body, and optional bundled scripts/references/assets loaded only when needed. It walks through a stepwise creation process—understand usage examples, plan reusable contents, initialize scaffolding, validate structure, and iterate against best practices. It also recommends when to move content out of SKILL.md into reference files or scripts for token efficiency and determinism.
What belongs in SKILL.md versus references/?
Keep only essential workflow instructions and selection guidance in SKILL.md. Move large examples, schemas, API docs, and extended patterns into references/ and link to them from SKILL.md.
When should I include scripts/ instead of inline code examples?
Include executable scripts when you repeatedly rewrite the same code or need deterministic reliability. Scripts save tokens and can be executed without loading into context.
How do I avoid loading irrelevant content into the agent context?
Use short frontmatter, concise SKILL.md, and organize variant-specific or domain-specific material into separate reference files so the agent reads only the relevant file when triggered.