Proposal - Collections #221
aaronpowell
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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