Back to blog

Using Copilot Squad AI Agent

John Chynoweth··3 min read
Copilot AI Squad Agentic Development

Using Copilot Squad AI Agent

As projects grow, the challenge stops being “how do I prompt?” and starts becoming “how do I coordinate design, implementation, testing, and review without losing context along the way.”

That is where GitHub Copilot Squad becomes interesting. Instead of treating AI as a single assistant that you repeatedly prompt, Squad approaches software delivery more like a coordinated team. Different agents can take on different responsibilities, and the system is designed to preserve separation between planning, implementation, and review.

One of the most important ideas is that the orchestration layer prevents the original agent from revising its own work. Squad’s reviewer protocol can prevent the original author from revising rejected work, and a different agent must step in to fix it. This creates a more independent review loop with a separate context window and a fresh perspective, rather than asking a single AI system to critique and correct its own mistakes.

That design choice matters. In normal AI-assisted development, it is easy to fall into a pattern where one model writes code, “reviews” that same code, and then assures you everything looks good. Squad pushes toward a healthier workflow by making review a genuinely separate activity.

Another interesting pattern is how shared context is handled. Instead of relying on a fragile conversational memory, Squad uses a kind of drop-box model. Every architectural choice—such as selecting a specific library, establishing a naming convention, or documenting a design tradeoff—is appended as a structured block to a versioned decisions.md file in the repository.

Here is a sample decision entry from a decisions.md file:

### 2026-06-05T18:00:51+00:00: User directive

**By:** chyno (via Copilot)  
**What:** For all tasks, work is not done until `npm run typecheck:web` passes.  
**Why:** User request — captured for team memory

Treating a markdown file as the team’s shared brain gives the process a few advantages:

  • persistent context across agent runs
  • human-readable design history
  • a clear audit trail for why decisions were made
  • a shared source of truth that is stored with the code

Example Squad Flow

You want to build a new React component for the user profile tab. User types in the the chat for the Squad agent “Squad team build me a user profile”

---
config:
  htmlLabels: false
---
flowchart TD
    A["`Ralph scans
    triage-eligible issues`"] --> B["`Builds context snapshot
    issue list, squad state,
    recent decisions`"]
    B --> C["`Writes context to a temp file with -p
    Invokes agent with gh copilot -p context.md`"]
    C --> E["`Agent selects the issue
    and decides how to work it`"]

    E --> F["`.github/agents/
    squad.agent.md
    Coordinator routes work`"]
    F --> G["`.squad/agents/
    Project specialists
    are selected`"]
    F --> H[/`.copilot/skills/
    Reusable instructions
    are loaded`/]
    J@{ shape: docs, label: "Agents implement, review, test, and hand off work" }
    G --> J
    H --> J

    J --> K["`Ralph monitors execution,
    logs results,
    and updates issue status`"]
    K --> A

    N{{"`.squad/decisions.md
    Shared decisions
    and team memory`"}}
    N -.- B
    N -.- F

References