Skip to content
Merged
4 changes: 4 additions & 0 deletions .github/workflows/validate-readme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
- "instructions/**"
- "prompts/**"
- "chatmodes/**"
- "collections/**"
- "*.js"

jobs:
Expand All @@ -26,6 +27,9 @@ jobs:
with:
node-version: "20"

- name: Validate collections
run: node validate-collections.js

- name: Update README.md
run: node update-readme.js

Expand Down
84 changes: 84 additions & 0 deletions .schemas/collection.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Collection Manifest",
"description": "Schema for awesome-copilot collection manifest files",
"type": "object",
"required": ["id", "name", "description", "items"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the collection",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"maxLength": 50
},
"name": {
"type": "string",
"description": "Display name for the collection",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"description": "Description of what this collection contains",
"minLength": 1,
"maxLength": 500
},
"tags": {
"type": "array",
"description": "Optional tags for discovery",
"items": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"maxLength": 30
},
"uniqueItems": true,
"maxItems": 10
},
"items": {
"type": "array",
"description": "List of items in this collection",
"minItems": 1,
"maxItems": 50,
"items": {
"type": "object",
"required": ["path", "kind"],
"additionalProperties": false,
"properties": {
"path": {
"type": "string",
"description": "Relative path from repository root to the item file",
"pattern": "^(prompts|instructions|chatmodes)\/[^\/]+\\.(prompt|instructions|chatmode)\\.md$",
"minLength": 1
},
"kind": {
"type": "string",
"description": "Type of the item",
"enum": ["prompt", "instruction", "chat-mode"]
}
}
},
"uniqueItems": true
},
"display": {
"type": "object",
"description": "Optional display settings for the collection",
"additionalProperties": false,
"properties": {
"ordering": {
"type": "string",
"description": "How to order items in the collection",
"enum": ["manual", "alpha"],
"default": "alpha"
},
"show_badge": {
"type": "boolean",
"description": "Whether to show collection badge on items",
"default": false
}
}
}
}
}
25 changes: 25 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,31 @@
"isDefault": true
},
"detail": "Generates the README.md file using update-readme.js script."
},
{
"label": "validate-collections",
"type": "shell",
"command": "node validate-collections.js",
"problemMatcher": [],
"group": "build",
"detail": "Validates all collection manifest files."
},
{
"label": "create-collection",
"type": "shell",
"command": "${workspaceFolder}/create-collection.js",
"args": ["${input:collectionId}"],
"problemMatcher": [],
"group": "build",
"detail": "Creates a new collection manifest template."
}
],
"inputs": [
{
"id": "collectionId",
"description": "Collection ID (lowercase, hyphen-separated)",
"default": "my-collection",
"type": "promptString"
}
]
}
42 changes: 42 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,48 @@ You are an expert [domain/role] with deep knowledge in [specific areas].
- [Best practices to follow]
```

### Adding Collections

Collections group related prompts, instructions, and chat modes around specific themes or workflows, making it easier for users to discover and adopt comprehensive toolkits.

1. **Create your collection manifest**: Add a new `.collection.yml` file in the `collections/` directory
2. **Follow the naming convention**: Use descriptive, lowercase filenames with hyphens (e.g., `python-web-development.collection.yml`)
3. **Reference existing items**: Collections should only reference files that already exist in the repository
4. **Test your collection**: Verify all referenced files exist and work well together

#### Creating a collection:
```bash
# Using the creation script
node create-collection.js my-collection-id

