Skip to main content

Using Agent Skills

Agent Skills are self-contained folders with instructions and bundled resources that enhance AI capabilities for specialized tasks. Based on the Agent Skills specification, each skill contains a SKILL.md file with detailed instructions that agents load on-demand.

What are Agent Skills?

Skills differ from agents and instructions by supporting bundled assets (scripts, code samples, reference data) that agents can utilize when performing specialized tasks.
Key Differences:
  • Agents define AI personas with specific tools and behaviors
  • Instructions provide coding standards that apply to file patterns
  • Skills are self-contained folders with instructions + bundled resources
Skills provide progressive disclosure - they’re loaded only when needed for specific tasks, keeping context focused and efficient.

Skill Structure

Each skill is a folder containing:
skills/aspire/
├── SKILL.md              # Main instruction file
├── references/          # Reference documentation
│   ├── cli-reference.md
│   ├── deployment.md
│   └── testing.md
├── scripts/             # Helper scripts
│   └── setup.sh
└── templates/           # Code templates
    └── apphost-template.cs
---
name: skill-name
description: 'Brief description of what the skill does'
---
  • name (required): Lowercase with hyphens, matching folder name, max 64 characters
  • description (required): Wrapped in single quotes, 10-1024 characters
  • Folder name: Must match the name field exactly

Installing Skills

1

Browse skills catalog

Navigate to the skills/ directory in the repository.
2

Download entire folder

Copy the entire skill folder (not just SKILL.md) to your local skills directory.
3

Place in skills directory

Install to one of these locations:
  • Project: .github/skills/skill-name/
  • User: ~/.config/github-copilot/skills/skill-name/

How Skills Work

Skills use progressive disclosure to load resources on-demand:
1

Skill Discovery

Agents discover skills through:
  • Explicit user request (“use the aspire skill”)
  • Automatic detection based on task context
  • Skill catalog lookup
2

Instruction Loading

The agent loads the SKILL.md file, which contains:
  • Overview of skill capabilities
  • When to use the skill
  • References to bundled assets
  • Step-by-step workflows
3

Asset Utilization

As needed, the agent:
  • Reads reference documentation
  • Executes helper scripts
  • Applies code templates
  • Uses sample data

Skill Examples

Here are popular skills from the repository:
Purpose: Aspire distributed-app orchestration
Assets: CLI reference, deployment guides, integration catalog
---
name: aspire
description: 'Aspire skill covering CLI, AppHost orchestration,
  service discovery, integrations, and deployment.'
---

# Aspire Skill

Aspire is a code-first, polyglot toolchain for building
observable, production-ready distributed applications.

## References
- [CLI Reference](references/cli-reference.md)
- [Deployment](references/deployment.md)
- [Testing](references/testing.md)
When to use: Creating, running, debugging, configuring, or deploying Aspire applications.

Bundled Assets

Skills can include various types of assets:
scripts/
├── setup.sh          # Environment setup
├── validate.py       # Validation utilities
└── deploy.ps1        # Deployment automation
Asset files should be reasonably sized (under 5MB per file) and referenced in SKILL.md instructions.

When to Use Skills vs Instructions

  • You need bundled resources (scripts, templates, data)
  • The task is complex and repeatable
  • You want on-demand loading to save context
  • Multiple reference documents are needed
  • The workflow requires helper utilities
Examples:
  • Generating MCP servers (needs templates + SDK docs)
  • Azure resource visualization (needs diagram templates)
  • Dataverse integration (needs code patterns + examples)
  • Applying coding standards to file patterns
  • Enforcing team conventions
  • No bundled assets needed
  • Simple, always-on guidance
Examples:
  • C# naming conventions
  • React component patterns
  • Security best practices

Creating Your Own Skills

To create a skill for your team:
1

Scaffold the skill

# In awesome-copilot repo
npm run skill:create -- --name my-skill
Or manually create the folder structure:
skills/my-skill/
├── SKILL.md
├── references/
├── scripts/
└── templates/
2

Write SKILL.md

---
name: my-skill
description: 'Brief description (10-1024 chars)'
---

# My Skill

## Overview
What this skill does...

## When to Use
Use when the user asks to...

## References
- [Setup Guide](references/setup.md)
- [Examples](references/examples.md)
3

Add bundled assets

  • Reference docs in references/
  • Helper scripts in scripts/
  • Code templates in templates/
  • Sample data in assets/
4

Validate and test

npm run skill:validate
Test with GitHub Copilot by referencing the skill explicitly.

Best Practices

  • SKILL.md should be concise (1-2 pages)
  • Move detailed content to references/
  • Load references on-demand, not all at once
  • Use clear file names (e.g., API-REFERENCE.md, not ref1.md)
  • Each reference should cover one topic
  • Scripts should do one thing well
  • Templates should be minimal but complete
  • Avoid duplicating external documentation
Include clear triggers in SKILL.md:
## When to Use
Use this skill when the user:
- Asks to "create an MCP server"
- Mentions "Model Context Protocol"
- Wants to "build a custom tool provider"
Skills follow agentskills.io/specification:
  • Folder name matches name field
  • Name is lowercase with hyphens
  • Description is 10-1024 characters
  • Assets under 5MB each
  • Executable scripts have proper permissions

Troubleshooting

  • Verify folder name matches name in frontmatter
  • Check SKILL.md has valid frontmatter
  • Ensure folder is in .github/skills/
  • Try explicit skill invocation: “use the X skill”
  • Verify asset paths are relative to SKILL.md
  • Check file exists in the skill folder
  • Make scripts executable: chmod +x script.sh
  • Review file size (must be under 5MB)
  • Use unique skill names across your workspace
  • More specific skill names take precedence
  • Check for duplicate folder names
  • openapi-to-application-code - Generate apps from OpenAPI specs
  • csharp-mcp-server-generator - Generate C# MCP servers
  • python-mcp-server-generator - Generate Python MCP servers
  • multi-stage-dockerfile - Create optimized Dockerfiles

Build docs developers (and LLMs) love