Skip to content

Commit d458dd6

Browse files
authored
Merge branch 'main' into skill-pdftk-server
2 parents 7953993 + 0ac73fd commit d458dd6

File tree

186 files changed

+3617
-6276
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

186 files changed

+3617
-6276
lines changed

.github/copilot-instructions.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,17 @@ The following instructions are only to be applied when performing a code review.
5555
- [ ] Any bundled assets (scripts, templates, data files) are referenced in the SKILL.md instructions.
5656
- [ ] Bundled assets are reasonably sized (under 5MB per file).
5757

58-
## Collection file guide
58+
## Plugin guide
5959

60-
**Only apply to files that end in `.collection.yml`**
60+
**Only apply to directories in the `plugins/` directory**
6161

62-
- [ ] The collection has a `name` field.
63-
- [ ] The collection has a `description` field.
62+
- [ ] The plugin directory contains a `.github/plugin/plugin.json` file.
63+
- [ ] The plugin directory contains a `README.md` file.
64+
- [ ] The plugin.json has a `name` field matching the directory name.
65+
- [ ] The plugin.json has a `description` field.
6466
- [ ] The `description` field is not empty.
65-
- [ ] The collection has a `tags` field.
66-
- [ ] The file name is lower case, with words separated by hyphens.
67-
- [ ] Each item in the collection has a `path` field.
68-
- [ ] Each item in the collection has a `kind` field.
69-
- [ ] The `kind` field value is one of: `prompt`, `instruction`, `agent`, or `skill`.
70-
- [ ] The collection does not include duplicate items.
71-
- [ ] The collection does not reference non-existent files.
72-
- [ ] Each item can have an optional `usage` field describing when to use the item.
67+
- [ ] The directory name is lower case, with words separated by hyphens.
68+
- [ ] If `tags` is present, it is an array of lowercase hyphenated strings.
69+
- [ ] If `items` is present, each item has `path` and `kind` fields.
70+
- [ ] The `kind` field value is one of: `prompt`, `agent`, `instruction`, `skill`, or `hook`.
71+
- [ ] The plugin does not reference non-existent files.

