Repository navigation
Closed
Labels
go:needs-researchNeeds investigationNeeds investigationrelease:v0.5.0Targeted for v0.5.0Targeted for v0.5.0squadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a membertype:spikeResearch/investigation — produces a plan, not codeResearch/investigation — produces a plan, not code
Description
Problem
When the Copilot Coding Agent (CCA) picks up a squad-labeled issue, it runs as a solo agent — it doesn't use squad.agent.md as its agent instructions. That means CCA doesn't get the team: no casting, no routing, no ceremonies, no shared decisions, no memory. It's just vanilla Copilot with copilot-instructions.md.
The vision: When CCA picks up an issue, it should boot Squad — load squad.agent.md, resolve the team, and work as a full squad session. The user gets their squad whether they're in Copilot CLI, VS Code, or CCA running autonomously on a GitHub issue.
Research Questions
- Can CCA use custom agent files? Does CCA read .github/agents/*.md the same way Copilot CLI does? If so, can we point CCA at squad.agent.md as its governing agent?
- Tool availability: Does CCA have access to the ask tool (sub-agent spawning)? Squad's entire architecture depends on spawning real sub-agents. If ask isn't available, Squad can't function.
- Background mode: Does CCA support mode: "background" for parallel agent spawns? Squad's parallel fan-out is a core feature.
- MCP server access: Does CCA have access to configured MCP servers (e.g., GitHub MCP server)? Squad uses these for issue management.
- File system access: CCA works in a containerized environment. Can it read/write .ai-team/ state files? Can it commit them back?
- Session model: CCA runs asynchronously (no user in the loop). How does this affect ceremonies, human gates, and interactive flows?
- Scope limitations: What's the maximum complexity CCA can handle? Could it run a full multi-agent sprint, or is it limited to single-issue work?
What Success Looks Like
- CCA picks up a squad-labeled issue
- CCA loads Squad governance (squad.agent.md)
- CCA spawns the appropriate squad member(s) to do the work
- Squad memory (decisions, history, skills) is read and updated
- A PR is opened with the work product, and .ai-team/ state is committed alongside
Deliverable
A go/no-go assessment posted as a comment on this issue:
- If GO: Sprint plan with squad-time estimates, work items, and agent assignments
- If NO-GO: Clear explanation of which capabilities are missing and what would need to change (in Squad, in CCA, or both) to make it work
- Evidence: links to CCA docs, observed behavior, or test results
Context
- Issue Copilot client parity: Squad works fully only on GitHub Copilot CLI #10 tracks broader client parity (CLI vs VS Code vs CCA)
- Issue Research: Should Squad use /fleet instead of task/delegate for agent spawning? #24 researches /fleet as an alternative spawn mechanism
- CCA currently uses copilot-instructions.md — Squad's .github/agents/squad.agent.md is a separate file
- Squad's architecture is prompt-level (coordinator governance in one markdown file), which should theoretically be portable to any Copilot surface that supports custom agents
- Key constraint: CCA cannot read .ai-team/ if it's gitignored. Currently .ai-team/ IS tracked in git on dev/preview/main branches.
Metadata
Metadata
Assignees
Labels
go:needs-researchNeeds investigationNeeds investigationrelease:v0.5.0Targeted for v0.5.0Targeted for v0.5.0squadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a membertype:spikeResearch/investigation — produces a plan, not codeResearch/investigation — produces a plan, not code
Activity
bradygaster commentedon Feb 12, 2026
@copilot — Assignment
Task: Research whether the Copilot Coding Agent (CCA) can run Squad as its governing agent, and produce a go/no-go assessment.
Deliverable format:
Key files to read for context:
.github/agents/squad.agent.md— the full coordinator governance (this is what CCA would need to load).ai-team/team.md— current team rosterdocs/features/copilot-coding-agent.md— how @copilot currently integrates with Squadteam-docs/proposals/032a-provider-abstraction-architecture.md— provider abstraction (relevant to cross-client portability)Related issues: #10 (client parity), #24 (/fleet research)
bradygaster commentedon Feb 18, 2026
CCA Compatibility Research — Go/No-Go Assessment
I've completed the research on whether Squad can run from the Copilot Coding Agent (CCA). Here's the assessment:
Summary: ❌ NO-GO for v0.5.0 (pending empirical test)
Squad cannot run from CCA unless we confirm CCA has access to sub-agent spawning tools. The architecture depends entirely on multi-agent orchestration — without it, Squad is just a single agent following instructions.
What Works ✅
What's Missing ❌
Sub-agent spawning (BLOCKER) — No documentation confirms CCA has access to ask,
unSubagent, or equivalent tool. Squad's architecture requires spawning real sub-agents. Without this, Squad can't function as a multi-agent system.
Background mode — CCA likely doesn't support \mode: "background"\ for fire-and-forget sub-agents. Could fall back to VS Code's parallel sync pattern, but requires sub-agent spawning first.
.ai-team/ access (MAJOR CONSTRAINT) — .ai-team/ is gitignored on main (per Squad's architectural decision). CCA can't read Squad's memory (decisions, history, skills). All governance must be self-contained in squad.agent.md. This is a fundamental limitation.
Research Findings (by question)
Recommended Action
Phase 1: Spike (2-4 hours) — Empirical Test
Create a test custom agent in .github/agents/ that attempts to call the ask tool. Delegate an issue to it via CCA and observe:
Outcome determines next steps:
Why This Matters
Without sub-agent spawning, CCA-Squad is either:
The vision in #25 is "CCA boots Squad — spawns the team, uses shared memory, works as a full squad session." That vision requires sub-agent spawning. Without it, we're building a workaround, not the real thing.
Full Analysis
Complete findings, constraints, and fallback architectures documented in:
.ai-team/decisions/inbox/kujan-cca-research.md
Verdict: RUN THE SPIKE. Don't commit to v0.5.0 scope until we know if ask tool exists in CCA.
— Kujan
bradygaster commentedon Feb 18, 2026
🧪 CCA Spike Test Plan — Empirical Capability Probing
Author: Kujan (Copilot SDK Expert)
Purpose: Step-by-step instructions to empirically test what tools and capabilities the Copilot Coding Agent (CCA) has access to — specifically sub-agent spawning (
tasktool),.ai-team/file access, MCP tool availability, and context window limits.Time estimate: 2-4 hours (including CCA execution wait time)
Prerequisite: Repository admin with CCA enabled (
Settings → Copilot → Coding agent)1. Test Setup
Branch & Files
Create a dedicated test branch from
dev(notmain) so.ai-team/files are present in the working tree:Files to Create
You will create 3 files on this branch:
.github/agents/cca-probe.agent.md.ai-team/cca-probe-marker.md.ai-team/read accessImportant: Push Before Testing
CCA clones from GitHub — local-only files won't be visible. Push the branch:
2. Test Agent —
cca-probe.agent.mdCreate
.github/agents/cca-probe.agent.mdwith this exact content:3. Canary File —
.ai-team/cca-probe-marker.mdCreate
.ai-team/cca-probe-marker.md:# CCA Probe Marker If you can read this file, CCA has access to .ai-team/ on this branch. Canary value: SQUAD-CCA-PROBE-2026 Branch: spike/cca-capability-probeThis gives us a unique string (
SQUAD-CCA-PROBE-2026) to search for in CCA's output, confirming it actually read the file vs. hallucinating content.4. How to Trigger CCA
Step 1: Push the branch
git add .github/agents/cca-probe.agent.md .ai-team/cca-probe-marker.md git commit -m "spike: add CCA capability probe agent and marker file" git push origin spike/cca-capability-probeStep 2: Create the trigger issue
Create an issue from the GitHub UI (not CLI, so you can assign @copilot):
Title:
[Spike] CCA Capability Probe — Tool Availability TestBody:
Labels:
type:spikeStep 3: Assign to @copilot
copilot(the Copilot Coding Agent)Step 4: Wait
CCA typically starts within 1-5 minutes. Full execution may take 5-15 minutes. Monitor:
5. What to Observe
Primary Signals
cca-probe-results.mdexists in PRcca-probe-results.mdtasklisted in tool inventorycca-probe-results.md→ Tool Inventorysub-agent-was-here.mdcreatedSQUAD-CCA-PROBE-2026appearscca-probe-results.md→ .ai-team/ section.ai-team/files on this branchcca-probe-results.md→ MCP sectionsquad.agent.mdlength reportedcca-probe-results.md→ Context sectionFailure Signals
task tool is NOT availablein resultscca-probe-results.md.ai-team/files show "access denied" or "not found"cca-probe-results.mdsquad.agent.mdreported as truncatedcca-probe-results.mdcca-probe.agent.mdSecondary Signals
spike/cca-capability-probeor frommain? This tells us if CCA respects the branch instruction.6. Decision Matrix
tasktool available + sub-agent spawned successfullysquad.agent.md(8-12h). Target v0.5.0.tasktool available but sub-agent failedtasktool NOT available, butrunSubagentor equivalent existstasktool NOT available, no spawn mechanismcca-probe.agent.mdat all.ai-team/not readable even on dev branchsquad.agent.md. No filesystem memory.squad.agent.mdtruncated by context windowCombined Verdict Logic
7. Secondary Tests
Test A:
.ai-team/Visibility Under GitignoreWhy:
.ai-team/is committed ondevbut the repo's.gitignorecomments say "blocked from main/preview by squad-main-guard.yml workflow." The gitignore itself does NOT have an.ai-team/entry — it's a workflow guard, not an ignore rule. CCA clones the branch it works on, so if working ondevor a branch based ondev,.ai-team/should be visible.How to verify (from probe results):
SQUAD-CCA-PROBE-2026appears in resultsmaindespite being toldspike/cca-capability-probe, the.ai-team/test is invalid — file a follow-upEdge case to watch: CCA might clone
mainand then cherry-pick the agent file. In that case,.ai-team/won't exist even though it does on the spike branch.Test B: MCP Tools in Practice
Why: CCA docs say MCP is supported, but we need to confirm the GitHub MCP server is actually connected and functional in CCA's runtime, not just documented.
How to verify (from probe results):
Follow-up if MCP works: Can CCA use
ghCLI directly? The probe's environment section asks CCA to run shell commands. If both MCP andghwork, CCA has two paths to GitHub API access.Test C: Token/Context Limit Under
squad.agent.mdWhy:
squad.agent.mdis ~1,800 lines. CCA might truncate it, especially if combined with the custom agent instructions, system prompt, and issue body. If CCA can't hold the full coordinator in context, Squad-on-CCA requires a lightweight variant.How to verify (from probe results):
squad.agent.mdand report its length + whether it appears truncatedwc -l .github/agents/squad.agent.md)Contingency: If truncated, follow up with a second spike that tests a stripped-down
squad-cca.agent.md(~500 lines, CCA-specific coordinator without Init Mode, ceremonies, etc.)8. Cleanup
After collecting results, regardless of outcome:
Do NOT delete: The probe results comment (this issue) or the PR that CCA opened — these are the evidence record.
9. Timeline
This test plan is designed for a single execution. If results are ambiguous (e.g., CCA ignores the custom agent), re-run with modified instructions before declaring NO-GO. LLM non-determinism means one failure isn't conclusive — but one success IS.
— Kujan, Copilot SDK Expert
docs(ai-team): orchestration log entries for design review and triage
bradygaster commentedon Feb 20, 2026
Deferred — CCA research not blocking v0.5.0. Filed as v0.5.x backlog item.
docs: renumber ADO blog to github#25, add release notes blog github#26
feat: Azure DevOps platform adapter — Squad for enterprise (#191)
research(upstream-inheritance): comprehensive org-scale knowledge sha…
docs(elrond): Append upstream inheritance research to history
docs: rate limiting research (github#26) + upstream inheritance (gith…
Scribe: merge piece-25 decisions and log workflow