
Create Skill
FreeScaffold new agent skills for dotnet/skills.
Free · Opens the source repo
What Create Skill does
The Create Skill is designed to assist developers in scaffolding new agent skills that adhere to the Agent Skills specification and the conventions of the dotnet/skills repository. This skill is particularly useful when you need to create a new skill from scratch, ensuring that all necessary components are in place for proper functionality and compliance. With this skill, you can generate SKILL.md files that include the required frontmatter, set up the appropriate directory structure, and receive guidance on validation to ensure your skill meets the necessary criteria.
When using the Create Skill, you can expect a structured approach to skill development. The skill provides a clear workflow that includes validating the skill name, drafting a description that effectively communicates the skill's purpose, and generating the SKILL.md file with the required sections. This ensures that your skill is not only functional but also easy to understand and use by other developers. The workflow also includes steps for adding optional directories for scripts, references, and assets, allowing for a comprehensive skill setup.
This skill is particularly beneficial for developers who are new to creating agent skills or those who want to streamline their development process. By following the provided guidelines, users can avoid common pitfalls and ensure that their skills are well-structured and ready for evaluation. The Create Skill is an essential tool for anyone looking to contribute to the dotnet/skills repository effectively and efficiently.
In summary, the Create Skill simplifies the process of developing new agent skills by providing a clear framework and necessary tools, making it easier for developers to create compliant and functional skills that enhance the capabilities of AI coding agents.
When to use it
Use this skill when starting a new agent skill from scratch or when you need to ensure compliance with the Agent Skills specification.
When not to use it
This skill is not suitable for modifying existing skills or diagnosing evaluation failures; use the appropriate skills for those tasks instead.
What you can build with it
Starting a New Skill
When you need to create a new agent skill, the Create Skill provides a structured approach to ensure compliance and proper setup.
Generating SKILL.md Files
Use this skill to automatically generate SKILL.md files with the correct frontmatter and sections, streamlining the documentation process.
Setting Up Directory Structures
Quickly set up the necessary directory structure for your new skill, including optional folders for scripts and references.
How to install Create Skill
View source1. Install with the skills CLI
npx skills add dotnet/skills/create-skill --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by dotnetCreate Skill
This skill helps you scaffold new agent skills that conform to the Agent Skills specification and the dotnet/skills repository conventions.
When to Use
- Creating a new skill from scratch
- Generating a SKILL.md file with proper frontmatter
- Setting up the skill directory structure with optional folders
- Ensuring compliance with agentskills.io specification
When Not to Use
- Modifying existing skills (edit directly instead)
- Diagnosing or fixing a skill that fails its evaluation (use
improve-skill-quality) - Writing the skill's
eval.yaml(usecreate-skill-test) - Creating custom agents (use the agents/ directory pattern)
Inputs
| Input | Required | Description |
|---|---|---|
| Skill name | Yes | Lowercase, alphanumeric, hyphens only (e.g., code-review, ci-triage) |
| Description | Yes | What the skill does and when agents should use it (1-1024 chars) |
| Purpose | Yes | One paragraph describing the outcome |
| Workflow steps | Recommended | Numbered steps the agent should follow |
Workflow
Step 1: Validate the skill name
Ensure the name:
- Contains only lowercase letters, numbers, and hyphens
- Does not start or end with a hyphen
- Does not contain consecutive hyphens
- Is between 1-64 characters
Step 2: Write the description — it is the router
The description is the only text the runtime sees when deciding whether to load the skill.
A perfect body behind a weak description never runs.
---
name: <skill-name>
description: <what it does>. USE FOR: <symptoms, error codes, artifact names, quoted user requests>. DO NOT USE FOR: <nearby-but-wrong intents, with the skill that owns them>.
---
- Lead with an action verb and use the user's own words: symptoms, error codes (
CS1501,MSTEST0014), artifact names (.testsettings,binlog), and requests phrased as a developer would type them. - Partition against sibling skills on the real discriminator, not the topic. "Does the abstraction already exist?" separates two skills; "testing" does not. Add the matching exclusion to both siblings.
- Claim the ambiguous words that would otherwise route to a sibling. If prompts say "review my tests" and a sibling owns "review", say so explicitly.
- Check every
DO NOT USE FORclause against the scenarios the skill exists to serve — an exclusion like "already on v3" can lock out the post-upgrade fixes that are the skill's purpose. - Budget: 1,024 characters per description, and the whole plugin's rendered skill menu is also
budgeted. A helper skill users should never invoke directly can set
disable-model-invocation: trueto free menu space while staying invocable by name.
Step 3: Write for delta over the baseline model
Every skill is scored head-to-head against the same model with no skill loaded. Content the model already produces unaided is worth zero; content that makes it slower or more hedged is worth less than zero. See improve-skill-quality/references/writing-for-baseline-delta.md for the full evidence.
| Do | Instead of |
|---|---|
| Encode the decision the model would otherwise get wrong | Restating API signatures it already reproduces |
| "When A, do B, never C, verify D" tables | Lists of plausible alternatives |
| A concrete output contract (exact command, verdict line, findings table) | "Consider…", "you may want to…" |
| Scale output structure to input size | A 12-section dashboard for an 8-test suite |
| Stop-conditions that prevent over-applying | Acting before measuring, rewriting working code |
| Instructing the agent to discover repo paths | Marking discoverable paths as required inputs |
| Reporting restore/build/test failures truthfully | Claiming success after a failed command |
| Verifying load-bearing API claims by compiling or probing | Trusting a source read |
Gating rare or expensive paths behind references/ | One large SKILL.md carrying every path |
Do not over-correct: a skilled answer shorter and less actionable than the baseline's still loses.
Step 4: Create the skill directory
plugins/<plugin>/skills/<skill-name>/
└── SKILL.md
Step 5: Generate SKILL.md with frontmatter
Create the file with the frontmatter drafted in Step 2.
Step 6: Add body content sections
Include these recommended sections:
- Purpose: One paragraph describing the outcome
- When to Use: Bullet list of appropriate scenarios
- When Not to Use: Boundaries and exclusions
- Inputs: Table of required and optional inputs
- Workflow: Numbered steps with checkpoints
- Validation: How to confirm the skill worked correctly
- Common Pitfalls: Known traps and how to avoid them
Step 7: Add optional directories (if needed)
plugins/<plugin>/skills/<skill-name>/
├── SKILL.md
├── scripts/ # Executable code agents can run
├── references/ # Additional documentation loaded on demand
└── assets/ # Templates, images, data files
Step 8: Update CODEOWNERS
Add entries in .github/CODEOWNERS for the new skill and its test directory:
/plugins/<plugin>/skills/<skill-name>/ @owner-team
/tests/<plugin>/<skill-name>/ @owner-team
Match the owner pattern used by sibling skills in the same plugin.
Step 9: Validate the skill
- Confirm frontmatter fields are valid
- Ensure SKILL.md is under 500 lines
- Check that file references use relative paths
- Verify instructions are actionable and specific
- Run
dotnet run --project eng/skill-validator/src/SkillValidator.csproj -- check --plugin ./plugins/<plugin>
Step 10: Add the eval
A skill without an eval.yaml has no evidence that it improves on the baseline. Use
create-skill-test to add one in the same pull request, and size it for statistical power — an eval
below five counted trials can never return a passing verdict.
The exception is a helper skill with disable-model-invocation: true: the model cannot
self-activate it, so an activation-graded eval compares two identical arms. Cover it through the
evals of the skills that load it instead.
SKILL.md Template
Use this template when creating a new skill:
---
name: <skill-name>
description: <1-1024 char description of what the skill does and when to use it>
---
# <Skill Title>
<One paragraph describing the skill's purpose and outcome.>
## When to Use
- <Scenario 1>
- <Scenario 2>
## When Not to Use
- <Exclusion 1>
- <Exclusion 2>
## Inputs
| Input | Required | Description |
|-------|----------|-------------|
| <input-name> | Yes/No | <description> |
## Workflow
### Step 1: <Action>
<Instructions for this step>
### Step 2: <Action>
<Instructions for this step>
## Validation
- [ ] <Verification step 1>
- [ ] <Verification step 2>
## Common Pitfalls
| Pitfall | Solution |
|---------|----------|
| <Problem> | <How to avoid or fix> |
Validation Checklist
After creating a skill, verify:
- Skill name matches directory name exactly
- Skill name is lowercase with hyphens only
- Description is non-empty and under 1024 characters
- SKILL.md body is under 500 lines
- Instructions are specific and actionable
- Workflow has numbered steps with clear checkpoints
- Validation section exists with observable success criteria
- No secrets, tokens, or internal URLs included
-
.github/CODEOWNERShas entries for the new skill and its test directory - The description names concrete triggers and excludes the nearest sibling skills
- Every section changes a decision the unskilled model would otherwise get wrong
- The skill states when not to act, and what a truthful failure report looks like
- An
eval.yamlexists and clears the trial floor (or the skill isdisable-model-invocation: trueand covered through its consumers)
Common Pitfalls
| Pitfall | Solution |
|---|---|
| Name contains uppercase letters | Use only lowercase: code-review not Code-Review |
| Description is vague | Include what it does AND when to use it |
| Instructions are ambiguous | Use numbered steps with concrete actions |
| Missing validation steps | Add checkpoints that verify success |
| SKILL.md too long | Move detailed content to references/ files |
| Hardcoded environment assumptions | Document requirements in compatibility field |
| Missing CODEOWNERS entry | Add entries for both /plugins/<plugin>/skills/<skill-name>/ and /tests/<plugin>/<skill-name>/ matching sibling skills' owner pattern |
| Skill restates what the model already knows | Cut it; a skill is scored as a delta over the unskilled model |
| Discoverable paths listed as required inputs | Tell the agent to discover them, or it will stop and ask the user |
| Description partitioned by topic against a sibling | Partition on the real discriminator and exclude on both sides |
| Exclusion clause blocks the skill's own use cases | Re-read every "do not use for" clause against real workflow phases |
| Skill added without an eval | Add eval.yaml in the same PR; unevaluated skills carry no evidence |
References
- Agent Skills Specification
- Repository README
- Contributing Guidelines
- create-skill-test — authoring the skill's
eval.yaml - improve-skill-quality — fixing a skill that loses to its baseline
Frequently asked questions about Create Skill
Similar skills
Spring Boot Testing
Master testing techniques for Spring Boot 4 applications.
GitHub Issues
Manage GitHub issues efficiently with MCP tools.
Geofeed Tuner
Optimize your IP geolocation feeds in CSV format.
Batch Files
Master Windows batch scripting for automation and task management.
Adobe Illustrator Scripting
Automate your Illustrator workflows with ExtendScript.
Plugin Structure
Create and organize Claude Code plugins effectively.
