home / skills / github / awesome-copilot / make-skill-template

make-skill-template skill

/skills/make-skill-template

This skill scaffolds a new GitHub Copilot Agent Skill by generating a SKILL.md with frontmatter and optional resources based on prompts.

npx playbooks add skill github/awesome-copilot --skill make-skill-template

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

Files (1)
SKILL.md
5.2 KB
---
name: make-skill-template
description: '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.'
---

# 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`:

```yaml
---
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:

1. **WHAT** the skill does (capabilities)
2. **WHEN** to use it (triggers, scenarios, file types)
3. **Keywords** users might mention in prompts

**Good example:**

```yaml
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:**

```yaml
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

1. Copy the `make-skill-template/` folder
2. Rename to your skill name (lowercase, hyphens)
3. Update `SKILL.md`:
   - Change `name:` to match folder name
   - Write a keyword-rich `description:`
   - Replace body content with your instructions
4. Add bundled resources as needed
5. Validate with `npm run skill:validate`

## Validation Checklist

- [ ] Folder name is lowercase with hyphens
- [ ] `name` field matches folder name exactly
- [ ] `description` is 10-1024 characters
- [ ] `description` explains WHAT and WHEN
- [ ] `description` is wrapped in single quotes
- [ ] Body content is under 500 lines
- [ ] Bundled assets are under 5MB each

## 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

- Agent Skills official spec: <https://agentskills.io/specification>

Overview

This skill scaffolds new Agent Skills for GitHub Copilot from prompts or by duplicating a template. It generates a complete skill folder with a required manifest, frontmatter, recommended structure, and optional scripts/references/assets folders to bundle resources and automation.

How this skill works

Provide the desired skill name, short keyword-rich description, and capabilities; the skill then creates a folder named with lowercase hyphens and a manifest containing required frontmatter fields. It also offers recommended sections and optional directories (scripts, references, assets, templates), plus a validation checklist and quick-start steps to finalize the skill.

When to use it

  • User asks to create a new Agent Skill, scaffold a skill, or duplicate a template
  • You need to add a specialized capability to a Copilot setup with bundled resources
  • You want a clear manifest and folder layout for automated discovery and validation
  • You need guidance on writing a description that drives automatic skill discovery
  • You plan to include automation scripts, reference docs, or starter templates

Best practices

  • Choose a lowercase, hyphen-separated folder name that matches the manifest name exactly
  • Write a description that states WHAT the skill does and WHEN to use it, with relevant keywords
  • Keep manifest fields concise and conform to length and character constraints
  • Bundle executable scripts in scripts/, documentation in references/, static files in assets/, and starter code in templates/
  • Run validation after edits to catch name, description, and size issues

Example use cases

  • Create a web-testing skill that includes Playwright scripts and browser debug instructions
  • Scaffold a data-cleaning skill with Python helpers in scripts/ and schema docs in references/
  • Duplicate the template to build a specialized linter or code-review assistant with templates/
  • Package a design asset skill that ships icons and fonts in assets/ for consistent UI tasks

FAQ

What fields are required in the manifest?

Provide a name (1–64 chars, lowercase letters/numbers/hyphens) and a description (10–1024 chars) that explains what the skill does and when to use it.

How should I format the description for discovery?

Include WHAT the skill does, WHEN to use it (triggers, scenarios, file types), and likely user keywords to improve automatic discovery.