feat: add GitHub Copilot CLI as a supported platform — v1.3.0#18
Merged
Conversation
Declares A Team's skills, agents, and hooks paths for GitHub Copilot CLI to discover via 'copilot plugin install RBraga01/a-team:a-team'. Mirrors the relative-path conventions used by .cursor-plugin/plugin.json. Refs RBraga01#17
Mirrors .codex-plugin/hooks/hooks.json shape but extends from SessionStart-only to full 4-event enforcement parity with Claude Code's .claude/settings.json. Hook commands use project-root-relative paths and defensive fallbacks (warns and continues if a script is missing rather than crashing the session). Refs RBraga01#17
- Intro line: list Copilot CLI as a supported platform - Folder layout: add .copilot-plugin/ entry - 'What each platform loads' table: add Copilot CLI row with the four hook events it carries - New platform-specific note + install command (copilot plugin install RBraga01/a-team:a-team) Refs RBraga01#17
- CLAUDE.md: intro line, folder layout, Cross-Platform Support table - AGENTS.md: model-tier note, Cross-Platform Support table Refs RBraga01#17
…klist New skills must now also be registered in .copilot-plugin/plugin.json's implicit skill discovery (via the skills: '../skills/' path) so Copilot CLI loads them alongside the other 4 platforms. Refs RBraga01#17
Marks the addition of Copilot CLI as a supported platform. Bumps: - .claude-plugin/plugin.json + marketplace.json - .codex-plugin/plugin.json - .cursor-plugin/plugin.json - AGENTS.md, CLAUDE.md, README.md header lines .copilot-plugin/plugin.json is born at 1.3.0. Refs RBraga01#17
…ooks New unit suite tests/lib/plugin-manifests.test.js (12 cases) asserts: - each *-plugin/plugin.json parses as JSON and has required fields - plugin name 'a-team' is consistent across manifests - versions are in lockstep across all 4 plugin manifests - marketplace.json a-team entry version matches .claude-plugin/plugin.json - referenced hooks files exist and are themselves parseable JSON Hooks into 'npm test' (and a new 'npm run test:manifests' shortcut) so manifest drift fails CI rather than being caught manually. Brings tests from 68 → 80; full suite passes. Refs RBraga01#17
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.
Summary
Adds GitHub Copilot CLI as the 5th supported platform via
.copilot-plugin/plugin.jsonand.copilot-plugin/hooks/hooks.json, mirroring the existing.codex-plugin//.cursor-plugin/pattern. After this lands, users can run:…and get A Team's full agent roster, skill library, and the four enforcement hooks (
SessionStart,PreToolUse,PostToolUse,Stop) active inside their Copilot CLI sessions — no new agents or skills introduced.Closes #17
Type of change
Why it belongs in a universal baseline
Platform support expands who can use A Team without changing what A Team does. The existing 4-platform baseline (Claude Code, Codex CLI, Cursor, OpenCode) already establishes the precedent. Copilot CLI shares the same agent-plugin manifest spec as Codex CLI, so the marginal maintenance cost is minimal and a meaningful population of professional developers (Copilot Pro / Copilot Business / GitHub Enterprise) gets first-class access.
Platforms tested
npm testclean, no behavioral changes; existing.claude/settings.jsonhooks untouched).codex-plugin/other than version bump to 1.3.0).cursor-plugin/other than version bump)copilot plugin install thejesh23/a-team:a-team)Checklist
allowedTools/model/descriptionfrontmatter changes needed)using-a-team/SKILL.mdtrigger registration needed)AGENTS.md/README.mdagent tablesorchestrator.mdinit table.copilot-plugin/manifest added;CONTRIBUTING.mdchecklist updated to reference it for future skill additionscd tests && npm test(68 → 80 tests; +12 new manifest validation tests)What's in this PR (by commit)
feat: add .copilot-plugin/plugin.json manifest for Copilot CLIfeat: add Copilot CLI hooks for SessionStart/PreToolUse/PostToolUse/Stopdocs(readme): add GitHub Copilot CLI to platform integrationdocs: add Copilot CLI to project overview and agent rosterdocs(contributing): add .copilot-plugin to manifest registration checklistchore(pr-template): add GitHub Copilot CLI checkbox to Platforms testedchore: bump version to 1.3.0 across plugin manifests and overview docsdocs(changelog): record 1.3.0 — Copilot CLI supporttest: validate every platform manifest's JSON, fields, version, and hooksEach commit is scoped to one concern so individual pieces can be reviewed or reverted independently.
Design notes
.codex-plugin/hooks/hooks.jsontoday only declaresSessionStart. The new Copilot CLI hooks file extends to all four events (SessionStart,PreToolUse,PostToolUse,Stop) for parity with Claude Code's.claude/settings.json. Commands are byte-identical to Claude Code's where they overlap.scripts/...paths matching Codex CLI's working pattern. All commands includetest -f ... || echo WARNINGfallbacks so a missing script degrades to a warning rather than crashing the session..copilot-plugin/is intentionally not added toinstall.sh'sDIRS=array — none of the existing per-platform plugin dirs are, because project-install (Options A–D) and plugin-install (copilot plugin install …) are independent flows. The README install instructions cover the project-install path; the new "GitHub Copilot CLI" section under "Multi-CLI Integration" covers the plugin-install path..plugin/,plugin.json,.github/plugin/,.claude-plugin/) does not include.copilot-plugin/— that would need a separate file layout and is a better fit for a follow-up PR.New manifest tests
tests/lib/plugin-manifests.test.js(12 tests, all passing) asserts:<platform>-plugin/plugin.jsonparses as JSON and has required fields (name,description,version,author,license).name: "a-team"and the sameversion(so a future contributor can't bump 3 of 4 by accident).marketplace.json'sa-teamentry stays in sync with.claude-plugin/plugin.json's version.hooksfile: the file exists and is itself parseable JSON.These guard against the most common drift mode when adding new platforms or bumping versions.