copilot-pr-squad, reference · October 12, 2026
How copilot-pr-squad works
A reference for the series: what copilot-pr-squad does as of 0.5.2, how an hourly run passes work between agents, and where it still falls short.
A reference page for a series on copilot-pr-squad, a small team of AI agents, built on bradygaster/squad, that drives my GitHub Copilot coding-agent pull requests. New here? Start with Part 1.
What it does, as of 0.5.2
As of Oct 8. For what changed after, see Since 0.5.2.
| Area | What the squad does |
|---|---|
| Sort PRs | A read-only script sorts every PR by what it’s waiting on (Copilot working, draft needs checking, needs a fix, reviewer comments open, ready, needs me) and names the agent that owns the next step. A run where nothing changed stops there. |
| Review drafts | Reviews each draft against its issue’s requirements and any briefs I wrote for it, with a design check on the first review. |
| Run the checks | Runs the repo’s own lint, type and test commands on the PR’s latest commit, and tells a failure the PR caused from one main already has. |
| Track known issues | Keeps a list of known breaks on main, including flaky tests, each tied to its issue and matched by the failure’s text. A PR failing only on a tracked break isn’t sent to Copilot or to me; anything else failing beside it still is. When the issue closes as fixed, the squad asks just the PRs that show the break to merge main, and drops the entry once they all have the fix. A new failure on main comes to me once, naming an open issue if someone already filed it. |
| Instruct Copilot | Sends one @copilot comment per round with everything wrong at that commit. Every factual claim in it is checked first, and the posting script refuses text that wasn’t. |
| Answer reviewers | Judges each reviewer comment, replies, and resolves a person’s comment thread only once a fix is verified. |
| Hand off | Moves a finished draft to ready and @-mentions the people who already commented. Approval and merge stay mine. |
| Keep descriptions | Restores the PR description each time Copilot overwrites it, with a section showing where each requirement is met. |
| Queue work | Holds a PR that would conflict with another until the earlier one merges, and assigns an issue to Copilot only once the PR or requirements it depends on are ready. |
| Back off | Stops instructing Copilot during an outage, and waits out a cancelled build instead of asking for a fix. |
| Steer it | Everything I tell the squad lives in files checked into the repo, so an edit from any machine reaches the next run. An instruction stays on a PR until its latest commit satisfies it, such as “merge main, it has fix X”. A known break marks a failure on main as tracked. An order holds one PR until another merges, and an assign hands an issue to Copilot once a PR merges or its requirements are accepted. A review brief pins what a PR may touch. A config file sets watch-only or live per PR, and an ignore list takes a PR out of the squad’s hands. |
| Report | One status report each run, a list of questions I answer in plain text, and a cost table per PR. |
Inside an hourly run
The agents pass work to each other through files. Among the agent steps, only two write to GitHub, and both go through scripts. Before the agents start, scripts also post my answers from the question list, assign waiting issues to Copilot and resolve answered bot threads:
Where it falls short
- Built for one person and one repo. It works PRs whose issue I assigned in one team repo, posts as my account, and its paths, machine and checkout are mine. Sharing it means making those configurable first.
- One machine runs it, as an hourly automation in the GitHub Copilot app, and cost is read from that machine’s session history.
- The squad only acts once an hour. After each Copilot push, a PR waits up to an hour for the next run, and overnight until the schedule resumes.
- Agents use their named skills only about half the time. When an agent can’t find a skill, it does the work by hand instead.
- Agents start heavy. Every agent except the Coordinator loads every tool, about 40K tokens on its first call.
- The description is fixed after the fact. Copilot overwrites it every session, and the squad restores it on its next run, so a reviewer can see the overwritten version in between.