.github/plugin/marketplace.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
{
1414
"name": "awesome-copilot",
1515
"source": "./plugins/awesome-copilot",
16-
"description": "Meta prompts that help you discover and generate curated GitHub Copilot agents, collections, instructions, prompts, and skills.",
16+
"description": "Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills.",
1717
"version": "1.0.0"
1818
},
1919
{
@@ -214,6 +214,12 @@
214214
"description": "Complete toolkit for building Model Context Protocol servers in Ruby using the official MCP Ruby SDK gem with Rails integration support.",
215215
"version": "1.0.0"
216216
},
217+
{
218+
"name": "rug-agentic-workflow",
219+
"source": "./plugins/rug-agentic-workflow",
220+
"description": "Three-agent workflow for orchestrated software delivery with an orchestrator plus implementation and QA subagents.",
221+
"version": "1.0.0"
222+
},
217223
{
218224
"name": "rust-mcp-development",
219225
"source": "./plugins/rust-mcp-development",

.github/pull_request_template.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
- [ ] New instruction file.
2121
- [ ] New prompt file.
2222
- [ ] New agent file.
23-
- [ ] New collection file.
23+
- [ ] New plugin.
2424
- [ ] New skill file.
25-
- [ ] Update to existing instruction, prompt, agent, collection or skill.
25+
- [ ] Update to existing instruction, prompt, agent, plugin, or skill.
2626
- [ ] Other (please specify):
2727

2828
---

.github/workflows/deploy-website.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ on:
1313
- "prompts/**"
1414
- "instructions/**"
1515
- "skills/**"
16-
- "collections/**"
16+
- "plugins/**"
1717
- "cookbook/**"
1818
- "eng/generate-website-data.mjs"
1919
- ".github/workflows/deploy-website.yml"

.github/workflows/validate-readme.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ on:
77
- "instructions/**"
88
- "prompts/**"
99
- "agents/**"
10-
- "collections/**"
1110
- "plugins/**"
1211
- "*.js"
1312
- "README.md"
@@ -34,8 +33,8 @@ jobs:
3433
- name: Install dependencies
3534
run: npm install
3635

37-
- name: Validate collections
38-
run: npm run collection:validate
36+
- name: Validate plugins
37+
run: npm run plugin:validate
3938

4039
- name: Update README.md
4140
run: npm start

AGENTS.md

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom
99
- **Instructions** - Coding standards and best practices applied to specific file patterns
1010
- **Skills** - Self-contained folders with instructions and bundled resources for specialized tasks
1111
- **Hooks** - Automated workflows triggered by specific events during development
12-
- **Collections** - Curated collections organized around specific themes and workflows
12+
- **Plugins** - Installable packages that group related agents, prompts, and skills around specific themes
1313

1414
## Repository Structure
1515

@@ -20,7 +20,7 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom
2020
├── instructions/ # Coding standards and guidelines (.instructions.md files)
2121
├── skills/ # Agent Skills folders (each with SKILL.md and optional bundled assets)
2222
├── hooks/ # Automated workflow hooks (folders with README.md + hooks.json)
23-
├── collections/ # Curated collections of resources (.md files)
23+
├── plugins/ # Installable plugin packages (folders with plugin.json)
2424
├── docs/ # Documentation for different resource types
2525
├── eng/ # Build and automation scripts
2626
└── scripts/ # Utility scripts
@@ -35,14 +35,14 @@ npm ci
3535
# Build the project (generates README.md and marketplace.json)
3636
npm run build
3737

38+
# Validate plugin manifests
39+
npm run plugin:validate
40+
3841
# Generate marketplace.json only
3942
npm run plugin:generate-marketplace
4043

41-
# Validate collection manifests
42-
npm run collection:validate
43-
44-
# Create a new collection
45-
npm run collection:create -- --id <collection-id> --tags <tags>
44+
# Create a new plugin
45+
npm run plugin:create -- --name <plugin-name>
4646

4747
# Validate agent skills
4848
npm run skill:validate
@@ -134,18 +134,18 @@ When adding a new agent, prompt, instruction, skill, hook, or plugin:
134134
6. Verify the skill appears in the generated README
135135

136136
**For Plugins:**
137-
1. Create a new folder in `plugins/` with a descriptive name (lowercase with hyphens)
138-
2. Create `.github/plugin/plugin.json` with metadata (name, description, version)
139-
3. Add agents, prompts, instructions, skills, or hooks to the plugin folder
140-
4. Run `npm run build` to update README.md and marketplace.json
141-
5. Verify the plugin appears in `.github/plugin/marketplace.json`
142-
6. Test plugin installation: `copilot plugin install <plugin-name>@awesome-copilot`
137+
1. Run `npm run plugin:create -- --name <plugin-name>` to scaffold a new plugin
138+
2. Add agents, prompts, skills, or hooks to the plugin folder
139+
3. Edit the generated `plugin.json` with your metadata
140+
4. Run `npm run plugin:validate` to validate the plugin structure
141+
5. Run `npm run build` to update README.md and marketplace.json
142+
6. Verify the plugin appears in `.github/plugin/marketplace.json`
143143

144144
### Testing Instructions
145145

146146
```bash
147147
# Run all validation checks
148-
npm run collection:validate
148+
npm run plugin:validate
149149
npm run skill:validate
150150

151151
# Build and verify README generation
@@ -185,7 +185,7 @@ When creating a pull request:
185185
4. **Build check**: Run `npm run build` before committing to verify README generation
186186
5. **Line endings**: **Always run `bash scripts/fix-line-endings.sh`** to normalize line endings to LF (Unix-style)
187187
6. **Description**: Provide a clear description of what your agent/prompt/instruction does
188-
7. **Testing**: If adding a collection, run `npm run collection:validate` to ensure validity
188+
7. **Testing**: If adding a plugin, run `npm run plugin:validate` to ensure validity
189189

190190
### Pre-commit Checklist
191191

@@ -239,13 +239,17 @@ For hook folders (hooks/*/):
239239
- [ ] Follows [GitHub Copilot hooks specification](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/use-hooks)
240240
- [ ] Optionally includes `tags` array field for categorization
241241

242-
For plugin folders (plugins/*/):
243-
- [ ] Folder contains a `.github/plugin/plugin.json` file with metadata
244-
- [ ] plugin.json has `name` field matching folder name (lowercase with hyphens)
245-
- [ ] plugin.json has non-empty `description` field
246-
- [ ] plugin.json has `version` field (semantic version, e.g., "1.0.0")
247-
- [ ] Folder name is lower case with hyphens
248-
- [ ] Plugin resources (agents, prompts, etc.) follow their respective guidelines
242+
For plugins (plugins/*/):
243+
- [ ] Directory contains a `.github/plugin/plugin.json` file
244+
- [ ] Directory contains a `README.md` file
245+
- [ ] `plugin.json` has `name` field matching the directory name (lowercase with hyphens)
246+
- [ ] `plugin.json` has non-empty `description` field
247+
- [ ] `plugin.json` has `version` field (semantic version, e.g., "1.0.0")
248+
- [ ] Directory name is lower case with hyphens
249+
- [ ] If `tags` is present, it is an array of lowercase hyphenated strings
250+
- [ ] If `items` is present, each item has `path` and `kind` fields
251+
- [ ] The `kind` field value is one of: `prompt`, `agent`, `instruction`, `skill`, or `hook`
252+
- [ ] The plugin does not reference non-existent files
249253
- [ ] Run `npm run build` to verify marketplace.json is updated correctly
250254

251255
## Contributing

CONTRIBUTING.md

Lines changed: 29 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -136,112 +136,49 @@ Skills are self-contained folders in the `skills/` directory that include a `SKI
136136
3. **Add optional assets**: Keep bundled assets reasonably sized (under 5MB each) and reference them from `SKILL.md`
137137
4. **Validate and update docs**: Run `npm run skill:validate` and then `npm run build` to update the generated README tables
138138

139-
### Adding Collections
139+
### Adding Plugins
140140

141-
Collections group related prompts, instructions, agents, and skills around specific themes or workflows, making it easier for users to discover and adopt comprehensive toolkits.
141+
Plugins group related prompts, agents, and skills around specific themes or workflows, making it easy for users to install comprehensive toolkits via GitHub Copilot CLI.
142142

143-
1. **Create your collection manifest**: Add a new `.collection.yml` file in the `collections/` directory
144-
2. **Follow the naming convention**: Use descriptive, lowercase filenames with hyphens (e.g., `python-web-development.collection.yml`)
145-
3. **Reference existing items**: Collections should only reference files that already exist in the repository
146-
4. **Test your collection**: Verify all referenced files exist and work well together
143+
1. **Create your plugin**: Run `npm run plugin:create` to scaffold a new plugin
144+
2. **Follow the naming convention**: Use descriptive, lowercase folder names with hyphens (e.g., `python-web-development`)
145+
3. **Add your content**: Add agents, commands (prompts), and skills to the plugin folder using symlinks to existing repo files
146+
4. **Test your plugin**: Run `npm run plugin:validate` to verify your plugin structure
147147

148-
#### Creating a collection
148+
#### Creating a plugin
149149

150150
```bash
151-
# Using the creation script
152-
node create-collection.js my-collection-id
153-
154-
# Or using VS Code Task: Ctrl+Shift+P > "Tasks: Run Task" > "create-collection"
155-
```
156-
157-
#### Example collection format
158-
159-
```yaml
160-
id: my-collection-id
161-
name: My Collection Name
162-
description: A brief description of what this collection provides and who should use it.
163-
tags: [tag1, tag2, tag3] # Optional discovery tags
164-
items:
165-
- path: prompts/my-prompt.prompt.md
166-
kind: prompt
167-
- path: instructions/my-instructions.instructions.md
168-
kind: instruction
169-
- path: agents/my-custom.agent.md
170-
kind: agent
171-
usage: |
172-
recommended # or "optional" if not essential to the workflow
173-
174-
This agent requires the following instructions/prompts/MCPs:
175-
- Instruction 1
176-
- Prompt 1
177-
- MCP 1
178-
179-
This agent is ideal for...
180-
- Use case 1
181-
- Use case 2
182-
183-
Here is an example of how to use it:
184-
```markdown, task-plan.prompt.md
185-
---
186-
mode: task-planner
187-
title: Plan microsoft fabric realtime intelligence terraform support
188-
---
189-
#file: <file including in chat context>
190-
Do an action to achieve goal.
191-
```
192-
193-
To get the best results, consider...
194-
- Tip 1
195-
- Tip 2
196-
197-
display:
198-
ordering: alpha # or "manual" to preserve order above
199-
show_badge: false # set to true to show collection badge
151+
npm run plugin:create -- --name my-plugin-id
200152
```
201153

202-
For full example of usage checkout edge-ai tasks collection:
203-
- [edge-ai-tasks.collection.yml](./collections/edge-ai-tasks.collection.yml)
204-
- [edge-ai-tasks.md](./collections/edge-ai-tasks.md)
205-
206-
#### Collection Guidelines
207-
208-
- **Focus on workflows**: Group items that work together for specific use cases
209-
- **Reasonable size**: Typically 3-10 items work well
210-
- **Test combinations**: Ensure the items complement each other effectively
211-
- **Clear purpose**: The collection should solve a specific problem or workflow
212-
- **Validate before submitting**: Run `node validate-collections.js` to ensure your manifest is valid
213-
214-
### Working with Plugins
215-
216-
Plugins are installable packages automatically generated from collections. They contain symlinked agents, commands (prompts), and skills from the source collection.
154+
#### Plugin structure
217155

218-
#### Creating a Plugin from a Collection
219-
220-
When you create a new collection, you can generate a corresponding plugin:
221-
222-
```bash
223-
# Migrate a collection to a new plugin (first time only)
224-
npm run plugin:migrate -- --collection <collection-id>
156+
```
157+
plugins/my-plugin-id/
158+
├── .github/plugin/plugin.json # Plugin metadata
159+
├── README.md # Plugin documentation
160+
├── commands/ # Symlinked prompt files
161+
├── agents/ # Symlinked agent files
162+
└── skills/ # Symlinked skill folders
225163
```
226164

227-
#### Updating Plugins After Collection Changes
165+
#### Plugin Guidelines
228166

229-
If you modify a collection (add/remove items, update metadata), refresh the corresponding plugin:
167+
- **Use symlinks**: Plugin content should be symlinks to source files in agents/, prompts/, skills/ directories
168+
- **Valid references**: All items referenced in plugin.json must exist in the repository
169+
- **Clear purpose**: The plugin should solve a specific problem or workflow
170+
- **Validate before submitting**: Run `npm run plugin:validate` to ensure your plugin is valid
230171

231-
```bash
232-
# Refresh a single plugin
233-
npm run plugin:refresh -- --collection <collection-id>
172+
### Working with Plugins
234173

235-
# Refresh all existing plugins
236-
npm run plugin:refresh -- --all
237-
```
174+
Plugins are installable packages that contain symlinked agents, commands (prompts), and skills organized around a specific theme or workflow.
238175

239176
#### Plugin Structure
240177

241178
```plaintext
242-
plugins/<collection-id>/
243-
├── .github/plugin/plugin.json # Plugin metadata (auto-generated)
244-
├── README.md # Plugin documentation (auto-generated)
179+
plugins/<plugin-name>/
180+
├── .github/plugin/plugin.json # Plugin metadata
181+
├── README.md # Plugin documentation
245182
├── agents/ # Symlinks to agent files (.md)
246183
├── commands/ # Symlinks to prompt files (.md)
247184
└── skills/ # Symlinks to skill folders
@@ -251,14 +188,13 @@ plugins/<collection-id>/
251188

252189
- **Symlinks, not copies**: Plugin files are symlinks to the source files, avoiding duplication
253190
- **Instructions excluded**: Instructions are not currently supported in plugins
254-
- **Auto-generated content**: The `plugin.json` and `README.md` are generated from the collection metadata
255-
- **Keep plugins in sync**: After modifying a collection, run `plugin:refresh` to update the plugin
191+
- **Validate before submitting**: Run `npm run plugin:validate` to ensure your plugin is valid
256192

257193
## Submitting Your Contribution
258194

259195
1. **Fork this repository**
260196
2. **Create a new branch** for your contribution
261-
3. **Add your instruction, prompt file, chatmode, or collection** following the guidelines above
197+
3. **Add your instruction, prompt file, chatmode, or plugin** following the guidelines above
262198
4. **Run the update script**: `npm start` to update the README with your new file (make sure you run `npm install` first if you haven't already)
263199
- A GitHub Actions workflow will verify that this step was performed correctly
264200
- If the README.md would be modified by running the script, the PR check will fail with a comment showing the required changes
@@ -324,7 +260,7 @@ We welcome many kinds of contributions, including the custom categories below:
324260
| **Prompts** | Reusable or one-off prompts for GitHub Copilot | ⌨️ |
325261
| **Agents** | Defined GitHub Copilot roles or personalities | 🎭 |
326262
| **Skills** | Specialized knowledge of a task for GitHub Copilot | 🧰 |
327-
| **Collections** | Curated bundles of related prompts, agents, or instructions | 🎁 |
263+
| **Plugins** | Installable packages of related prompts, agents, or skills | 🎁 |
328264

329265
In addition, all standard contribution types supported by [All Contributors](https://allcontributors.org/emoji-key/) are recognized.
330266

0 commit comments

Comments
 (0)