Install any skill in seconds. Free to start, no credit card required.
Get Started Free →How to actually use Squad — Squad is a custom Copilot agent (invoked via the task tool with agent_type='Squad'), not a skill. This file explains the right invocation paths for setting up a team, listing squad commands, and initializing Squad in a new project.
.claude/skills/github-squad-help/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -24% | 0% |
> Quick reference. If you're reading this because a user said "use squad" or "squad" or "set up a squad", you're in the right place — read on for the correct invocation paths.
The Squad framework registers a custom Copilot CLI agent at .github/agents/squad.agent.md. The agent is named Squad and its description is "Your AI team. Describe what you're building, get a team of specialists that live in your repo."
Copilot CLI agents and skills are different things:
| Thing | How to invoke | Example | |---|---|---| | Skill | skill(name) tool call or natural-language match | skill(squad-commands) | | Agent | task tool with agent_type=<name> | task(name="...", agent_type="Squad", prompt="...") | | Slash command | Built-in CLI keyword | /agent, /skills, /mcp |
Calling skill(Squad) will fail with "Skill not found: Squad" because Squad is the agent, not a skill. (/squad as a slash command also does not exist — only built-in CLI keywords like /agent, /skills, /mcp are slash commands. There's no way to map a skill name to a slash command without a Copilot CLI feature change.)
Pick the path that matches the user's intent:
The Squad coordinator orchestrates a team of specialists. It routes work to the right agent, scaffolds a team if none exists, and enforces handoffs.
texttask( name="<short-task-name>", agent_type="Squad", prompt="<what you want the team to do>" )
Use this when the user says things like:
The squad-commands skill is a categorized catalog of common Squad operations. The coordinator presents it as an interactive menu.
Trigger by natural-language match: "squad commands", "what can squad do", "show me squad options", "slash commands", "what commands are available".
Use this when the user says things like:
squad init is a shell command, not a tool call. The user runs it in their terminal in a project that has no .squad/ directory yet.
bashsquad init
Do not try to invoke this from inside an existing Copilot session — .squad/ is already initialized if you're reading this file.
skill(Squad), skill(squad), or skill(squad-coordinator) — Squad is not a skill./squad expecting a slash command — slash commands are CLI keywords, not skill names. Use /agent (browse) or invoke the Squad agent via the task tool.task(agent_type="Squad", …) for tiny tasks the current agent can handle directly. Squad is for work that needs orchestration; trivial edits do not.This skill ships from the Squad SDK templates and is wired into MANIFEST_SKILL_NAMES. It lives at .copilot/skills/squad-help/SKILL.md so the Copilot CLI's /skills loader picks it up alongside the other bundled Squad skills.
If you removed this skill on purpose, the model will fall back to its own reasoning and may make the lookup mistakes described above.
.github/agents/squad.agent.md — the actual Squad coordinator agent.copilot/skills/squad-commands/SKILL.md — the command catalog.copilot/skills/squad-conventions/SKILL.md — conventions for working on the Squad codebase itself.copilot/skills/squad-version-check/SKILL.md — version-stamping mechanics| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 13,259 | 7,939 | -40% | 1 | 1 | 0% | 2,166 | 1,498 | -31% | 0 | 0 | — |
case-02 | fail→pass | 14,370 | 11,410 | -21% | 1 | 1 | 0% | 2,222 | 2,763 | +24% | 0 | 0 | — |
case-03 | fail→fail | 11,313 | 5,306 | -53% | 1 | 1 | 0% | 1,927 | 1,801 | -7% | 0 | 0 | — |
case-04 | fail→pass | 11,867 | 5,065 | -57% | 1 | 1 | 0% | 1,819 | 1,622 | -11% | 0 | 0 | — |
case-05 | fail→pass | 13,643 | 6,163 | -55% | 1 | 1 | 0% | 1,756 | 2,016 | +15% | 0 | 0 | — |
case-06 | fail→fail | 8,428 | 9,484 | +13% | 1 | 1 | 0% | 541 | 1,314 | +143% | 0 | 0 | — |
case-07 | fail→pass | 12,204 | 3,570 | -71% | 1 | 1 | 0% | 1,790 | 1,296 | -28% | 0 | 0 | — |
case-08 | fail→pass | 11,481 | 3,235 | -72% | 1 | 1 | 0% | 1,855 | 1,403 | -24% | 0 | 0 | — |
case-09 | fail→pass | 22,640 | 10,800 | -52% | 1 | 1 | 0% | 2,682 | 1,665 | -38% | 0 | 0 | — |
case-10 | pass→pass | 10,559 | 6,271 | -41% | 1 | 1 | 0% | 1,631 | 1,803 | +11% | 0 | 0 | — |
case-11 | fail→pass | 17,420 | 4,853 | -72% | 1 | 1 | 0% | 1,475 | 1,774 | +20% | 0 | 0 | — |
case-12 | fail→pass | 10,910 | 5,469 | -50% | 1 | 1 | 0% | 1,435 | 1,829 | +27% | 0 | 0 | — |
case-13 | fail→pass | 13,401 | 5,715 | -57% | 1 | 1 | 0% | 1,987 | 1,812 | -9% | 0 | 0 | — |
case-14 | pass→pass | 7,580 | 11,541 | +52% | 1 | 1 | 0% | 1,042 | 1,610 | +55% | 0 | 0 | — |
case-15 | pass→pass | 5,651 | 3,290 | -42% | 1 | 1 | 0% | 608 | 1,416 | +133% | 0 | 0 | — |
case-16 | pass→pass | 11,178 | 2,835 | -75% | 1 | 1 | 0% | 1,660 | 1,418 | -15% | 0 | 0 | — |
case-17 | pass→pass | 14,504 | 6,952 | -52% | 1 | 1 | 0% | 2,132 | 1,947 | -9% | 0 | 0 | — |
case-18 | fail→pass | 11,010 | 3,380 | -69% | 1 | 1 | 0% | 1,630 | 1,470 | -10% | 0 | 0 | — |
case-19 | pass→pass | 9,965 | 3,874 | -61% | 1 | 1 | 0% | 1,457 | 1,361 | -7% | 0 | 0 | — |
case-20 | fail→pass | 13,363 | 5,294 | -60% | 1 | 1 | 0% | 2,062 | 1,824 | -12% | 0 | 0 | — |
case-21 | pass→pass | 8,588 | 3,036 | -65% | 1 | 1 | 0% | 1,213 | 1,442 | +19% | 0 | 0 | — |
case-22 | pass→pass | 9,322 | 8,072 | -13% | 1 | 1 | 0% | 1,684 | 2,132 | +27% | 0 | 0 | — |
case-23 | pass→pass | 16,504 | 11,917 | -28% | 1 | 1 | 0% | 2,546 | 2,746 | +8% | 0 | 0 | — |
case-24 | pass→pass | 3,043 | 3,200 | +5% | 1 | 1 | 0% | 271 | 1,432 | +428% | 0 | 0 | — |
case-25 | fail→pass | 11,104 | 3,477 | -69% | 1 | 1 | 0% | 1,531 | 1,468 | -4% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 23 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +48 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.