diff --git a/.github/workflows/validate-readme.yml b/.github/workflows/validate-readme.yml
index 94e8db02..baaf656e 100644
--- a/.github/workflows/validate-readme.yml
+++ b/.github/workflows/validate-readme.yml
@@ -7,6 +7,7 @@ on:
- "instructions/**"
- "prompts/**"
- "chatmodes/**"
+ - "collections/**"
- "*.js"
jobs:
@@ -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
diff --git a/.schemas/collection.schema.json b/.schemas/collection.schema.json
new file mode 100644
index 00000000..e4efe3ab
--- /dev/null
+++ b/.schemas/collection.schema.json
@@ -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
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 95c8bec0..8d39f63c 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -4,13 +4,50 @@
{
"label": "generate-readme",
"type": "shell",
- "command": "node update-readme.js",
+ "command": "node ${workspaceFolder}/update-readme.js",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Generates the README.md file using update-readme.js script."
+ },
+ {
+ "label": "validate-collections",
+ "type": "shell",
+ "command": "node ${workspaceFolder}/validate-collections.js",
+ "problemMatcher": [],
+ "group": "build",
+ "detail": "Validates all collection manifest files."
+ },
+ {
+ "label": "create-collection",
+ "type": "shell",
+ "command": "node",
+ "args": [
+ "${workspaceFolder}/create-collection.js",
+ "--id",
+ "${input:collectionId}",
+ "--tags",
+ "${input:tags}"
+ ],
+ "problemMatcher": [],
+ "group": "build",
+ "detail": "Creates a new collection manifest template."
+ }
+ ],
+ "inputs": [
+ {
+ "id": "collectionId",
+ "description": "Collection ID (lowercase, hyphen-separated)",
+ "default": "my-collection",
+ "type": "promptString"
+ },
+ {
+ "id": "tags",
+ "description": "Comma separated list of tags",
+ "default": "tag1,tag2",
+ "type": "promptString"
}
]
}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 87a07e4e..2d7a6931 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -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**
diff --git a/README.collections.md b/README.collections.md
new file mode 100644
index 00000000..08e8f456
--- /dev/null
+++ b/README.collections.md
@@ -0,0 +1,25 @@
+# š¦ 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 |
+| ---- | ----------- | ----- | ---- |
+| [Azure & Cloud Development](collections/azure-cloud-development.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 15 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops |
+| [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 |
+| [Database & Data Management](collections/database-data-management.md) | Database administration, SQL optimization, and data management tools for PostgreSQL, SQL Server, and general database development best practices. | 8 items | database, sql, postgresql, sql-server, dba, optimization, queries, data-management |
+| [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 |
+| [Frontend Web Development](collections/frontend-web-dev.md) | Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks. | 11 items | frontend, web, react, typescript, javascript, css, html, angular, vue |
+| [Project Planning & Management](collections/project-planning.md) | Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams. | 15 items | planning, project-management, epic, feature, implementation, task, architecture |
+| [Security & Code Quality](collections/security-best-practices.md) | Security frameworks, accessibility guidelines, performance optimization, and code quality best practices for building secure, maintainable, and high-performance applications. | 6 items | security, accessibility, performance, code-quality, owasp, a11y, optimization, best-practices |
+| [Testing & Test Automation](collections/testing-automation.md) | Comprehensive collection for writing tests, test automation, and test-driven development including unit tests, integration tests, and end-to-end testing strategies. | 11 items | testing, tdd, automation, unit-tests, integration, playwright, jest, nunit |
diff --git a/README.instructions.md b/README.instructions.md
index d97a9ec5..abc9df9e 100644
--- a/README.instructions.md
+++ b/README.instructions.md
@@ -28,6 +28,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
| [Cmake Vcpkg](instructions/cmake-vcpkg.instructions.md)
[](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)
[](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 |
| [ColdFusion Coding Standards for CFC Files](instructions/coldfusion-cfc.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcoldfusion-cfc.instructions.md)
[](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%2Fcoldfusion-cfc.instructions.md) | ColdFusion Coding Standards for CFC component and application patterns |
| [ColdFusion Coding Standards](instructions/coldfusion-cfm.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcoldfusion-cfm.instructions.md)
[](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%2Fcoldfusion-cfm.instructions.md) | ColdFusion cfm files and application patterns |
+| [Collections Development](instructions/collections.instructions.md)
[](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)
[](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)
[](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)
[](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)
[](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)
[](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)
[](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)
[](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 |
diff --git a/README.md b/README.md
index b9a9e17f..6d973d30 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,7 @@ This repository provides a comprehensive toolkit for enhancing GitHub Copilot wi
- **[](README.prompts.md)** - Focused, task-specific prompts for generating code, documentation, and solving specific problems
- **[](README.instructions.md)** - Comprehensive coding standards and best practices that apply to specific file patterns or entire projects
- **[](README.chatmodes.md)** - Specialized AI personas and conversation modes for different roles and contexts
+- **[](README.collections.md)** - Curated collections of related prompts, instructions, and chat modes organized around specific themes and workflows
## MCP Server
@@ -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 [prompts](README.prompts.md), [instructions](README.instructions.md), [chat modes](README.chatmodes.md), and [collections](README.collections.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.
diff --git a/collections/TEMPLATE.md b/collections/TEMPLATE.md
new file mode 100644
index 00000000..693e0410
--- /dev/null
+++ b/collections/TEMPLATE.md
@@ -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
\ No newline at end of file
diff --git a/collections/azure-cloud-development.collection.yml b/collections/azure-cloud-development.collection.yml
new file mode 100644
index 00000000..66312685
--- /dev/null
+++ b/collections/azure-cloud-development.collection.yml
@@ -0,0 +1,48 @@
+id: azure-cloud-development
+name: Azure & Cloud Development
+description: Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications.
+tags: [azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops]
+items:
+ # Azure Expert Chat Modes
+ - path: chatmodes/azure-principal-architect.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/azure-saas-architect.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/azure-logic-apps-expert.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/azure-verified-modules-bicep.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/azure-verified-modules-terraform.chatmode.md
+ kind: chat-mode
+
+ # Infrastructure as Code Instructions
+ - path: instructions/bicep-code-best-practices.instructions.md
+ kind: instruction
+ - path: instructions/terraform.instructions.md
+ kind: instruction
+ - path: instructions/azure-verified-modules-terraform.instructions.md
+ kind: instruction
+
+ # Azure Development Instructions
+ - path: instructions/azure-functions-typescript.instructions.md
+ kind: instruction
+ - path: instructions/azure-logic-apps-power-automate.instructions.md
+ kind: instruction
+ - path: instructions/azure-devops-pipelines.instructions.md
+ kind: instruction
+
+ # Infrastructure & Deployment Instructions
+ - path: instructions/containerization-docker-best-practices.instructions.md
+ kind: instruction
+ - path: instructions/kubernetes-deployment-best-practices.instructions.md
+ kind: instruction
+
+ # Azure Prompts
+ - path: prompts/azure-resource-health-diagnose.prompt.md
+ kind: prompt
+ - path: prompts/az-cost-optimize.prompt.md
+ kind: prompt
+
+display:
+ ordering: alpha
+ show_badge: true
diff --git a/collections/azure-cloud-development.md b/collections/azure-cloud-development.md
new file mode 100644
index 00000000..895ab326
--- /dev/null
+++ b/collections/azure-cloud-development.md
@@ -0,0 +1,28 @@
+# Azure & Cloud Development
+
+Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications.
+
+**Tags:** azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [Azure AVM Bicep mode](../chatmodes/azure-verified-modules-bicep.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-verified-modules-bicep.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-verified-modules-bicep.chatmode.md) | Chat Mode | Create, update, or review Azure IaC in Bicep using Azure Verified Modules (AVM). |
+| [Azure AVM Terraform mode](../chatmodes/azure-verified-modules-terraform.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-verified-modules-terraform.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-verified-modules-terraform.chatmode.md) | Chat Mode | Create, update, or review Azure IaC in Terraform using Azure Verified Modules (AVM). |
+| [Azure Cost Optimize](../prompts/az-cost-optimize.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Faz-cost-optimize.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Faz-cost-optimize.prompt.md) | Prompt | Analyze Azure resources used in the app (IaC files and/or resources in a target rg) and optimize costs - creating GitHub issues for identified optimizations. |
+| [Azure DevOps Pipeline YAML Best Practices](../instructions/azure-devops-pipelines.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-devops-pipelines.instructions.md)
[](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%2Fazure-devops-pipelines.instructions.md) | Instruction | Best practices for Azure DevOps Pipeline YAML files |
+| [Azure Functions Typescript](../instructions/azure-functions-typescript.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-functions-typescript.instructions.md)
[](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%2Fazure-functions-typescript.instructions.md) | Instruction | TypeScript patterns for Azure Functions |
+| [Azure Logic Apps and Power Automate Instructions](../instructions/azure-logic-apps-power-automate.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-logic-apps-power-automate.instructions.md)
[](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%2Fazure-logic-apps-power-automate.instructions.md) | Instruction | Guidelines for developing Azure Logic Apps and Power Automate workflows with best practices for Workflow Definition Language (WDL), integration patterns, and enterprise automation |
+| [Azure Logic Apps Expert Mode](../chatmodes/azure-logic-apps-expert.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-logic-apps-expert.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-logic-apps-expert.chatmode.md) | Chat Mode | Expert guidance for Azure Logic Apps development focusing on workflow design, integration patterns, and JSON-based Workflow Definition Language. |
+| [Azure Principal Architect mode instructions](../chatmodes/azure-principal-architect.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-principal-architect.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-principal-architect.chatmode.md) | Chat Mode | Provide expert Azure Principal Architect guidance using Azure Well-Architected Framework principles and Microsoft best practices. |
+| [Azure Resource Health & Issue Diagnosis](../prompts/azure-resource-health-diagnose.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fazure-resource-health-diagnose.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fazure-resource-health-diagnose.prompt.md) | Prompt | Analyze Azure resource health, diagnose issues from logs and telemetry, and create a remediation plan for identified problems. |
+| [Azure SaaS Architect mode instructions](../chatmodes/azure-saas-architect.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-saas-architect.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-saas-architect.chatmode.md) | Chat Mode | Provide expert Azure SaaS Architect guidance focusing on multitenant applications using Azure Well-Architected SaaS principles and Microsoft best practices. |
+| [Azure Verified Modules (AVM) Terraform](../instructions/azure-verified-modules-terraform.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-verified-modules-terraform.instructions.md)
[](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%2Fazure-verified-modules-terraform.instructions.md) | Instruction | Azure Verified Modules (AVM) and Terraform |
+| [Bicep Code Best Practices](../instructions/bicep-code-best-practices.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fbicep-code-best-practices.instructions.md)
[](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%2Fbicep-code-best-practices.instructions.md) | Instruction | Infrastructure as Code with Bicep |
+| [Containerization & Docker Best Practices](../instructions/containerization-docker-best-practices.instructions.md)
[](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)
[](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) | Instruction | 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. |
+| [Kubernetes Deployment Best Practices](../instructions/kubernetes-deployment-best-practices.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fkubernetes-deployment-best-practices.instructions.md)
[](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%2Fkubernetes-deployment-best-practices.instructions.md) | Instruction | Comprehensive best practices for deploying and managing applications on Kubernetes. Covers Pods, Deployments, Services, Ingress, ConfigMaps, Secrets, health checks, resource limits, scaling, and security contexts. |
+| [Terraform Conventions](../instructions/terraform.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fterraform.instructions.md)
[](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%2Fterraform.instructions.md) | Instruction | Terraform Conventions and Guidelines |
+
+---
+*This collection includes 15 curated items for azure & cloud development.*
\ No newline at end of file
diff --git a/collections/csharp-dotnet-development.collection.yml b/collections/csharp-dotnet-development.collection.yml
new file mode 100644
index 00000000..49bff718
--- /dev/null
+++ b/collections/csharp-dotnet-development.collection.yml
@@ -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
\ No newline at end of file
diff --git a/collections/csharp-dotnet-development.md b/collections/csharp-dotnet-development.md
new file mode 100644
index 00000000..cbd36980
--- /dev/null
+++ b/collections/csharp-dotnet-development.md
@@ -0,0 +1,17 @@
+# C# .NET Development
+
+Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices.
+
+**Tags:** csharp, dotnet, aspnet, testing
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [.NET/C# Best Practices](../prompts/dotnet-best-practices.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fdotnet-best-practices.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fdotnet-best-practices.prompt.md) | Prompt | Ensure .NET/C# code meets best practices for the solution/project. |
+| [ASP.NET Minimal API with OpenAPI](../prompts/aspnet-minimal-api-openapi.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Faspnet-minimal-api-openapi.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Faspnet-minimal-api-openapi.prompt.md) | Prompt | Create ASP.NET Minimal API endpoints with proper OpenAPI documentation |
+| [C# Async Programming Best Practices](../prompts/csharp-async.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-async.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-async.prompt.md) | Prompt | Get best practices for C# async programming |
+| [C# Development](../instructions/csharp.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcsharp.instructions.md)
[](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%2Fcsharp.instructions.md) | Instruction | Guidelines for building C# applications |
+| [DDD Systems & .NET Guidelines](../instructions/dotnet-architecture-good-practices.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-architecture-good-practices.instructions.md)
[](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%2Fdotnet-architecture-good-practices.instructions.md) | Instruction | DDD and .NET architecture guidelines |
+| [Expert .NET software engineer mode instructions](../chatmodes/expert-dotnet-software-engineer.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fexpert-dotnet-software-engineer.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fexpert-dotnet-software-engineer.chatmode.md) | Chat Mode | Provide expert .NET software engineering guidance using modern software design patterns. |
+| [XUnit Best Practices](../prompts/csharp-xunit.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-xunit.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-xunit.prompt.md) | Prompt | Get best practices for XUnit unit testing, including data-driven tests |
diff --git a/collections/database-data-management.collection.yml b/collections/database-data-management.collection.yml
new file mode 100644
index 00000000..eefb29a8
--- /dev/null
+++ b/collections/database-data-management.collection.yml
@@ -0,0 +1,30 @@
+id: database-data-management
+name: Database & Data Management
+description: Database administration, SQL optimization, and data management tools for PostgreSQL, SQL Server, and general database development best practices.
+tags: [database, sql, postgresql, sql-server, dba, optimization, queries, data-management]
+items:
+ # Database Expert Chat Modes
+ - path: chatmodes/postgresql-dba.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/ms-sql-dba.chatmode.md
+ kind: chat-mode
+
+ # Database Instructions
+ - path: instructions/ms-sql-dba.instructions.md
+ kind: instruction
+ - path: instructions/sql-sp-generation.instructions.md
+ kind: instruction
+
+ # Database Optimization Prompts
+ - path: prompts/sql-optimization.prompt.md
+ kind: prompt
+ - path: prompts/sql-code-review.prompt.md
+ kind: prompt
+ - path: prompts/postgresql-optimization.prompt.md
+ kind: prompt
+ - path: prompts/postgresql-code-review.prompt.md
+ kind: prompt
+
+display:
+ ordering: alpha
+ show_badge: true
diff --git a/collections/database-data-management.md b/collections/database-data-management.md
new file mode 100644
index 00000000..e7da4232
--- /dev/null
+++ b/collections/database-data-management.md
@@ -0,0 +1,21 @@
+# Database & Data Management
+
+Database administration, SQL optimization, and data management tools for PostgreSQL, SQL Server, and general database development best practices.
+
+**Tags:** database, sql, postgresql, sql-server, dba, optimization, queries, data-management
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [MS-SQL Database Administrator](../chatmodes/ms-sql-dba.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fms-sql-dba.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fms-sql-dba.chatmode.md) | Chat Mode | Work with Microsoft SQL Server databases using the MS SQL extension. |
+| [MS-SQL DBA Chat Mode Instructions](../instructions/ms-sql-dba.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fms-sql-dba.instructions.md)
[](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%2Fms-sql-dba.instructions.md) | Instruction | Instructions for customizing GitHub Copilot behavior for MS-SQL DBA chat mode. |
+| [PostgreSQL Code Review Assistant](../prompts/postgresql-code-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fpostgresql-code-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fpostgresql-code-review.prompt.md) | Prompt | PostgreSQL-specific code review assistant focusing on PostgreSQL best practices, anti-patterns, and unique quality standards. Covers JSONB operations, array usage, custom types, schema design, function optimization, and PostgreSQL-exclusive security features like Row Level Security (RLS). |
+| [PostgreSQL Database Administrator](../chatmodes/postgresql-dba.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fpostgresql-dba.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fpostgresql-dba.chatmode.md) | Chat Mode | Work with PostgreSQL databases using the PostgreSQL extension. |
+| [PostgreSQL Development Assistant](../prompts/postgresql-optimization.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fpostgresql-optimization.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fpostgresql-optimization.prompt.md) | Prompt | PostgreSQL-specific development assistant focusing on unique PostgreSQL features, advanced data types, and PostgreSQL-exclusive capabilities. Covers JSONB operations, array types, custom types, range/geometric types, full-text search, window functions, and PostgreSQL extensions ecosystem. |
+| [SQL Code Review](../prompts/sql-code-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md) | Prompt | Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Focuses on SQL injection prevention, access control, code standards, and anti-pattern detection. Complements SQL optimization prompt for complete development coverage. |
+| [SQL Development](../instructions/sql-sp-generation.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsql-sp-generation.instructions.md)
[](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%2Fsql-sp-generation.instructions.md) | Instruction | Guidelines for generating SQL statements and stored procedures |
+| [SQL Performance Optimization Assistant](../prompts/sql-optimization.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md) | Prompt | Universal SQL performance optimization assistant for comprehensive query tuning, indexing strategies, and database performance analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Provides execution plan analysis, pagination optimization, batch operations, and performance monitoring guidance. |
+
+---
+*This collection includes 8 curated items for database & data management.*
\ No newline at end of file
diff --git a/collections/devops-oncall.collection.yml b/collections/devops-oncall.collection.yml
new file mode 100644
index 00000000..cbbc00c5
--- /dev/null
+++ b/collections/devops-oncall.collection.yml
@@ -0,0 +1,18 @@
+id: devops-oncall
+name: DevOps On-Call
+description: A focused set of prompts, instructions, and a chat mode to help triage incidents and respond quickly with DevOps tools and Azure resources.
+tags: [devops, incident-response, oncall, azure]
+items:
+ - path: prompts/azure-resource-health-diagnose.prompt.md
+ kind: prompt
+ - path: instructions/devops-core-principles.instructions.md
+ kind: instruction
+ - path: instructions/containerization-docker-best-practices.instructions.md
+ kind: instruction
+ - path: chatmodes/azure-principal-architect.chatmode.md
+ kind: chat-mode
+ - path: prompts/multi-stage-dockerfile.prompt.md
+ kind: prompt
+display:
+ ordering: manual
+ show_badge: true
\ No newline at end of file
diff --git a/collections/devops-oncall.md b/collections/devops-oncall.md
new file mode 100644
index 00000000..b4513e83
--- /dev/null
+++ b/collections/devops-oncall.md
@@ -0,0 +1,18 @@
+# DevOps On-Call
+
+A focused set of prompts, instructions, and a chat mode to help triage incidents and respond quickly with DevOps tools and Azure resources.
+
+**Tags:** devops, incident-response, oncall, azure
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [Azure Resource Health & Issue Diagnosis](../prompts/azure-resource-health-diagnose.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fazure-resource-health-diagnose.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fazure-resource-health-diagnose.prompt.md) | Prompt | Analyze Azure resource health, diagnose issues from logs and telemetry, and create a remediation plan for identified problems. |
+| [DevOps Core Principles](../instructions/devops-core-principles.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdevops-core-principles.instructions.md)
[](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%2Fdevops-core-principles.instructions.md) | Instruction | Foundational instructions covering core DevOps principles, culture (CALMS), and key metrics (DORA) to guide GitHub Copilot in understanding and promoting effective software delivery. |
+| [Containerization & Docker Best Practices](../instructions/containerization-docker-best-practices.instructions.md)
[](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)
[](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) | Instruction | 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. |
+| [Azure Principal Architect mode instructions](../chatmodes/azure-principal-architect.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-principal-architect.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fazure-principal-architect.chatmode.md) | Chat Mode | Provide expert Azure Principal Architect guidance using Azure Well-Architected Framework principles and Microsoft best practices. |
+| [Multi Stage Dockerfile](../prompts/multi-stage-dockerfile.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fmulti-stage-dockerfile.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fmulti-stage-dockerfile.prompt.md) | Prompt | Create optimized multi-stage Dockerfiles for any language or framework |
+
+---
+*This collection includes 5 curated items for devops on-call.*
\ No newline at end of file
diff --git a/collections/frontend-web-dev.collection.yml b/collections/frontend-web-dev.collection.yml
new file mode 100644
index 00000000..5c02e335
--- /dev/null
+++ b/collections/frontend-web-dev.collection.yml
@@ -0,0 +1,36 @@
+id: frontend-web-dev
+name: Frontend Web Development
+description: Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks.
+tags: [frontend, web, react, typescript, javascript, css, html, angular, vue]
+items:
+ # Expert Chat Modes
+ - path: chatmodes/expert-react-frontend-engineer.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/electron-angular-native.chatmode.md
+ kind: chat-mode
+
+ # Development Instructions
+ - path: instructions/reactjs.instructions.md
+ kind: instruction
+ - path: instructions/angular.instructions.md
+ kind: instruction
+ - path: instructions/vuejs3.instructions.md
+ kind: instruction
+ - path: instructions/nextjs.instructions.md
+ kind: instruction
+ - path: instructions/nextjs-tailwind.instructions.md
+ kind: instruction
+ - path: instructions/tanstack-start-shadcn-tailwind.instructions.md
+ kind: instruction
+ - path: instructions/nodejs-javascript-vitest.instructions.md
+ kind: instruction
+
+ # Prompts
+ - path: prompts/playwright-explore-website.prompt.md
+ kind: prompt
+ - path: prompts/playwright-generate-test.prompt.md
+ kind: prompt
+
+display:
+ ordering: alpha
+ show_badge: true
diff --git a/collections/frontend-web-dev.md b/collections/frontend-web-dev.md
new file mode 100644
index 00000000..74b83b5a
--- /dev/null
+++ b/collections/frontend-web-dev.md
@@ -0,0 +1,24 @@
+# Frontend Web Development
+
+Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks.
+
+**Tags:** frontend, web, react, typescript, javascript, css, html, angular, vue
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [Angular Development Instructions](../instructions/angular.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fangular.instructions.md)
[](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%2Fangular.instructions.md) | Instruction | Angular-specific coding standards and best practices |
+| [Code Generation Guidelines](../instructions/nodejs-javascript-vitest.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnodejs-javascript-vitest.instructions.md)
[](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%2Fnodejs-javascript-vitest.instructions.md) | Instruction | Guidelines for writing Node.js and JavaScript code with Vitest testing |
+| [Electron Code Review Mode Instructions](../chatmodes/electron-angular-native.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Felectron-angular-native.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Felectron-angular-native.chatmode.md) | Chat Mode | Code Review Mode tailored for Electron app with Node.js backend (main), Angular frontend (render), and native integration layer (e.g., AppleScript, shell, or native tooling). Services in other repos are not reviewed here. |
+| [Expert React Frontend Engineer Mode Instructions](../chatmodes/expert-react-frontend-engineer.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fexpert-react-frontend-engineer.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fexpert-react-frontend-engineer.chatmode.md) | Chat Mode | Provide expert React frontend engineering guidance using modern TypeScript and design patterns. |
+| [Next.js + Tailwind Development Instructions](../instructions/nextjs-tailwind.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md)
[](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%2Fnextjs-tailwind.instructions.md) | Instruction | Next.js + Tailwind development standards and instructions |
+| [Next.js Best Practices for LLMs (2025)](../instructions/nextjs.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)
[](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%2Fnextjs.instructions.md) | Instruction | No description |
+| [ReactJS Development Instructions](../instructions/reactjs.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Freactjs.instructions.md)
[](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%2Freactjs.instructions.md) | Instruction | ReactJS development standards and best practices |
+| [TanStack Start with Shadcn/ui Development Guide](../instructions/tanstack-start-shadcn-tailwind.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.instructions.md)
[](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%2Ftanstack-start-shadcn-tailwind.instructions.md) | Instruction | Guidelines for building TanStack Start applications |
+| [Test Generation with Playwright MCP](../prompts/playwright-generate-test.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md) | Prompt | Generate a Playwright test based on a scenario using Playwright MCP |
+| [VueJS 3 Development Instructions](../instructions/vuejs3.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fvuejs3.instructions.md)
[](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%2Fvuejs3.instructions.md) | Instruction | VueJS 3 development standards and best practices with Composition API and TypeScript |
+| [Website Exploration for Testing](../prompts/playwright-explore-website.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md) | Prompt | Website exploration for testing using Playwright MCP |
+
+---
+*This collection includes 11 curated items for frontend web development.*
\ No newline at end of file
diff --git a/collections/project-planning.collection.yml b/collections/project-planning.collection.yml
new file mode 100644
index 00000000..47b968ff
--- /dev/null
+++ b/collections/project-planning.collection.yml
@@ -0,0 +1,44 @@
+id: project-planning
+name: Project Planning & Management
+description: Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams.
+tags: [planning, project-management, epic, feature, implementation, task, architecture]
+items:
+ # Planning Chat Modes
+ - path: chatmodes/task-planner.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/task-researcher.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/planner.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/plan.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/prd.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/implementation-plan.chatmode.md
+ kind: chat-mode
+
+ # Planning Instructions
+ - path: instructions/task-implementation.instructions.md
+ kind: instruction
+ - path: instructions/spec-driven-workflow-v1.instructions.md
+ kind: instruction
+
+ # Planning Prompts
+ - path: prompts/breakdown-feature-implementation.prompt.md
+ kind: prompt
+ - path: prompts/breakdown-feature-prd.prompt.md
+ kind: prompt
+ - path: prompts/breakdown-epic-arch.prompt.md
+ kind: prompt
+ - path: prompts/breakdown-epic-pm.prompt.md
+ kind: prompt
+ - path: prompts/create-implementation-plan.prompt.md
+ kind: prompt
+ - path: prompts/update-implementation-plan.prompt.md
+ kind: prompt
+ - path: prompts/create-github-issues-feature-from-implementation-plan.prompt.md
+ kind: prompt
+
+display:
+ ordering: alpha
+ show_badge: true
diff --git a/collections/project-planning.md b/collections/project-planning.md
new file mode 100644
index 00000000..87d53d3b
--- /dev/null
+++ b/collections/project-planning.md
@@ -0,0 +1,28 @@
+# Project Planning & Management
+
+Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams.
+
+**Tags:** planning, project-management, epic, feature, implementation, task, architecture
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [Create GitHub Issue from Implementation Plan](../prompts/create-github-issues-feature-from-implementation-plan.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issues-feature-from-implementation-plan.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issues-feature-from-implementation-plan.prompt.md) | Prompt | Create GitHub Issues from implementation plan phases using feature_request.yml or chore_request.yml templates. |
+| [Create Implementation Plan](../prompts/create-implementation-plan.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-implementation-plan.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-implementation-plan.prompt.md) | Prompt | Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure. |
+| [Create PRD Chat Mode](../chatmodes/prd.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fprd.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fprd.chatmode.md) | Chat Mode | Generate a comprehensive Product Requirements Document (PRD) in Markdown, detailing user stories, acceptance criteria, technical considerations, and metrics. Optionally create GitHub issues upon user confirmation. |
+| [Epic Architecture Specification Prompt](../prompts/breakdown-epic-arch.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-epic-arch.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-epic-arch.prompt.md) | Prompt | Prompt for creating the high-level technical architecture for an Epic, based on a Product Requirements Document. |
+| [Epic Product Requirements Document (PRD) Prompt](../prompts/breakdown-epic-pm.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-epic-pm.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-epic-pm.prompt.md) | Prompt | Prompt for creating an Epic Product Requirements Document (PRD) for a new epic. This PRD will be used as input for generating a technical architecture specification. |
+| [Feature Implementation Plan Prompt](../prompts/breakdown-feature-implementation.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-implementation.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-implementation.prompt.md) | Prompt | Prompt for creating detailed feature implementation plans, following Epoch monorepo structure. |
+| [Feature PRD Prompt](../prompts/breakdown-feature-prd.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-prd.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-prd.prompt.md) | Prompt | Prompt for creating Product Requirements Documents (PRDs) for new features, based on an Epic. |
+| [Implementation Plan Generation Mode](../chatmodes/implementation-plan.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fimplementation-plan.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fimplementation-plan.chatmode.md) | Chat Mode | Generate an implementation plan for new features or refactoring existing code. |
+| [Plan Mode - Strategic Planning & Architecture Assistant](../chatmodes/plan.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fplan.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fplan.chatmode.md) | Chat Mode | Strategic planning and architecture assistant focused on thoughtful analysis before implementation. Helps developers understand codebases, clarify requirements, and develop comprehensive implementation strategies. |
+| [Planning mode instructions](../chatmodes/planner.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fplanner.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fplanner.chatmode.md) | Chat Mode | Generate an implementation plan for new features or refactoring existing code. |
+| [Spec Driven Workflow v1](../instructions/spec-driven-workflow-v1.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fspec-driven-workflow-v1.instructions.md)
[](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%2Fspec-driven-workflow-v1.instructions.md) | Instruction | Specification-Driven Workflow v1 provides a structured approach to software development, ensuring that requirements are clearly defined, designs are meticulously planned, and implementations are thoroughly documented and validated. |
+| [Task Plan Implementation Instructions](../instructions/task-implementation.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftask-implementation.instructions.md)
[](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%2Ftask-implementation.instructions.md) | Instruction | Instructions for implementing task plans with progressive tracking and change record - Brought to you by microsoft/edge-ai |
+| [Task Planner Instructions](../chatmodes/task-planner.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftask-planner.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftask-planner.chatmode.md) | Chat Mode | Task planner for creating actionable implementation plans - Brought to you by microsoft/edge-ai |
+| [Task Researcher Instructions](../chatmodes/task-researcher.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftask-researcher.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftask-researcher.chatmode.md) | Chat Mode | Task research specialist for comprehensive project analysis - Brought to you by microsoft/edge-ai |
+| [Update Implementation Plan](../prompts/update-implementation-plan.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fupdate-implementation-plan.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fupdate-implementation-plan.prompt.md) | Prompt | Update an existing implementation plan file with new or update requirements to provide new features, refactoring existing code or upgrading packages, design, architecture or infrastructure. |
+
+---
+*This collection includes 15 curated items for project planning & management.*
\ No newline at end of file
diff --git a/collections/security-best-practices.collection.yml b/collections/security-best-practices.collection.yml
new file mode 100644
index 00000000..ed9663b8
--- /dev/null
+++ b/collections/security-best-practices.collection.yml
@@ -0,0 +1,24 @@
+id: security-best-practices
+name: Security & Code Quality
+description: Security frameworks, accessibility guidelines, performance optimization, and code quality best practices for building secure, maintainable, and high-performance applications.
+tags: [security, accessibility, performance, code-quality, owasp, a11y, optimization, best-practices]
+items:
+ # Security & Quality Instructions
+ - path: instructions/security-and-owasp.instructions.md
+ kind: instruction
+ - path: instructions/a11y.instructions.md
+ kind: instruction
+ - path: instructions/performance-optimization.instructions.md
+ kind: instruction
+ - path: instructions/object-calisthenics.instructions.md
+ kind: instruction
+ - path: instructions/self-explanatory-code-commenting.instructions.md
+ kind: instruction
+
+ # Security & Safety Prompts
+ - path: prompts/ai-prompt-engineering-safety-review.prompt.md
+ kind: prompt
+
+display:
+ ordering: alpha
+ show_badge: true
diff --git a/collections/security-best-practices.md b/collections/security-best-practices.md
new file mode 100644
index 00000000..5a88cdb0
--- /dev/null
+++ b/collections/security-best-practices.md
@@ -0,0 +1,19 @@
+# Security & Code Quality
+
+Security frameworks, accessibility guidelines, performance optimization, and code quality best practices for building secure, maintainable, and high-performance applications.
+
+**Tags:** security, accessibility, performance, code-quality, owasp, a11y, optimization, best-practices
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [AI Prompt Engineering Safety Review & Improvement](../prompts/ai-prompt-engineering-safety-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fai-prompt-engineering-safety-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fai-prompt-engineering-safety-review.prompt.md) | Prompt | Comprehensive AI prompt engineering safety review and improvement prompt. Analyzes prompts for safety, bias, security vulnerabilities, and effectiveness while providing detailed improvement recommendations with extensive frameworks, testing methodologies, and educational content. |
+| [Instructions for accessibility](../instructions/a11y.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fa11y.instructions.md)
[](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%2Fa11y.instructions.md) | Instruction | Guidance for creating more accessible code |
+| [Object Calisthenics Rules](../instructions/object-calisthenics.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fobject-calisthenics.instructions.md)
[](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%2Fobject-calisthenics.instructions.md) | Instruction | Enforces Object Calisthenics principles for business domain code to ensure clean, maintainable, and robust code |
+| [Performance Optimization Best Practices](../instructions/performance-optimization.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fperformance-optimization.instructions.md)
[](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%2Fperformance-optimization.instructions.md) | Instruction | The most comprehensive, practical, and engineer-authored performance optimization instructions for all languages, frameworks, and stacks. Covers frontend, backend, and database best practices with actionable guidance, scenario-based checklists, troubleshooting, and pro tips. |
+| [Secure Coding and OWASP Guidelines](../instructions/security-and-owasp.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fsecurity-and-owasp.instructions.md)
[](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%2Fsecurity-and-owasp.instructions.md) | Instruction | Comprehensive secure coding instructions for all languages and frameworks, based on OWASP Top 10 and industry best practices. |
+| [Self-explanatory Code Commenting Instructions](../instructions/self-explanatory-code-commenting.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fself-explanatory-code-commenting.instructions.md)
[](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%2Fself-explanatory-code-commenting.instructions.md) | Instruction | Guidelines for GitHub Copilot to write comments to achieve self-explanatory code with less comments. Examples are in JavaScript but it should work on any language that has comments. |
+
+---
+*This collection includes 6 curated items for security & code quality.*
\ No newline at end of file
diff --git a/collections/testing-automation.collection.yml b/collections/testing-automation.collection.yml
new file mode 100644
index 00000000..fd53aa7b
--- /dev/null
+++ b/collections/testing-automation.collection.yml
@@ -0,0 +1,36 @@
+id: testing-automation
+name: Testing & Test Automation
+description: Comprehensive collection for writing tests, test automation, and test-driven development including unit tests, integration tests, and end-to-end testing strategies.
+tags: [testing, tdd, automation, unit-tests, integration, playwright, jest, nunit]
+items:
+ # TDD Chat Modes
+ - path: chatmodes/tdd-red.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/tdd-green.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/tdd-refactor.chatmode.md
+ kind: chat-mode
+ - path: chatmodes/playwright-tester.chatmode.md
+ kind: chat-mode
+
+ # Testing Instructions
+ - path: instructions/playwright-typescript.instructions.md
+ kind: instruction
+ - path: instructions/playwright-python.instructions.md
+ kind: instruction
+
+ # Testing Prompts
+ - path: prompts/playwright-explore-website.prompt.md
+ kind: prompt
+ - path: prompts/playwright-generate-test.prompt.md
+ kind: prompt
+ - path: prompts/csharp-nunit.prompt.md
+ kind: prompt
+ - path: prompts/java-junit.prompt.md
+ kind: prompt
+ - path: prompts/ai-prompt-engineering-safety-review.prompt.md
+ kind: prompt
+
+display:
+ ordering: alpha
+ show_badge: true
diff --git a/collections/testing-automation.md b/collections/testing-automation.md
new file mode 100644
index 00000000..5aac4172
--- /dev/null
+++ b/collections/testing-automation.md
@@ -0,0 +1,24 @@
+# Testing & Test Automation
+
+Comprehensive collection for writing tests, test automation, and test-driven development including unit tests, integration tests, and end-to-end testing strategies.
+
+**Tags:** testing, tdd, automation, unit-tests, integration, playwright, jest, nunit
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [AI Prompt Engineering Safety Review & Improvement](../prompts/ai-prompt-engineering-safety-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fai-prompt-engineering-safety-review.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fai-prompt-engineering-safety-review.prompt.md) | Prompt | Comprehensive AI prompt engineering safety review and improvement prompt. Analyzes prompts for safety, bias, security vulnerabilities, and effectiveness while providing detailed improvement recommendations with extensive frameworks, testing methodologies, and educational content. |
+| [JUnit 5+ Best Practices](../prompts/java-junit.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fjava-junit.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fjava-junit.prompt.md) | Prompt | Get best practices for JUnit 5 unit testing, including data-driven tests |
+| [NUnit Best Practices](../prompts/csharp-nunit.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-nunit.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-nunit.prompt.md) | Prompt | Get best practices for NUnit unit testing, including data-driven tests |
+| [Playwright Python Test Generation Instructions](../instructions/playwright-python.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fplaywright-python.instructions.md)
[](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%2Fplaywright-python.instructions.md) | Instruction | Playwright Python AI test generation instructions based on official documentation. |
+| [Playwright Tester](../chatmodes/playwright-tester.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fplaywright-tester.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Fplaywright-tester.chatmode.md) | Chat Mode | Testing mode for Playwright tests |
+| [Playwright Typescript](../instructions/playwright-typescript.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fplaywright-typescript.instructions.md)
[](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%2Fplaywright-typescript.instructions.md) | Instruction | Playwright test generation instructions |
+| [TDD Green Phase - Make Tests Pass Quickly](../chatmodes/tdd-green.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftdd-green.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftdd-green.chatmode.md) | Chat Mode | Implement minimal code to satisfy GitHub issue requirements and make failing tests pass without over-engineering. |
+| [TDD Red Phase - Write Failing Tests First](../chatmodes/tdd-red.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftdd-red.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftdd-red.chatmode.md) | Chat Mode | Guide test-first development by writing failing tests that describe desired behaviour from GitHub issue context before implementation exists. |
+| [TDD Refactor Phase - Improve Quality & Security](../chatmodes/tdd-refactor.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftdd-refactor.chatmode.md)
[](https://aka.ms/awesome-copilot/install/chatmode?url=vscode-insiders%3Achat-mode%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fchatmodes%2Ftdd-refactor.chatmode.md) | Chat Mode | Improve code quality, apply security best practices, and enhance design whilst maintaining green tests and GitHub issue compliance. |
+| [Test Generation with Playwright MCP](../prompts/playwright-generate-test.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md) | Prompt | Generate a Playwright test based on a scenario using Playwright MCP |
+| [Website Exploration for Testing](../prompts/playwright-explore-website.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md)
[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md) | Prompt | Website exploration for testing using Playwright MCP |
+
+---
+*This collection includes 11 curated items for testing & test automation.*
\ No newline at end of file
diff --git a/create-collection.js b/create-collection.js
new file mode 100755
index 00000000..f95f292c
--- /dev/null
+++ b/create-collection.js
@@ -0,0 +1,161 @@
+#!/usr/bin/env node
+
+const fs = require("fs");
+const path = require("path");
+const readline = require("readline");
+
+const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout
+});
+
+function prompt(question) {
+ return new Promise((resolve) => {
+ rl.question(question, resolve);
+ });
+}
+
+function parseArgs() {
+ const args = process.argv.slice(2);
+ const out = { id: undefined, tags: undefined };
+
+ // simple long/short option parsing
+ for (let i = 0; i < args.length; i++) {
+ const a = args[i];
+ if (a === '--id' || a === '-i') {
+ out.id = args[i + 1];
+ i++;
+ } else if (a.startsWith('--id=')) {
+ out.id = a.split('=')[1];
+ } else if (a === '--tags' || a === '-t') {
+ out.tags = args[i + 1];
+ i++;
+ } else if (a.startsWith('--tags=')) {
+ out.tags = a.split('=')[1];
+ } else if (!a.startsWith('-') && !out.id) {
+ // first positional -> id
+ out.id = a;
+ } else if (!a.startsWith('-') && out.id && !out.tags) {
+ // second positional -> tags
+ out.tags = a;
+ }
+ }
+
+ // normalize tags to string (comma separated) or undefined
+ if (Array.isArray(out.tags)) {
+ out.tags = out.tags.join(',');
+ }
+
+ return out;
+}
+
+async function createCollectionTemplate() {
+ try {
+ console.log("šÆ Collection Creator");
+ console.log("This tool will help you create a new collection manifest.\n");
+
+ // Parse CLI args and fall back to interactive prompts when missing
+ const parsed = parseArgs();
+ // Get collection ID
+ let collectionId = parsed.id;
+ if (!collectionId) {
+ collectionId = await prompt("Collection ID (lowercase, hyphens only): ");
+ }
+
+ // Validate collection ID format
+ if (!collectionId) {
+ console.error("ā Collection ID is required");
+ process.exit(1);
+ }
+
+ if (!/^[a-z0-9-]+$/.test(collectionId)) {
+ console.error("ā Collection ID must contain only lowercase letters, numbers, and hyphens");
+ process.exit(1);
+ }
+
+ const collectionsDir = path.join(__dirname, "collections");
+ const filePath = path.join(collectionsDir, `${collectionId}.collection.yml`);
+
+ // Check if file already exists
+ if (fs.existsSync(filePath)) {
+ console.log(`ā ļø Collection ${collectionId} already exists at ${filePath}`);
+ console.log("š” Please edit that file instead or choose a different ID.");
+ process.exit(1);
+ }
+
+ // Ensure collections directory exists
+ if (!fs.existsSync(collectionsDir)) {
+ fs.mkdirSync(collectionsDir, { recursive: true });
+ }
+
+ // Get collection name
+ const defaultName = collectionId
+ .split("-")
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
+ .join(" ");
+
+ let collectionName = await prompt(`Collection name (default: ${defaultName}): `);
+ if (!collectionName.trim()) {
+ collectionName = defaultName;
+ }
+
+ // Get description
+ const defaultDescription = `A collection of related prompts, instructions, and chat modes for ${collectionName.toLowerCase()}.`;
+ let description = await prompt(`Description (default: ${defaultDescription}): `);
+ if (!description.trim()) {
+ description = defaultDescription;
+ }
+
+ // Get tags (from CLI or prompt)
+ let tags = [];
+ let tagInput = parsed.tags;
+ if (!tagInput) {
+ tagInput = await prompt("Tags (comma-separated, or press Enter for defaults): ");
+ }
+
+ if (tagInput && tagInput.toString().trim()) {
+ tags = tagInput.toString().split(",").map(tag => tag.trim()).filter(tag => tag);
+ } else {
+ // Generate some default tags from the collection ID
+ tags = collectionId.split("-").slice(0, 3);
+ }
+
+ // Template content
+ const template = `id: ${collectionId}
+name: ${collectionName}
+description: ${description}
+tags: [${tags.join(", ")}]
+items:
+ # Add your collection items here
+ # Example:
+ # - path: prompts/example.prompt.md
+ # kind: prompt
+ # - path: instructions/example.instructions.md
+ # kind: instruction
+ # - path: chatmodes/example.chatmode.md
+ # kind: chat-mode
+display:
+ ordering: alpha # or "manual" to preserve the order above
+ show_badge: false # set to true to show collection badge on items
+`;
+
+ fs.writeFileSync(filePath, template);
+ console.log(`ā
Created collection template: ${filePath}`);
+ console.log("\nš Next steps:");
+ console.log("1. Edit the collection manifest to add your items");
+ console.log("2. Update the name, description, and tags as needed");
+ console.log("3. Run 'node validate-collections.js' to validate");
+ console.log("4. Run 'node update-readme.js' to generate documentation");
+ console.log("\nš Collection template contents:");
+ console.log(template);
+
+ } catch (error) {
+ console.error(`ā Error creating collection template: ${error.message}`);
+ process.exit(1);
+ } finally {
+ rl.close();
+ }
+}
+
+// Run the interactive creation process
+createCollectionTemplate();
diff --git a/instructions/collections.instructions.md b/instructions/collections.instructions.md
new file mode 100644
index 00000000..e29c2f12
--- /dev/null
+++ b/instructions/collections.instructions.md
@@ -0,0 +1,54 @@
+---
+description: 'Guidelines for creating and managing awesome-copilot collections'
+applyTo: 'collections/*.collection.yml'
+---
+
+# Collections Development
+
+## Collection Instructions
+
+When working with collections in the awesome-copilot repository:
+
+- Always validate collections using `node validate-collections.js` before committing
+- Follow the established YAML schema for collection manifests
+- Reference only existing files in the repository
+- Use descriptive collection IDs with lowercase letters, numbers, and hyphens
+- Keep collections focused on specific workflows or themes
+- Test that all referenced items work well together
+
+## Collection Structure
+
+- **Required fields**: id, name, description, items
+- **Optional fields**: tags, display
+- **Item requirements**: path must exist, kind must match file extension
+- **Display options**: ordering (alpha/manual), show_badge (true/false)
+
+## Validation Rules
+
+- Collection IDs must be unique across all collections
+- File paths must exist and match the item kind
+- Tags must use lowercase letters, numbers, and hyphens only
+- Collections must contain 1-50 items
+- Descriptions must be 1-500 characters
+
+## Best Practices
+
+- Group 3-10 related items for optimal usability
+- Use clear, descriptive names and descriptions
+- Add relevant tags for discoverability
+- Test the complete workflow the collection enables
+- Ensure items complement each other effectively
+
+## File Organization
+
+- Collections don't require file reorganization
+- Items can be located anywhere in the repository
+- Use relative paths from repository root
+- Maintain existing directory structure (prompts/, instructions/, chatmodes/)
+
+## Generation Process
+
+- Collections automatically generate README files via `update-readme.js`
+- Individual collection pages are created in collections/ directory
+- Main collections overview is generated as README.collections.md
+- VS Code install badges are automatically created for each item
\ No newline at end of file
diff --git a/update-readme.js b/update-readme.js
index 5fb219b6..b1a42e08 100755
--- a/update-readme.js
+++ b/update-readme.js
@@ -2,6 +2,7 @@
const fs = require("fs");
const path = require("path");
+const { parseCollectionYaml } = require("./yaml-parser");
// Template sections for the README
const TEMPLATES = {
@@ -49,9 +50,28 @@ Custom chat modes define specific behaviors and tools for GitHub Copilot Chat, e
- Import the chat mode configuration into your VS Code settings
- Access the installed chat modes through the VS Code Chat interface
- Select the desired chat mode from the available options in VS Code Chat`,
+
+ collectionsSection: `## š¦ Collections
+
+Curated collections of related prompts, instructions, and chat modes organized around specific themes, workflows, or use cases.`,
+
+ collectionsUsage: `### 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`,
};
// Add error handling utility
+/**
+ * Safe file operation wrapper
+ */
function safeFileOperation(operation, filePath, defaultValue = null) {
try {
return operation();
@@ -409,6 +429,110 @@ function generateChatModesSection(chatmodesDir) {
return `${TEMPLATES.chatmodesSection}\n${TEMPLATES.chatmodesUsage}\n\n${chatmodesContent}`;
}
+/**
+ * Generate the collections section with a table of all collections
+ */
+function generateCollectionsSection(collectionsDir) {
+ // Check if collections directory exists, create it if it doesn't
+ if (!fs.existsSync(collectionsDir)) {
+ console.log("Collections directory does not exist, creating it...");
+ fs.mkdirSync(collectionsDir, { recursive: true });
+ }
+
+ // Get all collection files
+ const collectionFiles = fs
+ .readdirSync(collectionsDir)
+ .filter((file) => file.endsWith(".collection.yml"))
+ .sort();
+
+ console.log(`Found ${collectionFiles.length} collection files`);
+
+ // If no collections, return empty string
+ if (collectionFiles.length === 0) {
+ return "";
+ }
+
+ // Create table header
+ let collectionsContent =
+ "| Name | Description | Items | Tags |\n| ---- | ----------- | ----- | ---- |\n";
+
+ // Generate table rows for each collection file
+ for (const file of collectionFiles) {
+ const filePath = path.join(collectionsDir, file);
+ const collection = parseCollectionYaml(filePath);
+
+ if (!collection) {
+ console.warn(`Failed to parse collection: ${file}`);
+ continue;
+ }
+
+ const collectionId = collection.id || path.basename(file, ".collection.yml");
+ const name = collection.name || collectionId;
+ const description = collection.description || "No description";
+ const itemCount = collection.items ? collection.items.length : 0;
+ const tags = collection.tags ? collection.tags.join(", ") : "";
+
+ const link = `collections/${collectionId}.md`;
+
+ collectionsContent += `| [${name}](${link}) | ${description} | ${itemCount} items | ${tags} |\n`;
+ }
+
+ return `${TEMPLATES.collectionsSection}\n${TEMPLATES.collectionsUsage}\n\n${collectionsContent}`;
+}
+
+/**
+ * Generate individual collection README file
+ */
+function generateCollectionReadme(collection, collectionId) {
+ if (!collection || !collection.items) {
+ return `# ${collectionId}\n\nCollection not found or invalid.`;
+ }
+
+ const name = collection.name || collectionId;
+ const description = collection.description || "No description provided.";
+ const tags = collection.tags ? collection.tags.join(", ") : "None";
+
+ let content = `# ${name}\n\n${description}\n\n`;
+
+ if (collection.tags && collection.tags.length > 0) {
+ content += `**Tags:** ${tags}\n\n`;
+ }
+
+ content += `## Items in this Collection\n\n`;
+ content += `| Title | Type | Description |\n| ----- | ---- | ----------- |\n`;
+
+ // Sort items based on display.ordering setting
+ const items = [...collection.items];
+ if (collection.display?.ordering === "alpha") {
+ items.sort((a, b) => {
+ const titleA = extractTitle(path.join(__dirname, a.path));
+ const titleB = extractTitle(path.join(__dirname, b.path));
+ return titleA.localeCompare(titleB);
+ });
+ }
+
+ for (const item of items) {
+ const filePath = path.join(__dirname, item.path);
+ const title = extractTitle(filePath);
+ const description = extractDescription(filePath) || "No description";
+ const typeDisplay = item.kind === "chat-mode" ? "Chat Mode" :
+ item.kind === "instruction" ? "Instruction" : "Prompt";
+ const link = `../${item.path}`;
+
+ // Create install badges for each item
+ const badges = makeBadges(item.path, item.kind === "instruction" ? "instructions" :
+ item.kind === "chat-mode" ? "mode" : "prompt");
+
+ content += `| [${title}](${link})
${badges} | ${typeDisplay} | ${description} |\n`;
+ }
+
+ if (collection.display?.show_badge) {
+ content += `\n---\n*This collection includes ${items.length} curated items for ${name.toLowerCase()}.*`;
+ }
+
+ return content;
+}
+
// Utility: write file only if content changed
function writeFileIfChanged(filePath, content) {
const exists = fs.existsSync(filePath);
@@ -441,11 +565,13 @@ try {
const instructionsDir = path.join(__dirname, "instructions");
const promptsDir = path.join(__dirname, "prompts");
const chatmodesDir = path.join(__dirname, "chatmodes");
+ const collectionsDir = path.join(__dirname, "collections");
// Compose headers for standalone files by converting section headers to H1
const instructionsHeader = TEMPLATES.instructionsSection.replace(/^##\s/m, "# ");
const promptsHeader = TEMPLATES.promptsSection.replace(/^##\s/m, "# ");
const chatmodesHeader = TEMPLATES.chatmodesSection.replace(/^##\s/m, "# ");
+ const collectionsHeader = TEMPLATES.collectionsSection.replace(/^##\s/m, "# ");
const instructionsReadme = buildCategoryReadme(
generateInstructionsSection,
@@ -465,11 +591,41 @@ try {
chatmodesHeader,
TEMPLATES.chatmodesUsage
);
+
+ // Generate collections README
+ const collectionsReadme = buildCategoryReadme(
+ generateCollectionsSection,
+ collectionsDir,
+ collectionsHeader,
+ TEMPLATES.collectionsUsage
+ );
- // Write outputs
+ // Write category outputs
writeFileIfChanged(path.join(__dirname, "README.instructions.md"), instructionsReadme);
writeFileIfChanged(path.join(__dirname, "README.prompts.md"), promptsReadme);
writeFileIfChanged(path.join(__dirname, "README.chatmodes.md"), chatmodesReadme);
+ writeFileIfChanged(path.join(__dirname, "README.collections.md"), collectionsReadme);
+
+ // Generate individual collection README files
+ if (fs.existsSync(collectionsDir)) {
+ console.log("Generating individual collection README files...");
+
+ const collectionFiles = fs
+ .readdirSync(collectionsDir)
+ .filter((file) => file.endsWith(".collection.yml"));
+
+ for (const file of collectionFiles) {
+ const filePath = path.join(collectionsDir, file);
+ const collection = parseCollectionYaml(filePath);
+
+ if (collection) {
+ const collectionId = collection.id || path.basename(file, ".collection.yml");
+ const readmeContent = generateCollectionReadme(collection, collectionId);
+ const readmeFile = path.join(collectionsDir, `${collectionId}.md`);
+ writeFileIfChanged(readmeFile, readmeContent);
+ }
+ }
+ }
} catch (error) {
console.error(`Error generating category README files: ${error.message}`);
process.exit(1);
diff --git a/validate-collections.js b/validate-collections.js
new file mode 100755
index 00000000..745dfaac
--- /dev/null
+++ b/validate-collections.js
@@ -0,0 +1,234 @@
+#!/usr/bin/env node
+
+const fs = require("fs");
+const path = require("path");
+const { parseCollectionYaml } = require("./yaml-parser");
+
+// Maximum number of items allowed in a collection
+const MAX_COLLECTION_ITEMS = 50;
+function safeFileOperation(operation, filePath, defaultValue = null) {
+ try {
+ return operation();
+ } catch (error) {
+ console.error(`Error processing file ${filePath}: ${error.message}`);
+ return defaultValue;
+ }
+}
+
+// Validation functions
+function validateCollectionId(id) {
+ if (!id || typeof id !== "string") {
+ return "ID is required and must be a string";
+ }
+ if (!/^[a-z0-9-]+$/.test(id)) {
+ return "ID must contain only lowercase letters, numbers, and hyphens";
+ }
+ if (id.length < 1 || id.length > 50) {
+ return "ID must be between 1 and 50 characters";
+ }
+ return null;
+}
+
+function validateCollectionName(name) {
+ if (!name || typeof name !== "string") {
+ return "Name is required and must be a string";
+ }
+ if (name.length < 1 || name.length > 100) {
+ return "Name must be between 1 and 100 characters";
+ }
+ return null;
+}
+
+function validateCollectionDescription(description) {
+ if (!description || typeof description !== "string") {
+ return "Description is required and must be a string";
+ }
+ if (description.length < 1 || description.length > 500) {
+ return "Description must be between 1 and 500 characters";
+ }
+ return null;
+}
+
+function validateCollectionTags(tags) {
+ if (tags && !Array.isArray(tags)) {
+ return "Tags must be an array";
+ }
+ if (tags && tags.length > 10) {
+ return "Maximum 10 tags allowed";
+ }
+ if (tags) {
+ for (const tag of tags) {
+ if (typeof tag !== "string") {
+ return "All tags must be strings";
+ }
+ if (!/^[a-z0-9-]+$/.test(tag)) {
+ return `Tag "${tag}" must contain only lowercase letters, numbers, and hyphens`;
+ }
+ if (tag.length < 1 || tag.length > 30) {
+ return `Tag "${tag}" must be between 1 and 30 characters`;
+ }
+ }
+ }
+ return null;
+}
+
+function validateCollectionItems(items) {
+ if (!items || !Array.isArray(items)) {
+ return "Items is required and must be an array";
+ }
+ if (items.length < 1) {
+ return "At least one item is required";
+ }
+ if (items.length > MAX_COLLECTION_ITEMS) {
+ return `Maximum ${MAX_COLLECTION_ITEMS} items allowed`;
+ }
+
+ for (let i = 0; i < items.length; i++) {
+ const item = items[i];
+ if (!item || typeof item !== "object") {
+ return `Item ${i + 1} must be an object`;
+ }
+ if (!item.path || typeof item.path !== "string") {
+ return `Item ${i + 1} must have a path string`;
+ }
+ if (!item.kind || typeof item.kind !== "string") {
+ return `Item ${i + 1} must have a kind string`;
+ }
+ if (!["prompt", "instruction", "chat-mode"].includes(item.kind)) {
+ return `Item ${i + 1} kind must be one of: prompt, instruction, chat-mode`;
+ }
+
+ // Validate file path exists
+ const filePath = path.join(__dirname, item.path);
+ if (!fs.existsSync(filePath)) {
+ return `Item ${i + 1} file does not exist: ${item.path}`;
+ }
+
+ // Validate path pattern matches kind
+ if (item.kind === "prompt" && !item.path.endsWith(".prompt.md")) {
+ return `Item ${i + 1} kind is "prompt" but path doesn't end with .prompt.md`;
+ }
+ if (item.kind === "instruction" && !item.path.endsWith(".instructions.md")) {
+ return `Item ${i + 1} kind is "instruction" but path doesn't end with .instructions.md`;
+ }
+ if (item.kind === "chat-mode" && !item.path.endsWith(".chatmode.md")) {
+ return `Item ${i + 1} kind is "chat-mode" but path doesn't end with .chatmode.md`;
+ }
+ }
+ return null;
+}
+
+function validateCollectionDisplay(display) {
+ if (display && typeof display !== "object") {
+ return "Display must be an object";
+ }
+ if (display) {
+ if (display.ordering && !["manual", "alpha"].includes(display.ordering)) {
+ return "Display ordering must be 'manual' or 'alpha'";
+ }
+ if (display.show_badge && typeof display.show_badge !== "boolean") {
+ return "Display show_badge must be boolean";
+ }
+ }
+ return null;
+}
+
+function validateCollectionManifest(collection, filePath) {
+ const errors = [];
+
+ const idError = validateCollectionId(collection.id);
+ if (idError) errors.push(`ID: ${idError}`);
+
+ const nameError = validateCollectionName(collection.name);
+ if (nameError) errors.push(`Name: ${nameError}`);
+
+ const descError = validateCollectionDescription(collection.description);
+ if (descError) errors.push(`Description: ${descError}`);
+
+ const tagsError = validateCollectionTags(collection.tags);
+ if (tagsError) errors.push(`Tags: ${tagsError}`);
+
+ const itemsError = validateCollectionItems(collection.items);
+ if (itemsError) errors.push(`Items: ${itemsError}`);
+
+ const displayError = validateCollectionDisplay(collection.display);
+ if (displayError) errors.push(`Display: ${displayError}`);
+
+ return errors;
+}
+
+// Main validation function
+function validateCollections() {
+ const collectionsDir = path.join(__dirname, "collections");
+
+ if (!fs.existsSync(collectionsDir)) {
+ console.log("No collections directory found - validation skipped");
+ return true;
+ }
+
+ const collectionFiles = fs
+ .readdirSync(collectionsDir)
+ .filter((file) => file.endsWith(".collection.yml"));
+
+ if (collectionFiles.length === 0) {
+ console.log("No collection files found - validation skipped");
+ return true;
+ }
+
+ console.log(`Validating ${collectionFiles.length} collection files...`);
+
+ let hasErrors = false;
+ const usedIds = new Set();
+
+ for (const file of collectionFiles) {
+ const filePath = path.join(collectionsDir, file);
+ console.log(`\nValidating ${file}...`);
+
+ const collection = parseCollectionYaml(filePath);
+ if (!collection) {
+ console.error(`ā Failed to parse ${file}`);
+ hasErrors = true;
+ continue;
+ }
+
+ // Validate the collection structure
+ const errors = validateCollectionManifest(collection, filePath);
+
+ if (errors.length > 0) {
+ console.error(`ā Validation errors in ${file}:`);
+ errors.forEach(error => console.error(` - ${error}`));
+ hasErrors = true;
+ } else {
+ console.log(`ā
${file} is valid`);
+ }
+
+ // Check for duplicate IDs
+ if (collection.id) {
+ if (usedIds.has(collection.id)) {
+ console.error(`ā Duplicate collection ID "${collection.id}" found in ${file}`);
+ hasErrors = true;
+ } else {
+ usedIds.add(collection.id);
+ }
+ }
+ }
+
+ if (!hasErrors) {
+ console.log(`\nā
All ${collectionFiles.length} collections are valid`);
+ }
+
+ return !hasErrors;
+}
+
+// Run validation
+try {
+ const isValid = validateCollections();
+ if (!isValid) {
+ console.error("\nā Collection validation failed");
+ process.exit(1);
+ }
+ console.log("\nš Collection validation passed");
+} catch (error) {
+ console.error(`Error during validation: ${error.message}`);
+ process.exit(1);
+}
\ No newline at end of file
diff --git a/yaml-parser.js b/yaml-parser.js
new file mode 100644
index 00000000..b2099081
--- /dev/null
+++ b/yaml-parser.js
@@ -0,0 +1,113 @@
+// Simple YAML parser for collection files
+const fs = require("fs");
+
+function safeFileOperation(operation, filePath, defaultValue = null) {
+ try {
+ return operation();
+ } catch (error) {
+ console.error(`Error processing file ${filePath}: ${error.message}`);
+ return defaultValue;
+ }
+}
+
+function parseCollectionYaml(filePath) {
+ return safeFileOperation(
+ () => {
+ const content = fs.readFileSync(filePath, "utf8");
+ const lines = content.split("\n");
+ const result = {};
+ let currentKey = null;
+ let currentArray = null;
+ let currentObject = null;
+
+ for (let i = 0; i < lines.length; i++) {
+ const line = lines[i];
+ const trimmed = line.trim();
+
+ if (!trimmed || trimmed.startsWith("#")) continue;
+
+ const leadingSpaces = line.length - line.trimLeft().length;
+
+ // Handle array items starting with -
+ if (trimmed.startsWith("- ")) {
+ if (currentKey === "items") {
+ if (!currentArray) {
+ currentArray = [];
+ result[currentKey] = currentArray;
+ }
+
+ // Parse item object
+ const item = {};
+ currentArray.push(item);
+ currentObject = item;
+
+ // Handle inline properties on same line as -
+ const restOfLine = trimmed.substring(2).trim();
+ if (restOfLine) {
+ const colonIndex = restOfLine.indexOf(":");
+ if (colonIndex > -1) {
+ const key = restOfLine.substring(0, colonIndex).trim();
+ const value = restOfLine.substring(colonIndex + 1).trim();
+ item[key] = value;
+ }
+ }
+ } else if (currentKey === "tags") {
+ if (!currentArray) {
+ currentArray = [];
+ result[currentKey] = currentArray;
+ }
+ const value = trimmed.substring(2).trim();
+ currentArray.push(value);
+ }
+ }
+ // Handle key-value pairs
+ else if (trimmed.includes(":")) {
+ const colonIndex = trimmed.indexOf(":");
+ const key = trimmed.substring(0, colonIndex).trim();
+ let value = trimmed.substring(colonIndex + 1).trim();
+
+ if (leadingSpaces === 0) {
+ // Top-level property
+ currentKey = key;
+ currentArray = null;
+ currentObject = null;
+
+ if (value) {
+ // Handle array format [item1, item2, item3]
+ if (value.startsWith("[") && value.endsWith("]")) {
+ const arrayContent = value.slice(1, -1);
+ if (arrayContent.trim()) {
+ result[key] = arrayContent.split(",").map(item => item.trim());
+ } else {
+ result[key] = [];
+ }
+ currentKey = null; // Reset since we handled the array
+ } else {
+ result[key] = value;
+ }
+ } else if (key === "items" || key === "tags") {
+ // Will be populated by array items
+ result[key] = [];
+ currentArray = result[key];
+ } else if (key === "display") {
+ result[key] = {};
+ currentObject = result[key];
+ }
+ } else if (currentObject && leadingSpaces > 0) {
+ // Property of current object (e.g., display properties)
+ currentObject[key] = value === "true" ? true : value === "false" ? false : value;
+ } else if (currentArray && currentObject && leadingSpaces > 2) {
+ // Property of array item object
+ currentObject[key] = value;
+ }
+ }
+ }
+
+ return result;
+ },
+ filePath,
+ null
+ );
+}
+
+module.exports = { parseCollectionYaml, safeFileOperation };
\ No newline at end of file