| 1 | # Copilot Coding Agent Member |
| 2 | |
| 3 | On-demand reference for adding the GitHub Copilot coding agent (@copilot) to the Squad roster. |
| 4 | |
| 5 | ## Adding @copilot |
| 6 | |
| 7 | When the user says "add copilot", "add the coding agent", or "use @copilot for issues": |
| 8 | |
| 9 | 1. **Add to team.md roster:** |
| 10 | ```markdown |
| 11 | | @copilot | Coding Agent | — | 🤖 Coding Agent | |
| 12 | ``` |
| 13 | 2. **Add capability profile** (below the roster table): |
| 14 | ```markdown |
| 15 | <!-- copilot-auto-assign: true --> |
| 16 | ### @copilot — Capability Profile |
| 17 | |
| 18 | | Capability | Level | Notes | |
| 19 | |-----------|-------|-------| |
| 20 | | Bug fixes (well-scoped) | 🟢 | Best for isolated, test-covered fixes | |
| 21 | | Feature implementation | 🟡 | Works well with clear specs; may need review | |
| 22 | | Refactoring | 🟡 | Handles mechanical refactors; verify scope | |
| 23 | | Architecture decisions | 🔴 | Cannot make cross-cutting design choices | |
| 24 | | Multi-repo coordination | 🔴 | Limited to single-repo context | |
| 25 | | Test writing | 🟢 | Strong at adding tests for existing code | |
| 26 | | Documentation | 🟢 | Generates docs from code effectively | |
| 27 | ``` |
| 28 | 3. **Add routing entries** to routing.md for appropriate work types. |
| 29 | 4. **Do not create** `charter.md` — @copilot uses `copilot-instructions.md` instead. |
| 30 | |
| 31 | ## Comparison: Spawned Agent vs. @copilot |
| 32 | |
| 33 | | | Spawned Agent | @copilot | |
| 34 | |---|--------------|----------| |
| 35 | | Execution model | Sync sub-task within session | Async — picks up assigned issues | |
| 36 | | Branch convention | `squad/{issue}-{slug}` | `copilot/{slug}` | |
| 37 | | Trigger | Coordinator spawns directly | Issue assignment | |
| 38 | | Charter source | `.squad/agents/{name}/charter.md` | `.github/copilot-instructions.md` | |
| 39 | | Context window | Inherits full session context | Fresh context per issue | |
| 40 | | Reviewer gating | ✅ Enforced by coordinator | ✅ Via PR review process | |
| 41 | | Speed | Immediate (in-session) | Minutes (async queue) | |
| 42 | |
| 43 | ## Roster Format |
| 44 | |
| 45 | In `team.md`, @copilot always appears as: |
| 46 | |
| 47 | ```markdown |
| 48 | | @copilot | Coding Agent | — | 🤖 Coding Agent | |
| 49 | ``` |
| 50 | |
| 51 | - **No casting** — always "@copilot" (literal handle). |
| 52 | - **No charter file** — configuration lives in `.github/copilot-instructions.md`. |
| 53 | - **No history file** — work is tracked via PRs and issue comments. |
| 54 | |
| 55 | ## Auto-Assign Behavior |
| 56 | |
| 57 | Controlled by the HTML comment in team.md: |
| 58 | |
| 59 | ```markdown |
| 60 | <!-- copilot-auto-assign: true --> |
| 61 | ``` |
| 62 | |
| 63 | | Setting | Behavior | |
| 64 | |---------|----------| |
| 65 | | `true` | Lead assigns routed issues to @copilot automatically via `gh issue edit --add-assignee @copilot` | |
| 66 | | `false` | Lead presents recommendation; user confirms before assignment | |
| 67 | |
| 68 | ## Lead Triage Integration |
| 69 | |
| 70 | During triage, Lead evaluates each issue against @copilot's capability profile: |
| 71 | |
| 72 | 1. **🟢 Match** — Auto-assign (if enabled) or recommend assignment. |
| 73 | 2. **🟡 Match** — Assign with note: "⚠️ May need review — @copilot is 🟡 for this type of work." |
| 74 | 3. **🔴 Match** — Skip @copilot; route to appropriate spawned agent or human. |
| 75 | |
| 76 | ## Routing Details |
| 77 | |
| 78 | Add to `routing.md`: |
| 79 | |
| 80 | ```markdown |
| 81 | | bug fixes (isolated, test-covered) | @copilot 🤖 | Single-file fixes, test additions | |
| 82 | | documentation updates | @copilot 🤖 | README, API docs, inline comments | |
| 83 | | test coverage gaps | @copilot 🤖 | Adding missing test cases | |
| 84 | ``` |
| 85 | |
| 86 | Work that routes to @copilot: |
| 87 | - Creates/assigns the GitHub issue (if not already) |
| 88 | - Does NOT spawn a sub-agent — @copilot works asynchronously |
| 89 | - Coordinator reports: "🤖 Assigned #{number} to @copilot — will open a PR when ready." |
| 90 | - Non-dependent work continues immediately — @copilot routing does not serialize the team. |
| 91 | |
| 92 | ## Monitoring @copilot Work |
| 93 | |
| 94 | On each watch cycle (or when user asks "status"): |
| 95 | - Check for open PRs from `copilot/*` branches. |
| 96 | - Report: "🤖 @copilot: {N} PRs open ({list}). {M} issues assigned, pending." |