Skip to content

Bug(copilot-cli): fix install flow, hooks, and Windows longpaths (#18, #19)#22

Merged
data-goblin merged 6 commits into
releases/26.20from
bug/copilot-cli
May 12, 2026
Merged

Bug(copilot-cli): fix install flow, hooks, and Windows longpaths (#18, #19)#22
data-goblin merged 6 commits into
releases/26.20from
bug/copilot-cli

Conversation

@data-goblin

Copy link
Copy Markdown
Owner

Summary

Addresses the two open Copilot CLI issues. Posted a detailed reply on #19 explaining what changed and why.

  • Removes the root .claude-plugin/plugin.json to match Anthropic's documented marketplace layout. The root is a marketplace catalog (marketplace.json only); per-plugin manifests live under each plugins/<name>/.claude-plugin/. Closes the ambiguity Johannes-Vink reported where the bare copilot plugin install data-goblin/power-bi-agentic-development looked like it should install something useful.
  • Renames the 8 plugin agent files from *.md to *.agent.md. Copilot CLI requires the .agent.md extension; Claude Code matches any *.md in agents/, so the dual extension works in both. Verified by copying one renamed agent to ~/.claude/agents/ and confirming Claude Code's /agents discovers it.
  • Expands the README Copilot section with: marketplace add + per-child plugin install flow; the OWNER/REPO:plugins/<name> subdirectory shortcut; the verification commands (/env, /plugin list, /skills list, /skills info, /agent); a Windows longpath pre-flight section.
  • Adds useful-stuff/enable-windows-longpaths.ps1. One-shot, idempotent, self-checks for admin, toggles both HKLM:\...\FileSystem\LongPathsEnabled and git config --system core.longpaths. Links to Microsoft's MAX_PATH page.
  • Pins the README hooks compatibility note to Copilot CLI ≥ 1.0.26 (2026-04-14) for ${CLAUDE_PLUGIN_ROOT} resolution.

Issues

Test plan

  • CI passes (validate-plugins)
  • Confirm agent rename does not break Claude Code discovery (verified locally for pbip-validator.agent.md)
  • Confirm root plugin.json removal does not break /plugin marketplace add in Claude Code
  • Manual sanity-check of README links

One-shot PowerShell script that toggles both HKLM LongPathsEnabled and
git core.longpaths. Idempotent; reports current state and only writes if
needed. Self-checks for admin and aborts cleanly otherwise. Documented
inline with links to Microsoft's MAX_PATH page.
- Marketplace add and per-child-plugin install commands; verified
  against the documented PLUGIN-NAME@MARKETPLACE-NAME syntax
- Note the interactive /plugin install equivalent
- Note that root-repo install registers metadata only; child plugin
  installs are what pull skills, agents, hooks, MCP servers
- Verification block listing /env, /plugin list, /skills list, /agent
  with their documented behavior
- Windows pre-flight points to useful-stuff/enable-windows-longpaths.ps1
  as the recommended fix; manual one-liners kept as fallback
- Compatibility notes: skills, MCP, hooks parity; flag that agents in
  this repo use *.md (Claude Code convention) while Copilot CLI's
  documented convention is *.agent.md, so agents may not auto-discover

References:
- https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-plugin-reference
- https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing
- https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-cli-plugins
- https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference
Copilot CLI's documented convention requires .agent.md extension for
plugin agents. Claude Code matches any *.md file in agents/ directories,
so the dual extension works in both tools. Verified by copying a renamed
agent to ~/.claude/agents/ and confirming Claude Code's /agents
discovers it.

Updates README links and drops the prior "may not auto-discover in
Copilot" caveat from the compatibility section.
Anthropic's documented marketplace layout (https://code.claude.com/docs/en/plugin-marketplaces)
is .claude-plugin/marketplace.json at the repo root plus
plugins/<name>/.claude-plugin/plugin.json inside each child plugin. The
walkthrough does not include a root plugin.json.

This repo had both, which caused tools (especially Copilot CLI) to treat
the root as a single distributable plugin in addition to a marketplace,
since the root plugin.json declared name/version/description. That's the
ambiguity Johannes-Vink flagged in #19: the bare
'copilot plugin install data-goblin/power-bi-agentic-development' would
appear to install a plugin, but the root has no skills/agents/hooks of
its own.

Removing aligns with the canonical layout. The fields that lived only in
the root plugin.json (homepage, repository, license, keywords) are
covered by the GitHub repo itself, the LICENSE file, and README metadata;
they aren't part of marketplace.json's documented schema.
- Install section now documents both forms: marketplace add + per-child
  plugin install, and the subdirectory shortcut OWNER/REPO:plugins/<name>
- Notes that the root is a marketplace catalog (not a plugin), with a
  link to the Anthropic marketplace docs; covers why the bare root
  install does nothing useful
- Hooks compatibility note pins Copilot CLI to >= 1.0.26 (2026-04-14)
  for ${CLAUDE_PLUGIN_ROOT} resolution; links the Copilot changelog and
  the upstream Windows path bug tracker (claude-code#11984)
@data-goblin data-goblin merged commit 4bdc888 into releases/26.20 May 12, 2026
1 check passed
@data-goblin data-goblin deleted the bug/copilot-cli branch May 13, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant