Make Skill Template
A meta-skill for creating new Agent Skills. Use this skill when you need to scaffold a new skill folder, generate a SKILL.md file, or help users understand the Agent Skills specification.
When to Use This Skill
- User asks to "create a skill", "make a new skill", or "scaffold a skill"
- User wants to add a specialized capability to their GitHub Copilot setup
- User needs help structuring a skill with bundled resources
- User wants to duplicate this template as a starting point
Prerequisites
- Understanding of what the skill should accomplish
- A clear, keyword-rich description of capabilities and triggers
- Knowledge of any bundled resources needed (scripts, references, assets, templates)
Creating a New Skill
Step 1: Create the Skill Directory
Create a new folder with a lowercase, hyphenated name:
skills/<skill-name>/
└── SKILL.md # Required
Step 2: Generate SKILL.md with Frontmatter
Every skill requires YAML frontmatter with name and description:
---
name: <skill-name>
description: '<What it does>. Use when <specific triggers, scenarios, keywords users might say>.'
---
Frontmatter Field Requirements
| Field |
Required |
Constraints |
name |
Yes |
1-64 chars, lowercase letters/numbers/hyphens only, must match folder name |
description |
Yes |
1-1024 chars, must describe WHAT it does AND WHEN to use it |
license |
No |
License name or reference to bundled LICENSE.txt |
compatibility |
No |
1-500 chars, environment requirements if needed |
metadata |
No |
Key-value pairs for additional properties |
allowed-tools |
No |
Space-delimited list of pre-approved tools (experimental) |
Description Best Practices
CRITICAL: The description is the PRIMARY mechanism for automatic skill discovery. Include:
- WHAT the skill does (capabilities)
- WHEN to use it (triggers, scenarios, file types)
- Keywords users might mention in prompts
Good example:
description: 'Toolkit for testing local web applications using Playwright. Use when asked to verify frontend functionality, debug UI behavior, capture browser screenshots, or view browser console logs. Supports Chrome, Firefox, and WebKit.'
Poor example:
description: 'Web testing helpers'
Step 3: Write the Skill Body
After the frontmatter, add markdown instructions. Recommended sections:
| Section |
Purpose |
# Title |
Brief overview |
## When to Use This Skill |
Reinforces description triggers |
## Prerequisites |
Required tools, dependencies |
## Step-by-Step Workflows |
Numbered steps for tasks |
## Troubleshooting |
Common issues and solutions |
## References |
Links to bundled docs |
Step 4: Add Optional Directories (If Needed)
| Folder |
Purpose |
When to Use |
scripts/ |
Executable code (Python, Bash, JS) |
Automation that performs operations |
references/ |
Documentation agent reads |
API references, schemas, guides |
assets/ |
Static files used AS-IS |
Images, fonts, templates |
templates/ |
Starter code agent modifies |
Scaffolds to extend |
Example: Complete Skill Structure
my-awesome-skill/
├── SKILL.md # Required instructions
├── LICENSE.txt # Optional license file
├── scripts/
│ └── helper.py # Executable automation
├── references/
│ ├── api-reference.md # Detailed docs
│ └── examples.md # Usage examples
├── assets/
│ └── diagram.png # Static resources
└── templates/
└── starter.ts # Code scaffold
Quick Start: Duplicate This Template
- Copy the
make-skill-template/ folder
- Rename to your skill name (lowercase, hyphens)
- Update
SKILL.md:
- Change
name: to match folder name
- Write a keyword-rich
description:
- Replace body content with your instructions
- Add bundled resources as needed
- Validate with
npm run skill:validate
Validation Checklist
Troubleshooting
| Issue |
Solution |
| Skill not discovered |
Improve description with more keywords and triggers |
| Validation fails on name |
Ensure lowercase, no consecutive hyphens, matches folder |
| Description too short |
Add capabilities, triggers, and keywords |
| Assets not found |
Use relative paths from skill root |
References
1---2name: make-skill-template3description: Create new Agent Skills for GitHub Copilot from prompts or by duplicating this template. Use when asked to "create a skill", "make a new skill", "scaffold a skill", or when building specialized AI capabilities with bundled resources. Generates SKILL.md files with proper frontmatter, directory structure, and optional scripts/references/assets folders.4---5
6# Make Skill Template
7
8A meta-skill for creating new Agent Skills. Use this skill when you need to scaffold a new skill folder, generate a SKILL.md file, or help users understand the Agent Skills specification.
9
10## When to Use This Skill
11
12- User asks to "create a skill", "make a new skill", or "scaffold a skill"
13- User wants to add a specialized capability to their GitHub Copilot setup
14- User needs help structuring a skill with bundled resources
15- User wants to duplicate this template as a starting point
16
17## Prerequisites
18
19- Understanding of what the skill should accomplish
20- A clear, keyword-rich description of capabilities and triggers
21- Knowledge of any bundled resources needed (scripts, references, assets, templates)
22
23## Creating a New Skill
24
25### Step 1: Create the Skill Directory
26
27Create a new folder with a lowercase, hyphenated name:
28
29```
30skills/<skill-name>/
31└── SKILL.md # Required
32```
33
34### Step 2: Generate SKILL.md with Frontmatter
35
36Every skill requires YAML frontmatter with `name` and `description`:
37
38```yaml
39---
40name: <skill-name>
41description: '<What it does>. Use when <specific triggers, scenarios, keywords users might say>.'
42---
43```
44
45#### Frontmatter Field Requirements
46
47| Field | Required | Constraints |
48|-------|----------|-------------|
49| `name` | **Yes** | 1-64 chars, lowercase letters/numbers/hyphens only, must match folder name |
50| `description` | **Yes** | 1-1024 chars, must describe WHAT it does AND WHEN to use it |
51| `license` | No | License name or reference to bundled LICENSE.txt |
52| `compatibility` | No | 1-500 chars, environment requirements if needed |
53| `metadata` | No | Key-value pairs for additional properties |
54| `allowed-tools` | No | Space-delimited list of pre-approved tools (experimental) |
55
56#### Description Best Practices
57
58**CRITICAL**: The `description` is the PRIMARY mechanism for automatic skill discovery. Include:
59
601. **WHAT** the skill does (capabilities)
612. **WHEN** to use it (triggers, scenarios, file types)
623. **Keywords** users might mention in prompts
63
64**Good example:**
65
66```yaml
67description: 'Toolkit for testing local web applications using Playwright. Use when asked to verify frontend functionality, debug UI behavior, capture browser screenshots, or view browser console logs. Supports Chrome, Firefox, and WebKit.'
68```
69
70**Poor example:**
71
72```yaml
73description: 'Web testing helpers'
74```
75
76### Step 3: Write the Skill Body
77
78After the frontmatter, add markdown instructions. Recommended sections:
79
80| Section | Purpose |
81|---------|---------|
82| `# Title` | Brief overview |
83| `## When to Use This Skill` | Reinforces description triggers |
84| `## Prerequisites` | Required tools, dependencies |
85| `## Step-by-Step Workflows` | Numbered steps for tasks |
86| `## Troubleshooting` | Common issues and solutions |
87| `## References` | Links to bundled docs |
88
89### Step 4: Add Optional Directories (If Needed)
90
91| Folder | Purpose | When to Use |
92|--------|---------|-------------|
93| `scripts/` | Executable code (Python, Bash, JS) | Automation that performs operations |
94| `references/` | Documentation agent reads | API references, schemas, guides |
95| `assets/` | Static files used AS-IS | Images, fonts, templates |
96| `templates/` | Starter code agent modifies | Scaffolds to extend |
97
98## Example: Complete Skill Structure
99
100```
101my-awesome-skill/
102├── SKILL.md # Required instructions
103├── LICENSE.txt # Optional license file
104├── scripts/
105│ └── helper.py # Executable automation
106├── references/
107│ ├── api-reference.md # Detailed docs
108│ └── examples.md # Usage examples
109├── assets/
110│ └── diagram.png # Static resources
111└── templates/
112 └── starter.ts # Code scaffold
113```
114
115## Quick Start: Duplicate This Template
116
1171. Copy the `make-skill-template/` folder
1182. Rename to your skill name (lowercase, hyphens)
1193. Update `SKILL.md`:
120 - Change `name:` to match folder name
121 - Write a keyword-rich `description:`
122 - Replace body content with your instructions
1234. Add bundled resources as needed
1245. Validate with `npm run skill:validate`
125
126## Validation Checklist
127
128- [ ] Folder name is lowercase with hyphens
129- [ ] `name` field matches folder name exactly
130- [ ] `description` is 10-1024 characters
131- [ ] `description` explains WHAT and WHEN
132- [ ] `description` is wrapped in single quotes
133- [ ] Body content is under 500 lines
134- [ ] Bundled assets are under 5MB each
135
136## Troubleshooting
137
138| Issue | Solution |
139|-------|----------|
140| Skill not discovered | Improve description with more keywords and triggers |
141| Validation fails on name | Ensure lowercase, no consecutive hyphens, matches folder |
142| Description too short | Add capabilities, triggers, and keywords |
143| Assets not found | Use relative paths from skill root |
144
145## References
146
147- Agent Skills official spec: <https://agentskills.io/specification>