Move plugin.json to plugin root; declare skills for CLI/marketplace compliance - #122
Merged
Conversation
…ompliance The GitHub Copilot CLI plugin reference requires plugin.json at the root of the plugin directory. BCQuality shipped it only under .claude-plugin/, which is tolerated by --plugin-dir but is non-canonical and can be rejected on the marketplace / 'plugin install owner/repo' path. Mirror the proven microsoft/BC-ALAgents al-review plugin layout: move plugin.json to the repo (plugin) root and add an explicit skills array plus repository/license/keywords metadata to both plugin.json and marketplace.json. The skills array pins the one real skill (skills/bcquality-al-review/), avoiding ambiguity with the loose meta .md files in skills/. Verified: 'copilot --plugin-dir <clone>' still loads the bcquality plugin and the bcquality-al-review skill registers at runtime, identical to before.
gggdttt
added a commit
that referenced
this pull request
Jul 30, 2026
Fix bridge skill manifest references after #122 root move
adamLiveware
pushed a commit
to livewaresolutions/BCQuality
that referenced
this pull request
Jul 31, 2026
microsoft#122 moved the plugin manifest to the root plugin.json (and moved the bridge skill to skills/bcquality-al-review/), but the bridge SKILL.md prose still pointed at the now-deleted .claude-plugin/plugin.json: - ## Plugin root told the host to resolve PLUGIN_ROOT by anchoring on .claude-plugin/plugin.json, a marker that no longer exists, so the location-based fallback could never find it. Anchor on root plugin.json. - ## Notes described .claude-plugin/plugin.json as the manifest the plugin uses and root plugin.json as a future form -- the reverse of reality after microsoft#122. Describe root plugin.json as canonical and .claude-plugin/ marketplace.json as the marketplace entry. Doc-only; no behavior change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The plugin manifest layout did not match the GitHub Copilot CLI plugin reference, which states the manifest must be a
plugin.jsonfile at the root of the plugin directory. BCQuality shippedplugin.jsononly under.claude-plugin/.To be precise about what was and was not broken:
plugin.jsondoes exist (added when BCQuality was packaged as an installable plugin) — so "there is no plugin.json" is not accurate.skillsarray is not a defect: the reference documentsskills/as the default location, and BCQuality's skill already lives atskills/bcquality-al-review/. That is whycopilot --plugin-dir <clone>already auto-discovered and registered the skill.plugin.json(.claude-plugin/instead of the plugin root).--plugin-dirtolerates the.claude-plugin/location, but it is non-canonical and can be rejected on the stricter marketplace /copilot plugin install owner/repopath.Change
Mirror the proven
microsoft/BC-ALAgentsal-reviewplugin layout:plugin.jsonto the repository (plugin) root.skills: ["./skills/bcquality-al-review/"]array to bothplugin.jsonandmarketplace.json. This pins the single real skill and avoids any ambiguity with the loose meta.mdfiles (entry.md,do.md,read.md,write.md) that also sit underskills/.repository/license/keywordsmetadata for parity and completeness.source: "./"is kept intentionally: the bridge skill's Entry protocol needs the full BCQuality tree (knowledge, tools, layer skills), so the whole repository is the plugin.Verification
copilot --plugin-dir <clone>was run before and after the change:copilot ... plugin listlists thebcqualityplugin in both cases.bcquality-al-reviewskill registers at runtime in both cases (identical to the known-goodal-reviewplugin).No functional change to the already-working
--plugin-dirconsumption path; this brings the manifest into documented compliance and unblocks the marketplace /plugin installpath.