Skip to content

Commit 75520f3

Browse files
authored
Merge pull request #715 from github/copilot/update-marketplace-json-file
Automate marketplace.json generation from plugin directories
2 parents b7c740b + c8c9078 commit 75520f3

File tree

6 files changed

+203
-31
lines changed

6 files changed

+203
-31
lines changed

.github/plugin/marketplace.json

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
{
2020
"name": "azure-cloud-development",
2121
"source": "./plugins/azure-cloud-development",
22-
"description": "Azure cloud development tools including Infrastructure as Code, architecture patterns, and cost optimization.",
22+
"description": "Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications.",
2323
"version": "1.0.0"
2424
},
2525
{
@@ -34,10 +34,16 @@
3434
"description": "Tools for REPL-first Clojure workflows featuring Clojure instructions, the interactive programming chat mode and supporting guidance.",
3535
"version": "1.0.0"
3636
},
37+
{
38+
"name": "context-engineering",
39+
"source": "./plugins/context-engineering",
40+
"description": "Tools and techniques for maximizing GitHub Copilot effectiveness through better context management. Includes guidelines for structuring code, an agent for planning multi-file changes, and prompts for context-aware development.",
41+
"version": "1.0.0"
42+
},
3743
{
3844
"name": "copilot-sdk",
3945
"source": "./plugins/copilot-sdk",
40-
"description": "Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python.",
46+
"description": "Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python to help you create AI-powered applications.",
4147
"version": "1.0.0"
4248
},
4349
{
@@ -49,7 +55,7 @@
4955
{
5056
"name": "csharp-mcp-development",
5157
"source": "./plugins/csharp-mcp-development",
52-
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in C# using the official SDK.",
58+
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in C# using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance.",
5359
"version": "1.0.0"
5460
},
5561
{
@@ -61,7 +67,7 @@
6167
{
6268
"name": "dataverse-sdk-for-python",
6369
"source": "./plugins/dataverse-sdk-for-python",
64-
"description": "Comprehensive collection for building production-ready Python integrations with Microsoft Dataverse.",
70+
"description": "Comprehensive collection for building production-ready Python integrations with Microsoft Dataverse. Includes official documentation, best practices, advanced features, file operations, and code generation prompts.",
6571
"version": "1.0.0"
6672
},
6773
{
@@ -82,10 +88,16 @@
8288
"description": "Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks.",
8389
"version": "1.0.0"
8490
},
91+
{
92+
"name": "gem-team",
93+
"source": "./plugins/gem-team",
94+
"description": "A modular multi-agent team for complex project execution with DAG-based planning, parallel execution, TDD verification, and automated testing.",
95+
"version": "1.0.0"
96+
},
8597
{
8698
"name": "go-mcp-development",
8799
"source": "./plugins/go-mcp-development",
88-
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk.",
100+
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance.",
89101
"version": "1.0.0"
90102
},
91103
{
@@ -103,91 +115,97 @@
103115
{
104116
"name": "kotlin-mcp-development",
105117
"source": "./plugins/kotlin-mcp-development",
106-
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library.",
118+
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance.",
107119
"version": "1.0.0"
108120
},
109121
{
110122
"name": "mcp-m365-copilot",
111123
"source": "./plugins/mcp-m365-copilot",
112-
"description": "Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot.",
124+
"description": "Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot",
113125
"version": "1.0.0"
114126
},
115127
{
116128
"name": "openapi-to-application-csharp-dotnet",
117129
"source": "./plugins/openapi-to-application-csharp-dotnet",
118-
"description": "Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, and entity framework integration.",
130+
"description": "Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, entity framework integration, and C# best practices.",
119131
"version": "1.0.0"
120132
},
121133
{
122134
"name": "openapi-to-application-go",
123135
"source": "./plugins/openapi-to-application-go",
124-
"description": "Generate production-ready Go applications from OpenAPI specifications. Includes project scaffolding, handler generation, middleware setup, and Go best practices.",
136+
"description": "Generate production-ready Go applications from OpenAPI specifications. Includes project scaffolding, handler generation, middleware setup, and Go best practices for REST APIs.",
125137
"version": "1.0.0"
126138
},
127139
{
128140
"name": "openapi-to-application-java-spring-boot",
129141
"source": "./plugins/openapi-to-application-java-spring-boot",
130-
"description": "Generate production-ready Spring Boot applications from OpenAPI specifications. Includes project scaffolding, REST controller generation, and service layer organization.",
142+
"description": "Generate production-ready Spring Boot applications from OpenAPI specifications. Includes project scaffolding, REST controller generation, service layer organization, and Spring Boot best practices.",
131143
"version": "1.0.0"
132144
},
133145
{
134146
"name": "openapi-to-application-nodejs-nestjs",
135147
"source": "./plugins/openapi-to-application-nodejs-nestjs",
136-
"description": "Generate production-ready NestJS applications from OpenAPI specifications. Includes project scaffolding, controller and service generation, and TypeScript best practices.",
148+
"description": "Generate production-ready NestJS applications from OpenAPI specifications. Includes project scaffolding, controller and service generation, TypeScript best practices, and enterprise patterns.",
137149
"version": "1.0.0"
138150
},
139151
{
140152
"name": "openapi-to-application-python-fastapi",
141153
"source": "./plugins/openapi-to-application-python-fastapi",
142-
"description": "Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, and dependency injection.",
154+
"description": "Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, dependency injection, and Python best practices for async APIs.",
155+
"version": "1.0.0"
156+
},
157+
{
158+
"name": "ospo-sponsorship",
159+
"source": "./plugins/ospo-sponsorship",
160+
"description": "Tools and resources for Open Source Program Offices (OSPOs) to identify, evaluate, and manage sponsorship of open source dependencies through GitHub Sponsors, Open Collective, and other funding platforms.",
143161
"version": "1.0.0"
144162
},
145163
{
146164
"name": "partners",
147165
"source": "./plugins/partners",
148-
"description": "Custom agents that have been created by GitHub partners.",
166+
"description": "Custom agents that have been created by GitHub partners",
149167
"version": "1.0.0"
150168
},
151169
{
152170
"name": "pcf-development",
153171
"source": "./plugins/pcf-development",
154-
"description": "Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps.",
172+
"description": "Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps",
155173
"version": "1.0.0"
156174
},
157175
{
158176
"name": "php-mcp-development",
159177
"source": "./plugins/php-mcp-development",
160-
"description": "Comprehensive resources for building Model Context Protocol servers using the official PHP SDK with attribute-based discovery.",
178+
"description": "Comprehensive resources for building Model Context Protocol servers using the official PHP SDK with attribute-based discovery, including best practices, project generation, and expert assistance",
161179
"version": "1.0.0"
162180
},
163181
{
164182
"name": "power-apps-code-apps",
165183
"source": "./plugins/power-apps-code-apps",
166-
"description": "Complete toolkit for Power Apps Code Apps development including project scaffolding, development standards, and expert guidance.",
184+
"description": "Complete toolkit for Power Apps Code Apps development including project scaffolding, development standards, and expert guidance for building code-first applications with Power Platform integration.",
167185
"version": "1.0.0"
168186
},
169187
{
170188
"name": "power-bi-development",
171189
"source": "./plugins/power-bi-development",
172-
"description": "Comprehensive Power BI development resources including data modeling, DAX optimization, performance tuning, and visualization design.",
190+
"description": "Comprehensive Power BI development resources including data modeling, DAX optimization, performance tuning, visualization design, security best practices, and DevOps/ALM guidance for building enterprise-grade Power BI solutions.",
173191
"version": "1.0.0"
174192
},
175193
{
176194
"name": "power-platform-mcp-connector-development",
177195
"source": "./plugins/power-platform-mcp-connector-development",
178-
"description": "Complete toolkit for developing Power Platform custom connectors with Model Context Protocol integration for Microsoft Copilot Studio.",
196+
"description": "Complete toolkit for developing Power Platform custom connectors with Model Context Protocol integration for Microsoft Copilot Studio",
179197
"version": "1.0.0"
180198
},
181199
{
182200
"name": "project-planning",
183201
"source": "./plugins/project-planning",
184-
"description": "Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization.",
202+
"description": "Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams.",
185203
"version": "1.0.0"
186204
},
187205
{
188206
"name": "python-mcp-development",
189207
"source": "./plugins/python-mcp-development",
190-
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP.",
208+
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance.",
191209
"version": "1.0.0"
192210
},
193211
{
@@ -199,13 +217,13 @@
199217
{
200218
"name": "rust-mcp-development",
201219
"source": "./plugins/rust-mcp-development",
202-
"description": "Build high-performance Model Context Protocol servers in Rust using the official rmcp SDK with async/await and procedural macros.",
220+
"description": "Build high-performance Model Context Protocol servers in Rust using the official rmcp SDK with async/await, procedural macros, and type-safe implementations.",
203221
"version": "1.0.0"
204222
},
205223
{
206224
"name": "security-best-practices",
207225
"source": "./plugins/security-best-practices",
208-
"description": "Security frameworks, accessibility guidelines, performance optimization, and code quality best practices.",
226+
"description": "Security frameworks, accessibility guidelines, performance optimization, and code quality best practices for building secure, maintainable, and high-performance applications.",
209227
"version": "1.0.0"
210228
},
211229
{
@@ -217,7 +235,7 @@
217235
{
218236
"name": "structured-autonomy",
219237
"source": "./plugins/structured-autonomy",
220-
"description": "Premium planning, thrifty implementation.",
238+
"description": "Premium planning, thrifty implementation",
221239
"version": "1.0.0"
222240
},
223241
{
@@ -229,25 +247,25 @@
229247
{
230248
"name": "technical-spike",
231249
"source": "./plugins/technical-spike",
232-
"description": "Tools for creation, management and research of technical spikes to reduce unknowns and assumptions before specification and implementation.",
250+
"description": "Tools for creation, management and research of technical spikes to reduce unknowns and assumptions before proceeding to specification and implementation of solutions.",
233251
"version": "1.0.0"
234252
},
235253
{
236254
"name": "testing-automation",
237255
"source": "./plugins/testing-automation",
238-
"description": "Comprehensive collection for writing tests, test automation, and TDD including unit tests, integration tests, and end-to-end testing.",
256+
"description": "Comprehensive collection for writing tests, test automation, and test-driven development including unit tests, integration tests, and end-to-end testing strategies.",
239257
"version": "1.0.0"
240258
},
241259
{
242260
"name": "typescript-mcp-development",
243261
"source": "./plugins/typescript-mcp-development",
244-
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in TypeScript/Node.js using the official SDK.",
262+
"description": "Complete toolkit for building Model Context Protocol (MCP) servers in TypeScript/Node.js using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance.",
245263
"version": "1.0.0"
246264
},
247265
{
248266
"name": "typespec-m365-copilot",
249267
"source": "./plugins/typespec-m365-copilot",
250-
"description": "Comprehensive collection of prompts, instructions, and resources for building declarative agents and API plugins using TypeSpec for Microsoft 365 Copilot.",
268+
"description": "Comprehensive collection of prompts, instructions, and resources for building declarative agents and API plugins using TypeSpec for Microsoft 365 Copilot extensibility.",
251269
"version": "1.0.0"
252270
}
253271
]

.github/workflows/validate-readme.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88
- "prompts/**"
99
- "agents/**"
1010
- "collections/**"
11+
- "plugins/**"
1112
- "*.js"
1213
- "README.md"
1314
- "docs/**"

AGENTS.md

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,12 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom
3232
# Install dependencies
3333
npm ci
3434

35-
# Build the project (generates README.md)
35+
# Build the project (generates README.md and marketplace.json)
3636
npm run build
3737

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

@@ -93,9 +96,18 @@ All agent files (`*.agent.md`), prompt files (`*.prompt.md`), and instruction fi
9396
- Follow the [GitHub Copilot hooks specification](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/use-hooks)
9497
- Optionally includes `tags` field for categorization
9598

99+
#### Plugin Folders (plugins/*)
100+
- Each plugin is a folder containing a `.github/plugin/plugin.json` file with metadata
101+
- plugin.json must have `name` field (matching the folder name)
102+
- plugin.json must have `description` field (describing the plugin's purpose)
103+
- plugin.json must have `version` field (semantic version, e.g., "1.0.0")
104+
- Plugin folders can contain any combination of agents, prompts, instructions, skills, and hooks
105+
- The `marketplace.json` file is automatically generated from all plugins during build
106+
- Plugins are discoverable and installable via GitHub Copilot CLI
107+
96108
### Adding New Resources
97109

98-
When adding a new agent, prompt, instruction, skill, or hook:
110+
When adding a new agent, prompt, instruction, skill, hook, or plugin:
99111

100112
**For Agents, Prompts, and Instructions:**
101113
1. Create the file with proper front matter
@@ -121,6 +133,14 @@ When adding a new agent, prompt, instruction, skill, or hook:
121133
5. Update the README.md by running: `npm run build`
122134
6. Verify the skill appears in the generated README
123135

136+
**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`
143+
124144
### Testing Instructions
125145

126146
```bash
@@ -219,6 +239,15 @@ For hook folders (hooks/*/):
219239
- [ ] Follows [GitHub Copilot hooks specification](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/use-hooks)
220240
- [ ] Optionally includes `tags` array field for categorization
221241

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
249+
- [ ] Run `npm run build` to verify marketplace.json is updated correctly
250+
222251
## Contributing
223252

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

eng/README.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,30 @@
11
# Contributor Reporting (Maintainers) 🚧
22

3-
This directory contains a lightweight helper to generate human-readable reports about missing contributors.
3+
This directory contains build scripts and utilities for maintaining the repository.
4+
5+
## Build Scripts
6+
7+
### `update-readme.mjs`
8+
Generates the main README.md and documentation files from the repository content (agents, prompts, instructions, skills, hooks, collections).
9+
10+
### `generate-marketplace.mjs`
11+
Automatically generates `.github/plugin/marketplace.json` from all plugin directories in the `plugins/` folder. This file is used by the GitHub Copilot CLI to discover and install plugins from this repository.
12+
13+
**How it works:**
14+
- Scans all directories in `plugins/`
15+
- Reads each plugin's `.github/plugin/plugin.json` for metadata
16+
- Generates a consolidated `marketplace.json` with all available plugins
17+
- Runs automatically as part of `npm run build`
18+
19+
**To run manually:**
20+
```bash
21+
npm run plugin:generate-marketplace
22+
```
23+
24+
### `generate-website-data.mjs`
25+
Generates JSON data files for the website from repository content.
26+
27+
## Contributor Tools
428

529
- `contributor-report.mjs` — generates a markdown report of merged PRs for missing contributors (includes shared helpers).
630
- `add-missing-contributors.mjs` — on-demand maintainer script to automatically add missing contributors to `.all-contributorsrc` (infers contribution types from merged PR files, then runs the all-contributors CLI).

0 commit comments

Comments
 (0)