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

39
.vscode/tasks.json vendored
View File

@@ -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"
}
]
}