feat(plugin): support Copilot CLI plugin generation from collection manifests#496
feat(plugin): support Copilot CLI plugin generation from collection manifests#496agreaves-ms merged 12 commits intomainfrom
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
There was a problem hiding this comment.
Pull request overview
This PR introduces comprehensive Copilot CLI plugin support for HVE Core, enabling agents, prompts, instructions, and skills to be packaged as installable CLI plugins through YAML collection manifests.
Changes:
- Added plugin generation pipeline with PowerShell scripts and YAML collection manifests
- Implemented automated validation and catalog generation workflows
- Standardized table formatting across 20+ agent and instruction files
Reviewed changes
Copilot reviewed 242 out of 242 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
scripts/plugins/Validate-Collections.ps1 |
Collection manifest validation with path existence and kind-suffix checks |
scripts/plugins/Generate-Plugins.ps1 |
Plugin directory generation from collection manifests with symlinks |
scripts/plugins/Generate-Badges.ps1 |
VS Code install badge catalog generator for artifacts |
scripts/plugins/Modules/PluginHelpers.psm1 |
Shared utilities for YAML parsing, symlink creation, and README generation |
scripts/linting/schemas/collection-manifest.schema.json |
JSON schema for collection YAML manifest validation |
collections/*.collection.yml |
10 collection manifests defining artifact bundles |
plugins/**/ |
Generated plugin directories with symlinked content |
.github/workflows/plugin-validation.yml |
Reusable workflow for plugin validation |
.github/workflows/pr-validation.yml |
Integrated plugin validation into PR checks |
docs/getting-started/methods/cli-plugins.md |
Installation guide for CLI plugins |
docs/catalog.md |
Auto-generated artifact catalog with install badges |
Multiple .agent.md, .instructions.md, .prompt.md files |
Table formatting standardization |
Comments suppressed due to low confidence (4)
scripts/plugins/Modules/PluginHelpers.psm1:1
- The
-NoNewlineparameter prevents a trailing newline in the JSON output. However, most JSON formatting conventions and Git workflows expect files to end with a newline character. Consider removing-NoNewlineor adding an explicit newline after serialization to maintain consistency with standard JSON formatting practices.
scripts/plugins/Modules/PluginHelpers.psm1:1 - Similar to the plugin.json issue, markdown files conventionally end with a newline character. The
-NoNewlineparameter may cause issues with Git diff display and standard text editor expectations. Consider removing this parameter to ensure generated README files follow markdown formatting conventions.
.github/workflows/plugin-validation.yml:1 - The
soft-failinput is defined but its implementation at line 51 only affects the plugin freshness check exit behavior, not the collection validation step at line 44. If collection validation fails, the workflow will exit regardless of the soft-fail setting. Consider applying the soft-fail behavior consistently to both validation steps or clarifying in the description that it only applies to plugin freshness checks.
docs/catalog.md:1 - The warning comment indicates this file is auto-generated and should not be edited manually, but there's no corresponding entry in
.gitattributesto mark it as generated. Consider addingdocs/catalog.md linguist-generated=trueto.gitattributesto prevent this file from affecting repository language statistics and to clearly identify it as generated content in the GitHub UI.
dbe3cef to
a496f50
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #496 +/- ##
=======================================
Coverage 83.43% 83.43%
=======================================
Files 20 20
Lines 3507 3507
=======================================
Hits 2926 2926
Misses 581 581
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
@agreaves-ms can you link that CLI backlog bug and maybe the symlink one too (cause I think this mostly closes them) |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 243 out of 243 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (3)
scripts/plugins/Generate-Badges.ps1:1
- The file has a UTF-8 BOM (Byte Order Mark) at the beginning, indicated by the '' character before the shebang. This can cause issues with script execution on some systems. Remove the BOM from the file.
scripts/plugins/Modules/PluginHelpers.psm1:1 - The
-NoNewlineparameter onSet-Contentwill create a JSON file without a trailing newline, which violates common file format conventions and may cause issues with version control systems that expect files to end with a newline. Remove the-NoNewlineparameter.
scripts/plugins/Modules/PluginHelpers.psm1:1 - The
-NoNewlineparameter onSet-Contentwill create a README file without a trailing newline, which violates common file format conventions and may cause issues with version control systems that expect files to end with a newline. Remove the-NoNewlineparameter.
WilliamBerryiii
left a comment
There was a problem hiding this comment.
Welp ... looks good. Can't wait to try this out.
…lity across multiple instruction files - Align table headers and content for consistency - Enhance clarity in documentation structure - Ensure uniformity in Markdown style across various files 📚 - Generated by Copilot
…ation and validation - implement Generate-Plugins.ps1 for creating plugin directories from manifests - add Validate-Collections.ps1 to validate collection manifest structure and paths - create PluginHelpers.psm1 for shared functions used in plugin generation - update README.md with usage instructions and script descriptions - ran scripts to produce plugins for Copilot CLI 🔧 - Generated by Copilot
…on files 🔧 - Generated by Copilot
…idelines for consistency feat(prompts): correct relative links in README for agents section style(scripts): refine ignore patterns in markdown link check configuration 🔗 - Generated by Copilot
…consistency - Standardize table formatting for agents, commands, and instructions - Improve descriptions for better understanding of functionalities - Add missing instructions and enhance existing ones across multiple plugins 🔧 - Generated by Copilot
…nd formatting 🔧 - Generated by Copilot
- delete Generate-Badges.ps1 script - update package.json to remove badge generation command - modify Validate-MarkdownFrontmatter.ps1 to exclude docs/catalog.md - remove show_badge from collection-manifest.schema.json 🔧 - Generated by Copilot
- register marketplace source for HVE Core - update installation commands for full suite and individual collections 🔧 - Generated by Copilot
e1e9183 to
c34a2e2
Compare
…og planning and triage instructions 🔧 - Generated by Copilot
…adge - add installation badge for VS Code Marketplace - update installation instructions for clarity 🔧 - Generated by Copilot
🤖 I have created a release *beep* *boop* --- ## [2.3.0](hve-core-v2.2.0...hve-core-v2.3.0) (2026-02-13) ### ✨ Features * **agents:** add GitHub backlog management pipeline ([#448](#448)) ([2b4d123](2b4d123)) * **docs:** define inactivity closure policies for issues and PRs ([#452](#452)) ([5e710fd](5e710fd)) * **extension:** implement collection-based plugin distribution system ([#439](#439)) ([3156d98](3156d98)) * **instructions:** replace EVEN/ODD hardcoding with runtime milestone discovery protocol ([#486](#486)) ([ae95eb2](ae95eb2)) * **plugin:** support Copilot CLI plugin generation from collection manifests ([#496](#496)) ([e6cee85](e6cee85)) * **scripts:** enhance on-create.sh to install actionlint and PowerShell modules ([#500](#500)) ([67585f5](67585f5)) ### 🐛 Bug Fixes * **docs:** replace broken relative link with inline code reference ([#465](#465)) ([8133b36](8133b36)) * **instructions:** prevent local-only paths from leaking into GitHub issues ([#489](#489)) ([497d2fe](497d2fe)) * **workflows:** prevent release-please infinite loop on main branch ([#470](#470)) ([134bdd6](134bdd6)) * **workflows:** remove release-please skip guard that prevents tag creation ([#511](#511)) ([5e53271](5e53271)) ### 📚 Documentation * **agents:** add GitHub Backlog Manager documentation and agent catalog ([#503](#503)) ([5e818ce](5e818ce)) * align CONTRIBUTING.md with docs/contributing/ guides ([#445](#445)) ([73ef6aa](73ef6aa)) ### ♻️ Refactoring * **scripts:** refactor dev-tools and lib scripts to use CIHelpers module ([#482](#482)) ([fdf9145](fdf9145)) * **scripts:** standardize PowerShell entry point guard pattern ([#477](#477)) ([6b84a8e](6b84a8e)) ### 🔧 Maintenance * **config:** standardize action mappings in artifact-retention.yml ([#487](#487)) ([7927db2](7927db2)) * **deps-dev:** bump cspell from 9.6.2 to 9.6.4 in the npm-dependencies group ([#461](#461)) ([c788095](c788095)) * **deps:** bump actions/setup-python from 5.1.1 to 6.2.0 in the github-actions group ([#462](#462)) ([69ef3c9](69ef3c9)) * **security:** add SBOM artifact retention policy ([#479](#479)) ([8031557](8031557)), closes [#453](#453) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: hve-core-release-please[bot] <254602402+hve-core-release-please[bot]@users.noreply.github.com>
feat(plugin): support Copilot CLI plugin generation from collection manifests
Description
Fixes #476
Fixes #392
Added Copilot CLI plugin support, enabling HVE Core agents, prompts, instructions, and skills to be packaged as installable CLI plugins. This feature introduces YAML collection manifests that define artifact bundles, PowerShell scripts that generate plugin directories with symlinked content, a validation pipeline, and an auto-generated artifact catalog with VS Code install badges.
feat(plugin): added 10 collection manifests (
collections/*.collection.yml) defining artifact bundles for ado, coding-standards, data-science, git, github, hve-core-all, project-planning, prompt-engineering, rpi, and security-planningfeat(plugin): implemented
Generate-Plugins.ps1to create plugin directories from collection manifests with symlinked agents, commands, instructions, and skills.github/plugin/plugin.json, a generatedREADME.md, and symlinks to source artifactsfeat(plugin): implemented
Validate-Collections.ps1to validate collection manifest structure, required fields, and referenced file paths againstcollection-manifest.schema.jsonfeat(plugin): implemented
Generate-Badges.ps1to producedocs/catalog.mdwith browsable tables of all agents, prompts, instructions, and skills with one-click VS Code install badgesfeat(plugin): created
PluginHelpers.psm1shared PowerShell module with utility functions for path resolution, manifest parsing, CI annotation output, symlink creation, and README generationci(plugin): added
plugin-validation.ymlreusable workflow that validates collection manifests and checks plugin directory freshness against generated outputci(plugin): integrated plugin validation into the existing
pr-validation.ymlpipeline as a required jobfeat(plugin): added
plugin:generate,plugin:validate, andplugin:badgesnpm scripts topackage.jsondocs(plugin): added CLI plugins installation guide at
docs/getting-started/methods/cli-plugins.mdwith prerequisites, registration, and usage instructionsdocs(plugin): updated
docs/getting-started/README.mdto include Copilot CLI Plugins as the eighth installation methoddocs(plugin): generated
docs/catalog.mdartifact catalog with 21 agents, 27 prompts, 24 instructions, and 1 skill listed with install badgesfeat(plugin): generated 10 plugin directories under
plugins/with symlinked content from.github/agents/,.github/prompts/,.github/instructions/, and.github/skills/refactor(plugin): reordered version and description fields in
plugin.jsonfiles for consistencystyle(instructions): standardized table formatting across 20+ agent, instruction, and prompt files for consistent column alignment
feat(plugin): added
collection-manifest.schema.jsonfor validating collection YAML manifest structureRelated Issue(s)
Type of Change
Select all that apply:
Code & Documentation:
Infrastructure & Configuration:
AI Artifacts:
prompt-builderagent and addressed all feedback.github/instructions/*.instructions.md).github/prompts/*.prompt.md).github/agents/*.agent.md).github/skills/*/SKILL.md)Other:
.ps1,.sh,.py)Sample Prompts (for AI Artifact Contributions)
AI artifact changes in this PR are limited to table formatting standardization (style-only). No new agents, prompts, or instructions were introduced.
Testing
Plugin Generation and Validation
npm run plugin:validate— all 10 collection manifests passed validation (0 errors)npm run plugin:generate— generated 10 plugin directories with 41 agents, 54 commands, 71 instructions, and 1 skillgit diff --quiet plugins/confirmed generated output matches committed stateCopilot CLI Plugin Usage
Once installed via the plugin marketplace, artifacts become available in Copilot CLI:
Marketplace registration and plugin install:
Agents — Available via
/agentslash command or--agentflag:Commands — Prompts from
commands/become namespaced slash commands:Instructions — Included in plugin directories but not natively consumed by the CLI plugin system. Instructions apply when using the direct file approach (cloning hve-core and letting CLI auto-discover from
.github/). For plugin installs, agent files reference instructions internally, so instruction guidance carries through agent behavior.Known CLI Limitations
${input:variableName}template variables are VS Code-only; CLI users pass parameters as natural language#file:context references are VS Code-only; CLI agents use file-read tools instead~/.copilot/mcp-config.jsonAutomated Checks
All required automated checks passed (see Required Automated Checks section below).
Checklist
Required Checks
AI Artifact Contributions
/prompt-analyzeto review contributionprompt-builderreviewRequired Automated Checks
The following validation commands must pass before merging:
npm run lint:mdnpm run spell-checknpm run lint:frontmatternpm run lint:md-linksnpm run lint:psGHCP Artifact Maturity
All modified GHCP artifacts (agents, instructions, prompts) are existing stable files with style-only table formatting changes. No non-stable maturity levels detected.
.agent.mdfiles.instructions.mdfilespull-request.prompt.mdrisk-register.prompt.mdSecurity Considerations
Additional Notes
plugins/use symlinks to source artifacts, enabling zero-copy installation and automatic content synchronization.plugin-validation.ymlworkflow checks both manifest validity and plugin freshness (whether generated output matches current manifests).display.ordering(manual or alpha) anddisplay.show_badgesettings for catalog generation.scripts/README.mdwas updated to document the newscripts/plugins/directory and its scripts.🔧 - Generated by Copilot