Skip to content

feat: add GitHub Copilot CLI as a supported platform — v1.3.0#18

Merged
RBraga01 merged 10 commits into
RBraga01:mainfrom
thejesh23:feat/copilot-cli-support
Jun 17, 2026
Merged

feat: add GitHub Copilot CLI as a supported platform — v1.3.0#18
RBraga01 merged 10 commits into
RBraga01:mainfrom
thejesh23:feat/copilot-cli-support

Conversation

@thejesh23

Copy link
Copy Markdown
Contributor

Summary

Adds GitHub Copilot CLI as the 5th supported platform via .copilot-plugin/plugin.json and .copilot-plugin/hooks/hooks.json, mirroring the existing .codex-plugin/ / .cursor-plugin/ pattern. After this lands, users can run:

copilot plugin install RBraga01/a-team:a-team

…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

  • New agent
  • New skill
  • Bug fix in existing agent/skill/rule
  • Documentation improvement
  • Configuration / infrastructure fix

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

  • Claude Code (regression-only — npm test clean, no behavioral changes; existing .claude/settings.json hooks untouched)
  • Codex CLI (no change to .codex-plugin/ other than version bump to 1.3.0)
  • Cursor (no change to .cursor-plugin/ other than version bump)
  • OpenCode (no change)
  • GitHub Copilot CLI (manifest + hooks structurally validated by new manifest tests; manual install verification will follow once the PR branch is reachable via copilot plugin install thejesh23/a-team:a-team)

Checklist

  • No new agent introduced (no allowedTools / model / description frontmatter changes needed)
  • No new skill introduced (no using-a-team/SKILL.md trigger registration needed)
  • No new agents added to AGENTS.md / README.md agent tables
  • No pruning rule needed in orchestrator.md init table
  • New .copilot-plugin/ manifest added; CONTRIBUTING.md checklist updated to reference it for future skill additions
  • Tests pass: cd tests && npm test (68 → 80 tests; +12 new manifest validation tests)
  • No hardcoded secrets or personal data

What's in this PR (by commit)

  1. feat: add .copilot-plugin/plugin.json manifest for Copilot CLI
  2. feat: add Copilot CLI hooks for SessionStart/PreToolUse/PostToolUse/Stop
  3. docs(readme): add GitHub Copilot CLI to platform integration
  4. docs: add Copilot CLI to project overview and agent roster
  5. docs(contributing): add .copilot-plugin to manifest registration checklist
  6. chore(pr-template): add GitHub Copilot CLI checkbox to Platforms tested
  7. chore: bump version to 1.3.0 across plugin manifests and overview docs
  8. docs(changelog): record 1.3.0 — Copilot CLI support
  9. test: validate every platform manifest's JSON, fields, version, and hooks

Each commit is scoped to one concern so individual pieces can be reviewed or reverted independently.

Design notes

  • Hook event coverage: .codex-plugin/hooks/hooks.json today only declares SessionStart. 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.
  • Path convention: hook commands use bare scripts/... paths matching Codex CLI's working pattern. All commands include test -f ... || echo WARNING fallbacks so a missing script degrades to a warning rather than crashing the session.
  • Project-install vs plugin-install separation: .copilot-plugin/ is intentionally not added to install.sh's DIRS= 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.
  • VS Code + GitHub Copilot (IDE) is deferred. VS Code's plugin auto-discovery list (.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:

  • Every <platform>-plugin/plugin.json parses as JSON and has required fields (name, description, version, author, license).
  • All four plugin manifests share name: "a-team" and the same version (so a future contributor can't bump 3 of 4 by accident).
  • marketplace.json's a-team entry stays in sync with .claude-plugin/plugin.json's version.
  • Any manifest declaring a hooks file: the file exists and is itself parseable JSON.

These guard against the most common drift mode when adding new platforms or bumping versions.

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
@github-actions github-actions Bot added docs Documentation (docs/, *.md) plugins Plugin manifests (.codex-plugin/, .cursor-plugin/) ci CI/CD (.github/) tests Test files (tests/) labels Jun 16, 2026
@RBraga01 RBraga01 merged commit ad973e4 into RBraga01:main Jun 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD (.github/) docs Documentation (docs/, *.md) plugins Plugin manifests (.codex-plugin/, .cursor-plugin/) tests Test files (tests/)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add GitHub Copilot CLI as a supported platform

2 participants