diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index b2745ad..5621c2d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -9,7 +9,7 @@ { "name": "a-team", "description": "Universal multi-agent infrastructure: 26 specialist agents, 19 enforced workflow skills, and a lead orchestrator", - "version": "1.2.0", + "version": "1.3.0", "source": "./", "author": { "name": "RBraga01", diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index b746013..0c93255 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "a-team", "description": "Universal multi-agent infrastructure: 26 specialist agents, 19 enforced workflow skills, and a lead orchestrator", - "version": "1.2.0", + "version": "1.3.0", "author": { "name": "RBraga01", "url": "https://github.com/RBraga01" diff --git a/.codex-plugin/plugin.json b/.codex-plugin/plugin.json index 2e3d9c3..74a01ba 100644 --- a/.codex-plugin/plugin.json +++ b/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "a-team", - "version": "1.2.0", + "version": "1.3.0", "description": "A complete engineering team in one folder. 26 pre-configured specialists, 19 enforced workflow skills, a lead orchestrator, and a Pipeline Auditor — for Claude Code, Codex CLI, Cursor, and OpenCode.", "author": { "name": "RBraga01", diff --git a/.copilot-plugin/hooks/hooks.json b/.copilot-plugin/hooks/hooks.json new file mode 100644 index 0000000..6de1167 --- /dev/null +++ b/.copilot-plugin/hooks/hooks.json @@ -0,0 +1,47 @@ +{ + "version": 1, + "hooks": { + "SessionStart": [ + { + "type": "command", + "command": "python .agent-sync/status.py 2>/dev/null || python3 .agent-sync/status.py 2>/dev/null || py .agent-sync/status.py 2>/dev/null || echo '[A Team] install Python to see state'" + }, + { + "type": "command", + "command": "cat \"hooks/session-start.md\" 2>/dev/null || cat \"skills/using-a-team/SKILL.md\" 2>/dev/null || echo '[A Team] Session started. Run /orchestrate init if .agent-sync/TEAM.md is missing.'" + }, + { + "type": "command", + "command": "for f in scripts/pre_tool_use.py scripts/watcher.py scripts/status.py scripts/metrics.py scripts/session_export.py; do test -f \"$f\" || echo \"[A Team] WARNING: $f not found - enforcement inactive. Re-run the installer.\"; done" + }, + { + "type": "command", + "command": "if test -f scripts/watcher.py; then (python scripts/watcher.py >/dev/null 2>&1 || python3 scripts/watcher.py >/dev/null 2>&1) & fi" + } + ], + "PreToolUse": [ + { + "matcher": "", + "type": "command", + "command": "if test -f scripts/pre_tool_use.py; then python scripts/pre_tool_use.py 2>/dev/null || python3 scripts/pre_tool_use.py 2>/dev/null; else echo '[A Team] WARNING: security gate inactive (scripts/pre_tool_use.py missing - re-run installer)'; fi" + } + ], + "PostToolUse": [ + { + "matcher": "Write|Edit", + "type": "command", + "command": "echo '[A Team] File modified. Use code-reviewer agent before committing. Use verification-before-completion before claiming done.'" + } + ], + "SessionEnd": [ + { + "type": "command", + "command": "test -f scripts/metrics.py && (python scripts/metrics.py session_end 2>/dev/null || python3 scripts/metrics.py session_end 2>/dev/null) || true" + }, + { + "type": "command", + "command": "test -f scripts/session_export.py && (python scripts/session_export.py 2>/dev/null || python3 scripts/session_export.py 2>/dev/null) || true" + } + ] + } +} diff --git a/.copilot-plugin/plugin.json b/.copilot-plugin/plugin.json new file mode 100644 index 0000000..1e108d4 --- /dev/null +++ b/.copilot-plugin/plugin.json @@ -0,0 +1,24 @@ +{ + "name": "a-team", + "description": "A complete engineering team in one folder. 26 pre-configured specialists, 19 enforced workflow skills, a lead orchestrator, and a Pipeline Auditor.", + "version": "1.3.0", + "author": { + "name": "RBraga01", + "url": "https://github.com/RBraga01" + }, + "homepage": "https://rbraga01.github.io/a-team/", + "repository": "https://github.com/RBraga01/a-team", + "license": "MIT", + "keywords": [ + "multi-agent", + "ai-agents", + "workflow", + "tdd", + "code-review", + "orchestration", + "copilot-cli" + ], + "skills": "../skills/", + "agents": "../.claude/agents/", + "hooks": "./hooks/hooks.json" +} diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index c70cbac..5adce2b 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -2,7 +2,7 @@ "name": "a-team", "displayName": "A Team", "description": "A complete engineering team in one folder. 26 pre-configured specialists, 19 enforced workflow skills, a lead orchestrator, and a Pipeline Auditor — for Claude Code, Codex CLI, Cursor, and OpenCode.", - "version": "1.2.0", + "version": "1.3.0", "author": { "name": "RBraga01", "url": "https://github.com/RBraga01" diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 391264b..d7327ef 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -21,6 +21,7 @@ - [ ] Codex CLI - [ ] Cursor - [ ] OpenCode +- [ ] GitHub Copilot CLI ## Checklist diff --git a/AGENTS.md b/AGENTS.md index f7a0319..5916760 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ -# A Team — Agent & Skill Roster v1.2.0 +# A Team — Agent & Skill Roster v1.3.0 -> **Model values below are Claude Code defaults** (`model:` frontmatter). On other platforms (Codex, Cursor, OpenCode), select the equivalent tier in your platform's model settings: Tier 1 = o3/GPT-4o/Gemini 2.5 Pro · Tier 2 = GPT-4o/Gemini Flash · Tier 3 = GPT-4o-mini/Gemini Flash-Lite. +> **Model values below are Claude Code defaults** (`model:` frontmatter). On other platforms (Codex, Cursor, OpenCode, GitHub Copilot CLI), select the equivalent tier in your platform's model settings: Tier 1 = o3/GPT-4o/Gemini 2.5 Pro · Tier 2 = GPT-4o/Gemini Flash · Tier 3 = GPT-4o-mini/Gemini Flash-Lite. ## Core Engineering Agents @@ -111,4 +111,5 @@ For independent problems, dispatch in parallel: | Claude Code | `.claude/` (native) | | Cursor | `.cursor-plugin/plugin.json` | | Codex | `.codex-plugin/plugin.json` | +| GitHub Copilot CLI | `.copilot-plugin/plugin.json` | | OpenCode | `.opencode/commands/` | diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e57892..794b421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,28 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- +## [1.3.0] — 2026-06-16 + +### Added + +**Platform: GitHub Copilot CLI** (4 → 5 supported platforms): + +- New `.copilot-plugin/plugin.json` declaring A Team's agents (`../.claude/agents/`) + and skills (`../skills/`) for Copilot CLI auto-install. +- New `.copilot-plugin/hooks/hooks.json` carrying `SessionStart`, `PreToolUse`, + `PostToolUse`, and `SessionEnd` hooks — full enforcement parity with Claude Code's + `.claude/settings.json` (not just SessionStart like Codex CLI today). +- Install command: `copilot plugin install RBraga01/a-team:.copilot-plugin`. +- No new agents, skills, or rules — purely additive platform plumbing. + +### Changed + +- `README.md`, `CLAUDE.md`, `AGENTS.md`, `CONTRIBUTING.md`, and the PR template + updated to reference Copilot CLI as a supported platform. +- Version bumped to `1.3.0` across all plugin manifests for consistency. + +--- + ## [1.2.0] — 2026-06-16 ### Added diff --git a/CITATION.cff b/CITATION.cff index e0610e9..2b55d2a 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -13,7 +13,7 @@ abstract: >- language specialists, domain, and operations), 19 enforced workflow skills including hard gates that cannot be bypassed, and a lead orchestrator that manages daily task flow. The infrastructure is stateless by design — every agent derives its context - from files. Compatible with Claude Code, Codex CLI, Cursor, and OpenCode. + from files. Compatible with Claude Code, Codex CLI, Cursor, OpenCode, and GitHub Copilot CLI. authors: - family-names: Braga @@ -21,7 +21,7 @@ authors: alias: RBraga01 email: ricardormbraga@hotmail.com -version: "1.2.0" +version: "1.3.0" date-released: "2026-06-02" @@ -62,7 +62,7 @@ preferred-citation: - family-names: Braga given-names: Ricardo Romão Marques alias: RBraga01 - version: "1.2.0" + version: "1.3.0" date-released: "2026-06-02" license: MIT repository-code: "https://github.com/RBraga01/a-team" diff --git a/CLAUDE.md b/CLAUDE.md index e539d15..d006c06 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,9 +1,9 @@ -# A Team — A Complete Engineering Team in One Folder v1.2.0 +# A Team — A Complete Engineering Team in One Folder v1.3.0 Not a marketplace of agents you configure — a pre-configured, pre-enforced team of 26 specialists with a lead orchestrator, hard quality gates, and a Pipeline Auditor that verifies work was done, not just reported. Drop this folder into any project and it's operational from the first keystroke. -Works on Claude Code, Codex CLI, Cursor, and OpenCode. +Works on Claude Code, Codex CLI, Cursor, OpenCode, and GitHub Copilot CLI. ## Quick Start @@ -30,6 +30,7 @@ A Team/ │ └── session-start.md ← Injected at every session start ├── .cursor-plugin/ ← Cursor IDE integration ├── .codex-plugin/ ← Codex CLI integration +├── .copilot-plugin/ ← GitHub Copilot CLI integration └── .opencode/ ← OpenCode integration ``` @@ -127,4 +128,5 @@ All agents enforce the rules in `.claude/rules/`: | Claude Code | `.claude/` (native) | | Cursor | `.cursor-plugin/plugin.json` | | Codex CLI | `.codex-plugin/plugin.json` | +| GitHub Copilot CLI | `.copilot-plugin/plugin.json` | | OpenCode | `.opencode/commands/` | diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d69a0d5..cb78854 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,7 +41,7 @@ git checkout -b fix/brief-description - Use `/writing-skills` meta-skill to walk through spec, TDD, and validation - Create `skills//SKILL.md` - Register trigger in `skills/using-a-team/SKILL.md` -- Add to plugin manifests (`.codex-plugin/`, `.cursor-plugin/`) +- Add to plugin manifests (`.codex-plugin/`, `.cursor-plugin/`, `.copilot-plugin/`) - Add `Skill()` and `Skill(:*)` to `settings.json` **Rules changes:** diff --git a/README.md b/README.md index 32a28f6..5598077 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ A Team logo

- # A Team — A Complete Engineering Team in One Folder v1.2.0 + # A Team — A Complete Engineering Team in One Folder v1.3.0 -Not a marketplace of agents you configure. A pre-configured, pre-enforced engineering team of 26 specialists — with a lead orchestrator, hard quality gates, and a Pipeline Auditor that verifies work was actually done, not just reported. Drop one folder into any project and it's operational from the first keystroke. Works on Claude Code, Codex CLI, Cursor, and OpenCode. +Not a marketplace of agents you configure. A pre-configured, pre-enforced engineering team of 26 specialists — with a lead orchestrator, hard quality gates, and a Pipeline Auditor that verifies work was actually done, not just reported. Drop one folder into any project and it's operational from the first keystroke. Works on Claude Code, Codex CLI, Cursor, OpenCode, and GitHub Copilot CLI. > **Born from the community.** A Team was built by studying, using, and needing to personalise several excellent open-source agent projects. The architecture combines the best patterns from each into a single, portable baseline. See [Acknowledgments](#acknowledgments) for the projects that made this possible. @@ -147,7 +147,7 @@ Open `INIT.md` and tick the checkboxes for your project: - Primary languages (Go, Python, Kotlin, Swift, etc.) - Tech stack (database, infra, CI/CD) - Compliance scope (GDPR, PCI-DSS, etc.) -- Which AI platforms are active (Claude Code, Codex, Cursor, OpenCode) +- Which AI platforms are active (Claude Code, Codex, Cursor, OpenCode, GitHub Copilot CLI) Takes about 5 minutes. @@ -203,6 +203,7 @@ A Team/ │ ├── .cursor-plugin/ ← Cursor IDE integration ├── .codex-plugin/ ← Codex CLI integration +├── .copilot-plugin/ ← GitHub Copilot CLI integration ├── .opencode/ ← OpenCode integration │ └── tests/ ← Harness test suite for A Team itself @@ -488,6 +489,7 @@ A Team is designed to run on one CLI or several simultaneously. Each platform re | **Claude Code** | `.claude/agents/` | `skills/` | `.claude/rules/` | `settings.json` hooks | `.claude/commands/` | | **Codex CLI** | `.claude/agents/` (via agentsPath) | `skills/` | `.claude/rules/` | `onSessionStart` hook | — | | **Cursor** | `.claude/agents/` (via agentsPath) | `skills/` | `.claude/rules/` | `onSessionStart` hook | — | +| **GitHub Copilot CLI** | `.claude/agents/` (via `agents` path) | `skills/` | `.claude/rules/` | `SessionStart` / `PreToolUse` / `PostToolUse` / `SessionEnd` hooks | — | | **OpenCode** | — | `skills/` | — | — | `.opencode/commands/` | ### Running multiple CLIs on the same project @@ -496,7 +498,7 @@ All CLIs share `.agent-sync/` (DAILY.md, ROUTING.md, TEAM.md, results/). This me - The orchestrator's state is visible regardless of which CLI triggered it. - File Claims are written once and honoured by any CLI reading ROUTING.md. -- Hooks are **not** propagated across platforms — configure `onSessionStart` in each plugin manifest separately (already done in `.codex-plugin/` and `.cursor-plugin/`). +- Hooks are **not** propagated across platforms — configure session-start hooks in each plugin manifest separately (already done in `.codex-plugin/`, `.cursor-plugin/`, and `.copilot-plugin/`). ### Platform-specific behaviour @@ -508,6 +510,14 @@ All CLIs share `.agent-sync/` (DAILY.md, ROUTING.md, TEAM.md, results/). This me **OpenCode** has command aliases in `.opencode/commands/` mapping to the same workflows. It does not have native agent or hook support — skills are invoked manually. +**GitHub Copilot CLI** loads agents, skills, and hooks via the `.copilot-plugin/plugin.json` manifest. It supports the A Team session, tool-use, post-edit, and session-end gates through Copilot CLI hooks, so enforcement parity is full — not partial. + +Install: + +```bash +copilot plugin install RBraga01/a-team:.copilot-plugin +``` + --- ## Command Reference diff --git a/docs/index.html b/docs/index.html index e9aae1a..09d490a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -319,7 +319,7 @@ .g-amber { border-left-color:var(--amber); } /* ── PLATFORMS ── */ -.platforms-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; } +.platforms-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; } .platform-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:28px 20px; text-align:center; @@ -358,10 +358,12 @@ .plat-openai .plat-logo { background:rgba(16,163,127,.1); border:1px solid rgba(16,163,127,.2); --glow-color:rgba(16,163,127,.1); } .plat-cursor .plat-logo { background:rgba(99,102,241,.1); border:1px solid rgba(99,102,241,.2); --glow-color:rgba(99,102,241,.1); } .plat-opencode .plat-logo { background:rgba(148,163,184,.1); border:1px solid rgba(148,163,184,.2); --glow-color:rgba(148,163,184,.1); } +.plat-github .plat-logo { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); --glow-color:rgba(255,255,255,.08); } .plat-anthropic { --glow-color:rgba(255,127,80,.08); } .plat-openai { --glow-color:rgba(16,163,127,.08); } .plat-cursor { --glow-color:rgba(99,102,241,.08); } .plat-opencode { --glow-color:rgba(148,163,184,.08); } +.plat-github { --glow-color:rgba(255,255,255,.06); } /* ── STEPS ── */ .steps { display:flex; flex-direction:column; gap:0; } @@ -564,7 +566,7 @@ @@ -766,6 +768,16 @@

Cursor

Strong Support + +
+ +

Copilot CLI

+

Agents, skills, and hooks load through the Copilot CLI plugin manifest

+ Full Support +
+
@@ -987,7 +999,7 @@

Frequently asked questions

Can I run multiple AI platforms simultaneously on the same project?

Yes. All platforms share the same .agent-sync/ directory (DAILY.md, ROUTING.md, TEAM.md), so orchestrator state is visible regardless of which CLI triggered it.

-

Important: session-start hooks are not propagated between platforms. Each platform's plugin manifest configures its own onSessionStart hook independently — the files are already pre-configured for Claude Code, Codex, and Cursor.

+

Important: session-start hooks are not propagated between platforms. Each platform's plugin manifest configures its own session-start hook independently — the files are already pre-configured for Claude Code, Codex, Cursor, and GitHub Copilot CLI.

@@ -995,7 +1007,7 @@

Frequently asked questions

Does it work on Windows, Mac, and Linux?

Yes. A Team is platform-agnostic — it's markdown files and JSON, with no compiled code or OS-specific scripts. The path normalisation for git worktrees uses standard POSIX-style paths that work across all systems via the git CLI.

-

The bash commands in agent files (for running tests, linting, etc.) are standard shell commands that work on all three platforms.

+

The bash commands in agent files (for running tests, linting, etc.) are standard shell commands that work across the supported platforms.

@@ -1182,9 +1194,9 @@

Help us reach more developers ⭐