home / skills / gwenwindflower / .charmschool / develop-agent-skills

develop-agent-skills skill

/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-skills

Review the files below or copy the command above to add this skill to your agents.

Files (9)
SKILL.md
3.9 KB
---
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>

Overview

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.

How this skill works

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.

When to use it

  • Creating a new Agent Skill from scratch
  • Auditing an existing skill for context efficiency and correctness
  • Designing what scripts, references, or assets to bundle
  • Converting verbose documentation into concise SKILL.md + references
  • Preparing a skill for reliable, repeatable execution

Best practices

  • Keep SKILL.md concise; frontmatter must include clear name and description
  • Prefer scripts for repeated deterministic code and assets for output files
  • Use references/ for domain docs; link them from SKILL.md with clear relative links
  • Apply progressive disclosure: metadata always loaded, body only when triggered, resources on demand
  • When unsure, restrict degrees of freedom—start strict and relax later

Example use cases

  • Create a pdf-editor skill with scripts/rotate_pdf.py and references for advanced features
  • Audit a bigquery-skill and move large schemas to references/schema.md with a TOC
  • Design a frontend-template skill that stores boilerplate in assets/ and minimal usage notes in SKILL.md
  • Improve an image-editing skill by replacing verbose procedural text with compact triggers and targeted reference files
  • Validate skill structure with skillutil and iterate based on agent feedback

FAQ

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.