Source profileQuality 89/100

dotnet/skills/.agents/skills/create-skill/SKILL.md

create-skill

Scaffolds new agent skills for the dotnet/skills repository. Use when creating a new skill, generating SKILL.md files, writing a skill description that the runtime will actually route to, or setting up skill directory structures. Handles frontmatter generation, section templates, and validation guidance. Do not use for fixing a skill that already fails its evaluation (use improve-skill-quality) or for writing eval.yaml (use create-skill-test).

Source repository stars
4,922
Declared platforms
0
Static risk flags
1
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

This skill helps you scaffold new agent skills that conform to the Agent Skills specification and the dotnet/skills repository conventions.

Best for

  • Creating a new skill from scratch
  • Generating a SKILL.md file with proper frontmatter
  • Setting up the skill directory structure with optional folders

Not for

  • Modifying existing skills (edit directly instead)
  • Diagnosing or fixing a skill that fails its evaluation (use improve-skill-quality)

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/dotnet/skills --skill ".agents/skills/create-skill"
Safe inspection promptEditorial

Inspect the Agent Skill "create-skill" from https://github.com/dotnet/skills/blob/805a42a675a47f14fdd77a54aa474fcb8e499b9e/.agents/skills/create-skill/SKILL.md at commit 805a42a675a47f14fdd77a54aa474fcb8e499b9e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    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

    Contains only lowercase letters, numbers, and hyphensDoes not start or end with a hyphenDoes not contain consecutive hyphens
  2. 02

    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

    Contains only lowercase letters, numbers, and hyphensDoes not start or end with a hyphenDoes not contain consecutive hyphens
  3. 03

    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.

    Lead with an action verb and use the user's own words: symptoms, error codes (CS1501,Partition against sibling skills on the real discriminator, not the topic. "Does theClaim the ambiguous words that would otherwise route to a sibling. If prompts say "review my
  4. 04

    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 t…

    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-…Do not over-correct: a skilled answer shorter and less actionable than the baseline's still loses.
  5. 05

    Step 4: Create the skill directory

    Review the “Step 4: Create the skill directory” section in the pinned source before continuing.

    Review and apply the “Step 4: Create the skill directory” source section.

Permission review

Static risk signals and limitations

Writes files

medium · line 87

The documentation asks the agent to create, modify, or delete local files.

### Step 4: Create the skill directory

Writes files

medium · line 96

The documentation asks the agent to create, modify, or delete local files.

Create the file with the frontmatter drafted in Step 2.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score89/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars4,922SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
dotnet/skills
Skill path
.agents/skills/create-skill/SKILL.md
Commit
805a42a675a47f14fdd77a54aa474fcb8e499b9e
License
MIT
Collected
2026-08-04
Default branch
main
View the original SKILL.md

Create 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 (use create-skill-test)
  • Creating custom agents (use the agents/ directory pattern)

Inputs

InputRequiredDescription
Skill nameYesLowercase, alphanumeric, hyphens only (e.g., code-review, ci-triage)
DescriptionYesWhat the skill does and when agents should use it (1-1024 chars)
PurposeYesOne paragraph describing the outcome
Workflow stepsRecommendedNumbered 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 FOR clause 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: true to 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.

DoInstead of
Encode the decision the model would otherwise get wrongRestating API signatures it already reproduces
"When A, do B, never C, verify D" tablesLists of plausible alternatives
A concrete output contract (exact command, verdict line, findings table)"Consider…", "you may want to…"
Scale output structure to input sizeA 12-section dashboard for an 8-test suite
Stop-conditions that prevent over-applyingActing before measuring, rewriting working code
Instructing the agent to discover repo pathsMarking discoverable paths as required inputs
Reporting restore/build/test failures truthfullyClaiming success after a failed command
Verifying load-bearing API claims by compiling or probingTrusting 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:

  1. Purpose: One paragraph describing the outcome
  2. When to Use: Bullet list of appropriate scenarios
  3. When Not to Use: Boundaries and exclusions
  4. Inputs: Table of required and optional inputs
  5. Workflow: Numbered steps with checkpoints
  6. Validation: How to confirm the skill worked correctly
  7. 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/CODEOWNERS has 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.yaml exists and clears the trial floor (or the skill is disable-model-invocation: true and covered through its consumers)

Common Pitfalls

PitfallSolution
Name contains uppercase lettersUse only lowercase: code-review not Code-Review
Description is vagueInclude what it does AND when to use it
Instructions are ambiguousUse numbered steps with concrete actions
Missing validation stepsAdd checkpoints that verify success
SKILL.md too longMove detailed content to references/ files
Hardcoded environment assumptionsDocument requirements in compatibility field
Missing CODEOWNERS entryAdd entries for both /plugins/<plugin>/skills/<skill-name>/ and /tests/<plugin>/<skill-name>/ matching sibling skills' owner pattern
Skill restates what the model already knowsCut it; a skill is scored as a delta over the unskilled model
Discoverable paths listed as required inputsTell the agent to discover them, or it will stop and ask the user
Description partitioned by topic against a siblingPartition on the real discriminator and exclude on both sides
Exclusion clause blocks the skill's own use casesRe-read every "do not use for" clause against real workflow phases
Skill added without an evalAdd eval.yaml in the same PR; unevaluated skills carry no evidence

References

Alternatives

Compare before choosing

Computed 956

mgiovani/cc-arsenal

create-skill

Create a new agent skill (or Claude Code slash command) from a plain-language description, using live spec fetching, pattern research, and an approval-gated blueprint before any files are written. Use whenever the user wants to build, scaffold, or author a new skill, subagent capability, or slash command, including phrasings like 'make a command for X', 'create a slash command', 'turn this into a reusable skill', or 'package this workflow as a skill'. Not for editing CLAUDE.md/AGENTS.md memory r

Computed 9368

PaulRBerg/agent-skills

create-skill

Use to create/scaffold/init a new agent skill under `.agents/skills` in the working directory where invoked.

Computed 10023,781

alirezarezvani/claude-skills

app-store-optimization

App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

Computed 1004,922

dotnet/skills

migrate-vstest-to-mtp

Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing