Skip to content

Commit bbb5117

Browse files
authored
Merge pull request #496 from github/digitarald/exotic-raven
New awesome agent primitive
2 parents 8baf6d7 + 9c69496 commit bbb5117

File tree

14 files changed

+1000
-146
lines changed

14 files changed

+1000
-146
lines changed

.github/copilot-instructions.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,19 @@ The following instructions are only to be applied when performing a code review.
3939
- [ ] The file name is lower case, with words separated by hyphens.
4040
- [ ] Encourage the use of `tools`, but it's not required.
4141
- [ ] Strongly encourage the use of `model` to specify the model that the chat mode is optimised for.
42+
43+
## Agent Skills guide
44+
45+
**Only apply to folders in the `skills/` directory**
46+
47+
- [ ] The skill folder contains a `SKILL.md` file.
48+
- [ ] The SKILL.md has markdown front matter.
49+
- [ ] The SKILL.md has a `name` field.
50+
- [ ] The `name` field value is lowercase with words separated by hyphens.
51+
- [ ] The `name` field matches the folder name.
52+
- [ ] The SKILL.md has a `description` field.
53+
- [ ] The `description` field is not empty, at least 10 characters, and maximum 1024 characters.
54+
- [ ] The `description` field value is wrapped in single quotes.
55+
- [ ] The folder name is lower case, with words separated by hyphens.
56+
- [ ] Any bundled assets (scripts, templates, data files) are referenced in the SKILL.md instructions.
57+
- [ ] Bundled assets are reasonably sized (under 5MB per file).

.schemas/collection.schema.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@
5050
"path": {
5151
"type": "string",
5252
"description": "Relative path from repository root to the item file",
53-
"pattern": "^(prompts|instructions|agents)/[^/]+\\.(prompt|instructions|agent)\\.md$",
53+
"pattern": "^(?:skills/[^/]+/SKILL\\.md|(prompts|instructions|agents)/[^/]+\\.(prompt|instructions|agent)\\.md)$",
5454
"minLength": 1
5555
},
5656
"kind": {
5757
"type": "string",
5858
"description": "Type of the item",
59-
"enum": ["prompt", "instruction", "agent"]
59+
"enum": ["prompt", "instruction", "agent", "skill"]
6060
},
6161
"usage": {
6262
"type": "string",

.vscode/tasks.json

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,33 @@
4141
"${input:tags}"
4242
],
4343
"problemMatcher": [],
44-
"group": "build",
44+
"group": "none",
4545
"detail": "Creates a new collection manifest template.",
4646
"dependsOn": "npm install"
47+
},
48+
{
49+
"label": "create-skill",
50+
"type": "shell",
51+
"command": "npm run skill:create",
52+
"args": [
53+
"--name",
54+
"${input:skillName}",
55+
"--description",
56+
"${input:skillDescription}"
57+
],
58+
"problemMatcher": [],
59+
"group": "none",
60+
"detail": "Creates a new skill template.",
61+
"dependsOn": "npm install"
62+
},
63+
{
64+
"label": "validate-skills",
65+
"type": "shell",
66+
"command": "npm run skill:validate",
67+
"problemMatcher": [],
68+
"group": "build",
69+
"detail": "Validates all skill manifest files.",
70+
"dependsOn": "npm install"
4771
}
4872
],
4973
"inputs": [
@@ -58,6 +82,18 @@
5882
"description": "Comma separated list of tags",
5983
"default": "tag1,tag2",
6084
"type": "promptString"
85+
},
86+
{
87+
"id": "skillName",
88+
"description": "Skill name (PascalCase)",
89+
"default": "MySkill",
90+
"type": "promptString"
91+
},
92+
{
93+
"id": "skillDescription",
94+
"description": "Brief description of the skill",
95+
"default": "A brief description of my skill.",
96+
"type": "promptString"
6197
}
6298
]
6399
}

AGENTS.md

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom
77
- **Agents** - Specialized GitHub Copilot agents that integrate with MCP servers
88
- **Prompts** - Task-specific prompts for code generation and problem-solving
99
- **Instructions** - Coding standards and best practices applied to specific file patterns
10+
- **Skills** - Self-contained folders with instructions and bundled resources for specialized tasks
1011
- **Collections** - Curated collections organized around specific themes and workflows
1112

1213
## Repository Structure
@@ -16,6 +17,7 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom
1617
├── agents/ # Custom GitHub Copilot agent definitions (.agent.md files)
1718
├── prompts/ # Task-specific prompts (.prompt.md files)
1819
├── instructions/ # Coding standards and guidelines (.instructions.md files)
20+
├── skills/ # Agent Skills folders (each with SKILL.md and optional bundled assets)
1921
├── collections/ # Curated collections of resources (.md files)
2022
├── docs/ # Documentation for different resource types
2123
├── eng/ # Build and automation scripts
@@ -36,13 +38,19 @@ npm run collection:validate
3638

3739
# Create a new collection
3840
npm run collection:create -- --id <collection-id> --tags <tags>
41+
42+
# Validate agent skills
43+
npm run skill:validate
44+
45+
# Create a new skill
46+
npm run skill:create -- --name <skill-name>
3947
```
4048

4149
## Development Workflow
4250

43-
### Working with Agents, Prompts, and Instructions
51+
### Working with Agents, Prompts, Instructions, and Skills
4452

45-
All agent files (`*.agent.md`), prompt files (`*.prompt.md`), and instruction files (`*.instructions.md`) must include proper markdown front matter:
53+
All agent files (`*.agent.md`), prompt files (`*.prompt.md`), and instruction files (`*.instructions.md`) must include proper markdown front matter. Agent Skills are folders containing a `SKILL.md` file with frontmatter and optional bundled assets:
4654

4755
#### Agent Files (*.agent.md)
4856
- Must have `description` field (wrapped in single quotes)
@@ -62,20 +70,40 @@ All agent files (`*.agent.md`), prompt files (`*.prompt.md`), and instruction fi
6270
- Must have `applyTo` field specifying file patterns (e.g., `'**.js, **.ts'`)
6371
- File names should be lower case with words separated by hyphens
6472

73+
#### Agent Skills (skills/*/SKILL.md)
74+
- Each skill is a folder containing a `SKILL.md` file
75+
- SKILL.md must have `name` field (lowercase with hyphens, matching folder name, max 64 characters)
76+
- SKILL.md must have `description` field (wrapped in single quotes, 10-1024 characters)
77+
- Folder names should be lower case with words separated by hyphens
78+
- Skills can include bundled assets (scripts, templates, data files)
79+
- Bundled assets should be referenced in the SKILL.md instructions
80+
- Asset files should be reasonably sized (under 5MB per file)
81+
- Skills follow the [Agent Skills specification](https://agentskills.io/specification)
82+
6583
### Adding New Resources
6684

67-
When adding a new agent, prompt, or instruction file:
85+
When adding a new agent, prompt, instruction, or skill:
6886

87+
**For Agents, Prompts, and Instructions:**
6988
1. Create the file with proper front matter
7089
2. Add the file to the appropriate directory
7190
3. Update the README.md by running: `npm run build`
7291
4. Verify the resource appears in the generated README
7392

93+
**For Skills:**
94+
1. Run `npm run skill:create` to scaffold a new skill folder
95+
2. Edit the generated SKILL.md file with your instructions
96+
3. Add any bundled assets (scripts, templates, data) to the skill folder
97+
4. Run `npm run skill:validate` to validate the skill structure
98+
5. Update the README.md by running: `npm run build`
99+
6. Verify the skill appears in the generated README
100+
74101
### Testing Instructions
75102

76103
```bash
77104
# Run all validation checks
78105
npm run collection:validate
106+
npm run skill:validate
79107

80108
# Build and verify README generation
81109
npm run build
@@ -148,6 +176,15 @@ For agent files (*.agent.md):
148176
- [ ] Includes `model` field (strongly recommended)
149177
- [ ] Considers using `tools` field
150178

