|
2 | 2 |
|
3 | 3 | Thank you for your interest in contributing to the Awesome GitHub Copilot repository! We welcome contributions from the community to help expand our collection of custom instructions and prompts. |
4 | 4 |
|
| 5 | +## Prerequisites |
| 6 | + |
| 7 | +### Windows Users: Enable Symlinks |
| 8 | + |
| 9 | +This repository uses symbolic links for plugins. On Windows, you need to enable symlink support before cloning: |
| 10 | + |
| 11 | +1. **Enable Developer Mode** (recommended): |
| 12 | + - Open **Settings** → **Update & Security** → **For developers** |
| 13 | + - Enable **Developer Mode** |
| 14 | + - This allows creating symlinks without administrator privileges |
| 15 | + |
| 16 | +2. **Configure Git to use symlinks**: |
| 17 | + ```bash |
| 18 | + git config --global core.symlinks true |
| 19 | + ``` |
| 20 | + |
| 21 | +3. **Clone the repository** (after enabling the above): |
| 22 | + ```bash |
| 23 | + git clone https://github.com/github/awesome-copilot.git |
| 24 | + ``` |
| 25 | + |
| 26 | +> **Note:** If you cloned the repository before enabling symlinks, the symlinks will appear as plain text files containing the target path. You'll need to delete the local repository and re-clone after enabling symlink support. |
| 27 | +
|
| 28 | +**Alternative for older Windows versions:** If Developer Mode is not available, you can run Git Bash as Administrator, or grant your user the "Create symbolic links" privilege via Local Security Policy (`secpol.msc` → Local Policies → User Rights Assignment → Create symbolic links). |
| 29 | + |
5 | 30 | ## How to Contribute |
6 | 31 |
|
7 | 32 | ### Adding Instructions |
@@ -186,6 +211,49 @@ For full example of usage checkout edge-ai tasks collection: |
186 | 211 | - **Clear purpose**: The collection should solve a specific problem or workflow |
187 | 212 | - **Validate before submitting**: Run `node validate-collections.js` to ensure your manifest is valid |
188 | 213 |
|
| 214 | +### Working with Plugins |
| 215 | + |
| 216 | +Plugins are installable packages automatically generated from collections. They contain symlinked agents, commands (prompts), and skills from the source collection. |
| 217 | + |
| 218 | +#### Creating a Plugin from a Collection |
| 219 | + |
| 220 | +When you create a new collection, you can generate a corresponding plugin: |
| 221 | + |
| 222 | +```bash |
| 223 | +# Migrate a collection to a new plugin (first time only) |
| 224 | +npm run plugin:migrate -- --collection <collection-id> |
| 225 | +``` |
| 226 | + |
| 227 | +#### Updating Plugins After Collection Changes |
| 228 | + |
| 229 | +If you modify a collection (add/remove items, update metadata), refresh the corresponding plugin: |
| 230 | + |
| 231 | +```bash |
| 232 | +# Refresh a single plugin |
| 233 | +npm run plugin:refresh -- --collection <collection-id> |
| 234 | +
|
| 235 | +# Refresh all existing plugins |
| 236 | +npm run plugin:refresh -- --all |
| 237 | +``` |
| 238 | + |
| 239 | +#### Plugin Structure |
| 240 | + |
| 241 | +```plaintext |
| 242 | +plugins/<collection-id>/ |
| 243 | +├── .github/plugin/plugin.json # Plugin metadata (auto-generated) |
| 244 | +├── README.md # Plugin documentation (auto-generated) |
| 245 | +├── agents/ # Symlinks to agent files (.md) |
| 246 | +├── commands/ # Symlinks to prompt files (.md) |
| 247 | +└── skills/ # Symlinks to skill folders |
| 248 | +``` |
| 249 | + |
| 250 | +#### Plugin Guidelines |
| 251 | + |
| 252 | +- **Symlinks, not copies**: Plugin files are symlinks to the source files, avoiding duplication |
| 253 | +- **Instructions excluded**: Instructions are not currently supported in plugins |
| 254 | +- **Auto-generated content**: The `plugin.json` and `README.md` are generated from the collection metadata |
| 255 | +- **Keep plugins in sync**: After modifying a collection, run `plugin:refresh` to update the plugin |
| 256 | + |
189 | 257 | ## Submitting Your Contribution |
190 | 258 |
|
191 | 259 | 1. **Fork this repository** |
|
0 commit comments