Implement Collections feature for grouping related prompts, instructions, and chat modes (#232)

* Initial plan

* Implement core Collections feature with YAML parsing and README generation

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>

* Complete Collections feature implementation with validation, tooling, and documentation

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>

* Update generated README files to include collections instructions

* Fix YAML parsing logic bug: replace impossible condition with proper indentation check

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>

* Refactor: Extract YAML parser to shared module and improve user experience

Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>

* fixing task and file permissions

* Better args handling

* Adding some more collections

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
Co-authored-by: Aaron Powell <me@aaron-powell.com>
This commit is contained in:
Copilot
2025-09-17 10:15:34 +10:00
committed by GitHub
parent f767285190
commit dfe63f4542
29 changed files with 1434 additions and 3 deletions

View File

@@ -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**