# Or using VS Code Task: Ctrl+Shift+P > "Tasks: Run Task" > "create-collection"
```

#### Example collection format:
```yaml
id: my-collection-id
name: My Collection Name
description: A brief description of what this collection provides and who should use it.
tags: [tag1, tag2, tag3] # Optional discovery tags
items:
- path: prompts/my-prompt.prompt.md
kind: prompt
- path: instructions/my-instructions.instructions.md
kind: instruction
- path: chatmodes/my-chatmode.chatmode.md
kind: chat-mode
display:
ordering: alpha # or "manual" to preserve order above
show_badge: false # set to true to show collection badge
```
#### Collection Guidelines:
- **Focus on workflows**: Group items that work together for specific use cases
- **Reasonable size**: Typically 3-10 items work well
- **Test combinations**: Ensure the items complement each other effectively
- **Clear purpose**: The collection should solve a specific problem or workflow
- **Validate before submitting**: Run `node validate-collections.js` to ensure your manifest is valid

## Submitting Your Contribution

1. **Fork this repository**
Expand Down
19 changes: 19 additions & 0 deletions README.collections.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 📦 Collections

Curated collections of related prompts, instructions, and chat modes organized around specific themes, workflows, or use cases.
### How to Use Collections

**Browse Collections:**
- Explore themed collections that group related customizations
- Each collection includes prompts, instructions, and chat modes for specific workflows
- Collections make it easy to adopt comprehensive toolkits for particular scenarios

**Install Items:**
- Click install buttons for individual items within collections
- Or browse to the individual files to copy content manually
- Collections help you discover related customizations you might have missed

| Name | Description | Items | Tags |
| ---- | ----------- | ----- | ---- |
| [C# .NET Development](collections/csharp-dotnet-development.md) | Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices. | 7 items | csharp, dotnet, aspnet, testing |
| [DevOps On-Call](collections/devops-oncall.md) | A focused set of prompts, instructions, and a chat mode to help triage incidents and respond quickly with DevOps tools and Azure resources. | 5 items | devops, incident-response, oncall, azure |
1 change: 1 addition & 0 deletions README.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
| [Blazor](instructions/blazor.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fblazor.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fblazor.instructions.md) | Blazor component and application patterns |
| [Clojure Memory](instructions/clojure-memory.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fclojure-memory.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fclojure-memory.instructions.md) | Things agents tend to forget or get wrong when they are working with Clojure projects. |
| [Cmake Vcpkg](instructions/cmake-vcpkg.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcmake-vcpkg.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcmake-vcpkg.instructions.md) | C++ project configuration and package management |
| [Collections Development](instructions/collections.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcollections.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcollections.instructions.md) | Guidelines for creating and managing awesome-copilot collections |
| [Containerization & Docker Best Practices](instructions/containerization-docker-best-practices.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcontainerization-docker-best-practices.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcontainerization-docker-best-practices.instructions.md) | Comprehensive best practices for creating optimized, secure, and efficient Docker images and managing containers. Covers multi-stage builds, image layer optimization, security scanning, and runtime best practices. |
| [Conventional Commit](instructions/conventional-commit.prompt.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fconventional-commit.prompt.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fconventional-commit.prompt.md) | Prompt and workflow for generating conventional commit messages using a structured XML format. Guides users to create standardized, descriptive commit messages in line with the Conventional Commits specification, including instructions, examples, and validation. |
| [Convert Spring JPA project to Spring Data Cosmos](instructions/convert-jpa-to-spring-data-cosmos.instructions.md)<br />[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fconvert-jpa-to-spring-data-cosmos.instructions.md)<br />[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fconvert-jpa-to-spring-data-cosmos.instructions.md) | Step-by-step guide for converting Spring Boot JPA applications to use Azure Cosmos DB with Spring Data Cosmos |
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ This repository provides a comprehensive toolkit for enhancing GitHub Copilot wi
- **[![Awesome Prompts](https://img.shields.io/badge/Awesome-Prompts-blue?logo=githubcopilot)](README.prompts.md)** - Focused, task-specific prompts for generating code, documentation, and solving specific problems
- **[![Awesome Instructions](https://img.shields.io/badge/Awesome-Instructions-blue?logo=githubcopilot)](README.instructions.md)** - Comprehensive coding standards and best practices that apply to specific file patterns or entire projects
- **[![Awesome Chat Modes](https://img.shields.io/badge/Awesome-Chat_Modes-blue?logo=githubcopilot)](README.chatmodes.md)** - Specialized AI personas and conversation modes for different roles and contexts
- **[![Awesome Collections](https://img.shields.io/badge/Awesome-Collections-blue?logo=githubcopilot)](README.collections.md)** - Curated collections of related prompts, instructions, and chat modes organized around specific themes and workflows

## MCP Server

Expand Down Expand Up @@ -76,12 +77,13 @@ We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.
├── prompts/ # Task-specific prompts (.prompt.md)
├── instructions/ # Coding standards and best practices (.instructions.md)
├── chatmodes/ # AI personas and specialized modes (.chatmode.md)
├── collections/ # Curated collections of related items (.collection.yml)
└── scripts/ # Utility scripts for maintenance
```

