diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e2e87f17..879f8c1c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,6 +2,31 @@ 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. +## Prerequisites + +### Windows Users: Enable Symlinks + +This repository uses symbolic links for plugins. On Windows, you need to enable symlink support before cloning: + +1. **Enable Developer Mode** (recommended): + - Open **Settings** → **Update & Security** → **For developers** + - Enable **Developer Mode** + - This allows creating symlinks without administrator privileges + +2. **Configure Git to use symlinks**: + ```bash + git config --global core.symlinks true + ``` + +3. **Clone the repository** (after enabling the above): + ```bash + git clone https://github.com/github/awesome-copilot.git + ``` + +> **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. + +**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). + ## How to Contribute ### Adding Instructions @@ -186,6 +211,49 @@ For full example of usage checkout edge-ai tasks collection: - **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 +### Working with Plugins + +Plugins are installable packages automatically generated from collections. They contain symlinked agents, commands (prompts), and skills from the source collection. + +#### Creating a Plugin from a Collection + +When you create a new collection, you can generate a corresponding plugin: + +```bash +# Migrate a collection to a new plugin (first time only) +npm run plugin:migrate -- --collection +``` + +#### Updating Plugins After Collection Changes + +If you modify a collection (add/remove items, update metadata), refresh the corresponding plugin: + +```bash +# Refresh a single plugin +npm run plugin:refresh -- --collection + +# Refresh all existing plugins +npm run plugin:refresh -- --all +``` + +#### Plugin Structure + +```plaintext +plugins// +├── .github/plugin/plugin.json # Plugin metadata (auto-generated) +├── README.md # Plugin documentation (auto-generated) +├── agents/ # Symlinks to agent files (.md) +├── commands/ # Symlinks to prompt files (.md) +└── skills/ # Symlinks to skill folders +``` + +#### Plugin Guidelines + +- **Symlinks, not copies**: Plugin files are symlinks to the source files, avoiding duplication +- **Instructions excluded**: Instructions are not currently supported in plugins +- **Auto-generated content**: The `plugin.json` and `README.md` are generated from the collection metadata +- **Keep plugins in sync**: After modifying a collection, run `plugin:refresh` to update the plugin + ## Submitting Your Contribution 1. **Fork this repository** diff --git a/README.md b/README.md index 5398041d..e198cbfb 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,26 @@ An [`llms.txt`](https://github.github.io/awesome-copilot/llms.txt) file followin ## 🔧 How to Use +### 🔌 Plugins + +Plugins are installable packages generated from collections. Each plugin contains symlinked agents, commands (prompts), and skills from the source collection, making it easy to install a curated set of resources. + +#### Installing Plugins + +First, add the Awesome Copilot marketplace to your Copilot CLI: + +```bash +copilot marketplace add github/awesome-copilot +``` + +Then install any plugin from the collection: + +```bash +copilot plugin install @awesome-copilot +``` + +Alternatively, you can use the `/plugin` command within a Copilot chat session to browse and install plugins interactively. + ### 🤖 Custom Agents Custom agents can be used in Copilot coding agent (CCA), VS Code, and Copilot CLI (coming soon). For CCA, when assigning an issue to Copilot, select the custom agent from the provided list. In VS Code, you can activate the custom agent in the agents session, alongside built-in agents like Plan and Agent. @@ -107,6 +127,7 @@ For AI coding agents working with this project, refer to [AGENTS.md](AGENTS.md) ├── instructions/ # Coding standards and best practices (.instructions.md) ├── agents/ # AI personas and specialized modes (.agent.md) ├── collections/ # Curated collections of related items (.collection.yml) +├── plugins/ # Installable plugins generated from collections ├── scripts/ # Utility scripts for maintenance └── skills/ # AI capabilities for specialized tasks ```