Create Agent Skill
Purpose
Standardize the creation of new Agent Skills to ensure they are consistent, discoverable, and follow best practices.
When to Create a Skill
- Complex Tooling: When an agent needs to run a sequence of scripts or commands that are too long for the main agent prompt.
- Shared Capabilities: When multiple agents need the same capability (e.g., "Run UAT" used by UAT Tester and Quality Engineer).
- Strict Procedures: When a process requires exact adherence to a checklist or script (e.g., Release process).
Hard Rules
Must
- Create the skill in
.agents/skills/<skill-name>/.
- Use
kebab-case for the skill name.
- Ensure the skill
name matches the parent directory name exactly.
- Ensure
name is 1–64 characters, lowercase letters/numbers/hyphens only.
- Ensure
name does not start or end with - and does not contain consecutive hyphens (--).
- Include a
SKILL.md with valid YAML frontmatter.
- Include a
description in the frontmatter (max 1024 chars).
- Create
scripts/ and templates/ subdirectories only if needed.
- Use the provided template for
SKILL.md.
- Update
docs/workflow.md to register the new skill in the "Available Skills" table.
Must Not
- Create skills in the root
.github/ directory.
- Use spaces or special characters in the skill name.
- Leave the
description empty.
Best Practices
- Self-Contained: A skill should include all necessary scripts and templates within its folder.
- Progressive Disclosure: the harness only loads the skill body when the description matches the user's intent. Keep descriptions specific.
- Verification: Confirm the skill loads by asking for the task it covers in a fresh session and checking that the skill is invoked.
- Approval Minimization: Design skills to reduce the number of Maintainer approval prompts (terminal command approvals) so agents can execute workflows with minimal interruptions.
- Prefer a small number of stable wrapper commands over many one-off commands.
- Batch related operations into a single command where practical (and safe).
- Prefer tool-based reads (editor tools) over shell commands for read-only actions when available.
- Reuse existing repo scripts (e.g.,
scripts/uat-*.sh) instead of duplicating multi-step command sequences.
- If a workflow is inherently risky (force-push, merge, deleting branches), keep it explicit and gated, but still consolidate the surrounding steps.
Actions
1. Gather Information
Ask the user for:
- Skill Name: Short, descriptive, kebab-case (e.g.,
run-uat, deploy-docs).
- Description: One sentence explaining what the skill does and when an agent should load it.
- Purpose: Detailed explanation of the skill's goal.
- Approval Plan: Which commands will run, and how to structure them to minimize approvals (prefer a small number of stable wrappers).
2. Create Directory Structure
Run the following command to create the skill directory:
mkdir -p .agents/skills/`<skill-name>`
If your skill includes scripts or templates, add those directories explicitly:
mkdir -p .agents/skills/`<skill-name>`/scripts
mkdir -p .agents/skills/`<skill-name>`/templates
3. Create SKILL.md
Read the template from .agents/skills/create-agent-skill/templates/SKILL.md and create the new SKILL.md file:
cp .agents/skills/create-agent-skill/templates/SKILL.md .agents/skills/`<skill-name>`/SKILL.md
Then, edit the file to replace the placeholders ({{skill-name}}, {{description}}, {{purpose}}) with the gathered information.
4. Update Documentation
Add the new skill to the "Available Skills" table in docs/workflow.md.
5. Verify
Check that the file structure looks like this:
.agents/skills/`<skill-name>`/
├── SKILL.md
├── scripts/
└── templates/
References
Specifications & Documentation
| Resource |
What You'll Find |
| VS Code Agent Skills |
Official documentation: SKILL.md format, YAML frontmatter fields, progressive disclosure architecture, and complete examples. |
| Agent Skills Standard |
The open specification: formal schema, interoperability with other AI tools (Claude, Cursor, OpenAI Codex), and integration guides. |
| Agent Skills Specification |
Detailed field definitions, validation rules, and edge cases for SKILL.md files. |
Example Repositories
| Repository |
What You'll Find |
| anthropics/skills |
Reference skills from Anthropic: well-structured examples covering common patterns like debugging, documentation, and code review. |
| github/awesome-copilot |
Community collection of skills, custom agents, instructions, and prompts. Good source of real-world patterns. |
Practical Guides
| Resource |
What You'll Find |
| Teaching AI Your Repository Patterns |
Hands-on tutorial: real-world example (Selenium testing), key components that work (Clear Rules, Golden Examples, Templates), and verification tips. |
| GitHub Changelog Announcement |
Feature overview, availability across VS Code/CLI/coding agent, and links to community resources. |
1---2name: create-agent-skill3description: Create a new Agent Skill following project standards and templates. Use this when you need to encapsulate a new capability or workflow.4---56# Create Agent Skill78## Purpose910Standardize the creation of new Agent Skills to ensure they are consistent, discoverable, and follow best practices.1112## When to Create a Skill1314- **Complex Tooling**: When an agent needs to run a sequence of scripts or commands that are too long for the main agent prompt.15- **Shared Capabilities**: When multiple agents need the same capability (e.g., "Run UAT" used by UAT Tester and Quality Engineer).16- **Strict Procedures**: When a process requires exact adherence to a checklist or script (e.g., Release process).1718## Hard Rules1920### Must2122- Create the skill in `.agents/skills/<skill-name>/`.23- Use `kebab-case` for the skill name.24- Ensure the skill `name` matches the parent directory name exactly.25- Ensure `name` is 1–64 characters, lowercase letters/numbers/hyphens only.26- Ensure `name` does not start or end with `-` and does not contain consecutive hyphens (`--`).27- Include a `SKILL.md` with valid YAML frontmatter.28- Include a `description` in the frontmatter (max 1024 chars).29- Create `scripts/` and `templates/` subdirectories only if needed.30- Use the provided template for `SKILL.md`.31- Update `docs/workflow.md` to register the new skill in the "Available Skills" table.3233### Must Not3435- Create skills in the root `.github/` directory.36- Use spaces or special characters in the skill name.37- Leave the `description` empty.3839## Best Practices4041- **Self-Contained**: A skill should include all necessary scripts and templates within its folder.42- **Progressive Disclosure**: the harness only loads the skill body when the description matches the user's intent. Keep descriptions specific.43- **Verification**: Confirm the skill loads by asking for the task it covers in a fresh session and checking that the skill is invoked.44- **Approval Minimization**: Design skills to reduce the number of Maintainer approval prompts (terminal command approvals) so agents can execute workflows with minimal interruptions.45 - Prefer a small number of **stable wrapper commands** over many one-off commands.46 - Batch related operations into a single command where practical (and safe).47 - Prefer tool-based reads (editor tools) over shell commands for read-only actions when available.48 - Reuse existing repo scripts (e.g., `scripts/uat-*.sh`) instead of duplicating multi-step command sequences.49 - If a workflow is inherently risky (force-push, merge, deleting branches), keep it explicit and gated, but still consolidate the surrounding steps.5051## Actions5253### 1. Gather Information5455Ask the user for:5657- **Skill Name**: Short, descriptive, kebab-case (e.g., `run-uat`, `deploy-docs`).58- **Description**: One sentence explaining what the skill does and *when* an agent should load it.59- **Purpose**: Detailed explanation of the skill's goal.60- **Approval Plan**: Which commands will run, and how to structure them to minimize approvals (prefer a small number of stable wrappers).6162### 2. Create Directory Structure6364Run the following command to create the skill directory:6566```bash67mkdir -p .agents/skills/`<skill-name>`68```6970If your skill includes scripts or templates, add those directories explicitly:7172```bash73mkdir -p .agents/skills/`<skill-name>`/scripts74mkdir -p .agents/skills/`<skill-name>`/templates75```7677### 3. Create SKILL.md7879Read the template from `.agents/skills/create-agent-skill/templates/SKILL.md` and create the new `SKILL.md` file:8081```bash82cp .agents/skills/create-agent-skill/templates/SKILL.md .agents/skills/`<skill-name>`/SKILL.md83```8485Then, edit the file to replace the placeholders (`{{skill-name}}`, `{{description}}`, `{{purpose}}`) with the gathered information.8687### 4. Update Documentation8889Add the new skill to the "Available Skills" table in `docs/workflow.md`.9091### 5. Verify9293Check that the file structure looks like this:9495```96.agents/skills/`<skill-name>`/97├── SKILL.md98├── scripts/99└── templates/100```101102## References103104### Specifications & Documentation105106| Resource | What You'll Find |107|----------|------------------|108| [VS Code Agent Skills](https://code.visualstudio.com/docs/copilot/customization/agent-skills) | Official documentation: SKILL.md format, YAML frontmatter fields, progressive disclosure architecture, and complete examples. |109| [Agent Skills Standard](https://agentskills.io/) | The open specification: formal schema, interoperability with other AI tools (Claude, Cursor, OpenAI Codex), and integration guides. |110| [Agent Skills Specification](https://agentskills.io/specification) | Detailed field definitions, validation rules, and edge cases for SKILL.md files. |111112### Example Repositories113114| Repository | What You'll Find |115|------------|------------------|116| [anthropics/skills](https://github.com/anthropics/skills) | Reference skills from Anthropic: well-structured examples covering common patterns like debugging, documentation, and code review. |117| [github/awesome-copilot](https://github.com/github/awesome-copilot) | Community collection of skills, custom agents, instructions, and prompts. Good source of real-world patterns. |118119### Practical Guides120121| Resource | What You'll Find |122|----------|------------------|123| [Teaching AI Your Repository Patterns](https://dev.to/qa-leaders/github-copilot-agent-skills-teaching-ai-your-repository-patterns-1oa8) | Hands-on tutorial: real-world example (Selenium testing), key components that work (Clear Rules, Golden Examples, Templates), and verification tips. |124| [GitHub Changelog Announcement](https://github.blog/changelog/2025-12-18-github-copilot-now-supports-agent-skills/) | Feature overview, availability across VS Code/CLI/coding agent, and links to community resources. |