## 🌟 Getting Started

1. **Browse the Collections**: Check out our comprehensive lists of [prompts](README.prompts.md), [instructions](README.instructions.md), and [chat modes](README.chatmodes.md).
1. **Browse the Collections**: Check out our comprehensive lists of [collections](README.collections.md), [prompts](README.prompts.md), [instructions](README.instructions.md), and [chat modes](README.chatmodes.md).
2. **Add to your editor**: Click the "Install" button to install to VS Code, or copy the file contents for other editors.
3. **Start Using**: Copy prompts to use with `/` commands, let instructions enhance your coding experience, or activate chat modes for specialized assistance.

Expand Down
81 changes: 81 additions & 0 deletions collections/TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Collections Template

Use this template to create a new collection of related prompts, instructions, and chat modes.

## Basic Template

```yaml
id: my-collection-id
name: My Collection Name
description: A brief description of what this collection provides and who should use it.
tags: [tag1, tag2, tag3] # Optional discovery tags
items:
- path: prompts/my-prompt.prompt.md
kind: prompt
- path: instructions/my-instructions.instructions.md
kind: instruction
- path: chatmodes/my-chatmode.chatmode.md
kind: chat-mode
display:
ordering: alpha # or "manual" to preserve order above
show_badge: false # set to true to show collection badge
```

## Field Descriptions

- **id**: Unique identifier using lowercase letters, numbers, and hyphens only
- **name**: Display name for the collection
- **description**: Brief explanation of the collection's purpose (1-500 characters)
- **tags**: Optional array of discovery tags (max 10, each 1-30 characters)
- **items**: Array of items in the collection (1-50 items)
- **path**: Relative path from repository root to the file
- **kind**: Must be `prompt`, `instruction`, or `chat-mode`
- **display**: Optional display settings
- **ordering**: `alpha` (alphabetical) or `manual` (preserve order)
- **show_badge**: Show collection badge on items (true/false)

## Creating a New Collection

### Using VS Code Tasks
1. Press `Ctrl+Shift+P` (or `Cmd+Shift+P` on Mac)
2. Type "Tasks: Run Task"
3. Select "create-collection"
4. Enter your collection ID when prompted

### Using Command Line
```bash
node create-collection.js my-collection-id
```

### Manual Creation
1. Create `collections/my-collection-id.collection.yml`
2. Use the template above as starting point
3. Add your items and customize settings
4. Run `node validate-collections.js` to validate
5. Run `node update-readme.js` to generate documentation

## Validation

Collections are automatically validated to ensure:
- Required fields are present and valid
- File paths exist and match the item kind
- IDs are unique across collections
- Tags and display settings follow the schema

Run validation manually:
```bash
node validate-collections.js
```

## File Organization

Collections don't require reorganizing existing files. Items can be located anywhere in the repository as long as the paths are correct in the manifest.

## Best Practices

1. **Meaningful Collections**: Group items that work well together for a specific workflow or use case
2. **Clear Naming**: Use descriptive names and IDs that reflect the collection's purpose
3. **Good Descriptions**: Explain who should use the collection and what benefit it provides
4. **Relevant Tags**: Add discovery tags that help users find related collections
5. **Reasonable Size**: Keep collections focused - typically 3-10 items work well
6. **Test Items**: Ensure all referenced files exist and are functional before adding to a collection
22 changes: 22 additions & 0 deletions collections/csharp-dotnet-development.collection.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
id: csharp-dotnet-development
name: C# .NET Development
description: Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices.
tags: [csharp, dotnet, aspnet, testing]
items:
- path: prompts/csharp-async.prompt.md
kind: prompt
- path: prompts/aspnet-minimal-api-openapi.prompt.md
kind: prompt
- path: instructions/csharp.instructions.md
kind: instruction
- path: instructions/dotnet-architecture-good-practices.instructions.md
kind: instruction
- path: chatmodes/expert-dotnet-software-engineer.chatmode.md
kind: chat-mode
- path: prompts/csharp-xunit.prompt.md
kind: prompt
- path: prompts/dotnet-best-practices.prompt.md
kind: prompt
display:
ordering: alpha
show_badge: false
Loading