179+
For skills (skills/*/):
180+
- [ ] Folder contains a SKILL.md file
181+
- [ ] SKILL.md has markdown front matter
182+
- [ ] Has `name` field matching folder name (lowercase with hyphens, max 64 characters)
183+
- [ ] Has non-empty `description` field wrapped in single quotes (10-1024 characters)
184+
- [ ] Folder name is lower case with hyphens
185+
- [ ] Any bundled assets are referenced in SKILL.md
186+
- [ ] Bundled assets are under 5MB per file
187+
151188
## Contributing
152189

153190
This is a community-driven project. Contributions are welcome! Please see:

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ This repository provides a comprehensive toolkit for enhancing GitHub Copilot wi
1414
- **👉 [Awesome Agents](docs/README.agents.md)** - Specialized GitHub Copilot agents that integrate with MCP servers to provide enhanced capabilities for specific workflows and tools
1515
- **👉 [Awesome Prompts](docs/README.prompts.md)** - Focused, task-specific prompts for generating code, documentation, and solving specific problems
1616
- **👉 [Awesome Instructions](docs/README.instructions.md)** - Comprehensive coding standards and best practices that apply to specific file patterns or entire projects
17+
- **👉 [Awesome Skills](docs/README.skills.md)** - Self-contained folders with instructions and bundled resources that enhance AI capabilities for specialized tasks
1718
- **👉 [Awesome Collections](docs/README.collections.md)** - Curated collections of related prompts, instructions, and chat modes organized around specific themes and workflows
1819

1920
## 🌟 Featured Collections

docs/README.skills.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# 🎯 Agent Skills
2+
3+
Agent Skills are self-contained folders with instructions and bundled resources that enhance AI capabilities for specialized tasks. Based on the [Agent Skills specification](https://agentskills.io/specification), each skill contains a `SKILL.md` file with detailed instructions that agents load on-demand.
4+
5+
Skills differ from other primitives by supporting bundled assets (scripts, code samples, reference data) that agents can utilize when performing specialized tasks.
6+
### How to Use Agent Skills
7+
8+
**What's Included:**
9+
- Each skill is a folder containing a `SKILL.md` instruction file
10+
- Skills may include helper scripts, code templates, or reference data
11+
- Skills follow the Agent Skills specification for maximum compatibility
12+
13+
**When to Use:**
14+
- Skills are ideal for complex, repeatable workflows that benefit from bundled resources
15+
- Use skills when you need code templates, helper utilities, or reference data alongside instructions
16+
- Skills provide progressive disclosure - loaded only when needed for specific tasks
17+
18+
**Usage:**
19+
- Browse the skills table below to find relevant capabilities
20+
- Copy the skill folder to your local skills directory
21+
- Reference skills in your prompts or let the agent discover them automatically
22+
23+
| Name | Description | Bundled Assets |
24+
| ---- | ----------- | -------------- |
25+
| [webapp-testing](../skills/webapp-testing/SKILL.md) | Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs. | `test-helper.js` |

eng/constants.mjs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,29 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
7777
- Access installed agents through the VS Code Chat interface, assign them in CCA, or through Copilot CLI (coming soon)
7878
- Agents will have access to tools from configured MCP servers
7979
- Follow agent-specific instructions for optimal usage`,
80+
81+
skillsSection: `## 🎯 Agent Skills
82+
83+
Agent Skills are self-contained folders with instructions and bundled resources that enhance AI capabilities for specialized tasks. Based on the [Agent Skills specification](https://agentskills.io/specification), each skill contains a \`SKILL.md\` file with detailed instructions that agents load on-demand.
84+
85+
Skills differ from other primitives by supporting bundled assets (scripts, code samples, reference data) that agents can utilize when performing specialized tasks.`,
86+
87+
skillsUsage: `### How to Use Agent Skills
88+
89+
**What's Included:**
90+
- Each skill is a folder containing a \`SKILL.md\` instruction file
91+
- Skills may include helper scripts, code templates, or reference data
92+
- Skills follow the Agent Skills specification for maximum compatibility
93+
94+
**When to Use:**
95+
- Skills are ideal for complex, repeatable workflows that benefit from bundled resources
96+
- Use skills when you need code templates, helper utilities, or reference data alongside instructions
97+
- Skills provide progressive disclosure - loaded only when needed for specific tasks
98+
99+
**Usage:**
100+
- Browse the skills table below to find relevant capabilities
101+
- Copy the skill folder to your local skills directory
102+
- Reference skills in your prompts or let the agent discover them automatically`,
80103
};
81104

82105
const vscodeInstallImage =
@@ -98,9 +121,16 @@ const ROOT_FOLDER = path.join(__dirname, "..");
98121
const INSTRUCTIONS_DIR = path.join(ROOT_FOLDER, "instructions");
99122
const PROMPTS_DIR = path.join(ROOT_FOLDER, "prompts");
100123
const AGENTS_DIR = path.join(ROOT_FOLDER, "agents");
124+
const SKILLS_DIR = path.join(ROOT_FOLDER, "skills");
101125
const COLLECTIONS_DIR = path.join(ROOT_FOLDER, "collections");
102126
const MAX_COLLECTION_ITEMS = 50;
103127

128+
// Agent Skills validation constants
129+
const SKILL_NAME_MIN_LENGTH = 1;
130+
const SKILL_NAME_MAX_LENGTH = 64;
131+
const SKILL_DESCRIPTION_MIN_LENGTH = 10;
132+
const SKILL_DESCRIPTION_MAX_LENGTH = 1024;
133+
104134
const DOCS_DIR = path.join(ROOT_FOLDER, "docs");
105135

106136
export {
@@ -113,8 +143,13 @@ export {
113143
INSTRUCTIONS_DIR,
114144
PROMPTS_DIR,
115145
AGENTS_DIR,
146+
SKILLS_DIR,
116147
COLLECTIONS_DIR,
117148
MAX_COLLECTION_ITEMS,
149+
SKILL_NAME_MIN_LENGTH,
150+
SKILL_NAME_MAX_LENGTH,
151+
SKILL_DESCRIPTION_MIN_LENGTH,
152+
SKILL_DESCRIPTION_MAX_LENGTH,
118153
DOCS_DIR,
119154
};
120155

0 commit comments

Comments
 (0)