Collections #221
Replies: 3 comments 1 reply
-
This has been merged to |
Beta Was this translation helpful? Give feedback.
-
@aaronpowell @agreaves-ms Created a PR to improve collections and provide useful context that is not easily found. The POC is based on |
Beta Was this translation helpful? Give feedback.
-
@aaronpowell what are your thoughts on creating issues to add collections with usage for previously added "instruction sets". Then we can tag original contributor to give opportunity for them to add. For example, create an issue for the |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Collections has shipped as a feature, so I'm leaving this open as a way to discuss the how it evolves.
There’s recurring feedback across PRs and issues (see #135, #167, and #169) asking for a way to signal when prompts, instructions, and chat modes are related and best used together. This proposal introduces “Collections” — a lightweight way to group related resources without adding custom frontmatter to files or forcing contributors to touch lots of places.
Mental model
A Collection represents a role, function, or scenario that benefits from several pieces working together. For example:
Goals
To make Collections work, there's are the goals that I've come up with, based off the discussions and feedback we've received so far:
Non-goals
Collection design
To make a Collection useful, we're going to need to have some amount of additional information beyond the current files themselves, it's likely we'd want to have information such as the description of the collection and how to use it, on top of some way to indicate the files that belong to the collection.
Proposed design
The initial proposal is that we add a new folder into the repo,
collections
, which contains a manifest file,collections/<collection-slug>.collection.yml
(or .json), that is the metadata for the Collection (see the example).Then the update script we currently have can be extended to read the manifest and generate a
README.<collection-slug>.md
file (probably within thecollections
folder to avoid too many root-level files) and have it linked from the mainREADME.md
.Designing it this way would see the benefits of:
Example:
collections/devops-oncall.collection.yml
Notes:
kind
is a small, controlled vocabulary (prompt | instruction | chat-mode).items.path
is a relative repo root path; files can live anywhere (no reorg required).Contribution flow
collections/<slug>.collection.yml
with id, name, description, and items - this is something we could likely automate with VS Code tasks or a shell script.update-readme.js
.update-readme.js
.Tooling and automation
id
uniqueness across collections.items.path
exists.collections/README.md
(and update the top-level README section) from manifests:.schemas/collection.schema.json
).Migration plan
Open questions for feedback
collections/*.yml
vscollections/<slug>/collection.yml
?Alternatives considered
collections.yml
:Risks and mitigations
Next steps
Appendix: minimal manifest template
Would love feedback on the above, especially on naming, manifest format, and where we should surface Collections in the repo for the best contributor and reader experience.
Beta Was this translation helpful? Give feedback.
All reactions