diff --git a/AGENTS.md b/AGENTS.md index 4af726cc..b397671e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -32,9 +32,12 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom # Install dependencies npm ci -# Build the project (generates README.md) +# Build the project (generates README.md and marketplace.json) npm run build +# Generate marketplace.json only +npm run plugin:generate-marketplace + # Validate collection manifests npm run collection:validate @@ -93,9 +96,18 @@ All agent files (`*.agent.md`), prompt files (`*.prompt.md`), and instruction fi - Follow the [GitHub Copilot hooks specification](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/use-hooks) - Optionally includes `tags` field for categorization +#### Plugin Folders (plugins/*) +- Each plugin is a folder containing a `.github/plugin/plugin.json` file with metadata +- plugin.json must have `name` field (matching the folder name) +- plugin.json must have `description` field (describing the plugin's purpose) +- plugin.json must have `version` field (semantic version, e.g., "1.0.0") +- Plugin folders can contain any combination of agents, prompts, instructions, skills, and hooks +- The `marketplace.json` file is automatically generated from all plugins during build +- Plugins are discoverable and installable via GitHub Copilot CLI + ### Adding New Resources -When adding a new agent, prompt, instruction, skill, or hook: +When adding a new agent, prompt, instruction, skill, hook, or plugin: **For Agents, Prompts, and Instructions:** 1. Create the file with proper front matter @@ -121,6 +133,14 @@ When adding a new agent, prompt, instruction, skill, or hook: 5. Update the README.md by running: `npm run build` 6. Verify the skill appears in the generated README +**For Plugins:** +1. Create a new folder in `plugins/` with a descriptive name (lowercase with hyphens) +2. Create `.github/plugin/plugin.json` with metadata (name, description, version) +3. Add agents, prompts, instructions, skills, or hooks to the plugin folder +4. Run `npm run build` to update README.md and marketplace.json +5. Verify the plugin appears in `.github/plugin/marketplace.json` +6. Test plugin installation: `copilot plugin install @awesome-copilot` + ### Testing Instructions ```bash @@ -219,6 +239,15 @@ For hook folders (hooks/*/): - [ ] Follows [GitHub Copilot hooks specification](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/use-hooks) - [ ] Optionally includes `tags` array field for categorization +For plugin folders (plugins/*/): +- [ ] Folder contains a `.github/plugin/plugin.json` file with metadata +- [ ] plugin.json has `name` field matching folder name (lowercase with hyphens) +- [ ] plugin.json has non-empty `description` field +- [ ] plugin.json has `version` field (semantic version, e.g., "1.0.0") +- [ ] Folder name is lower case with hyphens +- [ ] Plugin resources (agents, prompts, etc.) follow their respective guidelines +- [ ] Run `npm run build` to verify marketplace.json is updated correctly + ## Contributing This is a community-driven project. Contributions are welcome! Please see: diff --git a/eng/README.md b/eng/README.md index ff95c85d..5306315b 100644 --- a/eng/README.md +++ b/eng/README.md @@ -1,6 +1,30 @@ # Contributor Reporting (Maintainers) 🚧 -This directory contains a lightweight helper to generate human-readable reports about missing contributors. +This directory contains build scripts and utilities for maintaining the repository. + +## Build Scripts + +### `update-readme.mjs` +Generates the main README.md and documentation files from the repository content (agents, prompts, instructions, skills, hooks, collections). + +### `generate-marketplace.mjs` +Automatically generates `.github/plugin/marketplace.json` from all plugin directories in the `plugins/` folder. This file is used by the GitHub Copilot CLI to discover and install plugins from this repository. + +**How it works:** +- Scans all directories in `plugins/` +- Reads each plugin's `.github/plugin/plugin.json` for metadata +- Generates a consolidated `marketplace.json` with all available plugins +- Runs automatically as part of `npm run build` + +**To run manually:** +```bash +npm run plugin:generate-marketplace +``` + +### `generate-website-data.mjs` +Generates JSON data files for the website from repository content. + +## Contributor Tools - `contributor-report.mjs` — generates a markdown report of merged PRs for missing contributors (includes shared helpers). - `add-missing-contributors.mjs` — on-demand maintainer script to automatically add missing contributors to `.all-contributorsrc` (infers contribution types from merged PR files, then runs the all-contributors CLI).