Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Practical tips for reviewing and improving Copilot agent PRs.
.claude/skills/github-github-copilot-agent-tips-and-tricks/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 48% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 112% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 223% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 142% | 0% |
Use this guide to find, review, and work with Copilot coding agent pull requests in gh-aw.
Copilot coding agent branches use the copilot/ prefix, which makes them easy to identify and filter.
Examples from this repository:
copilot/add-cache-for-imported-workflowscopilot/fix-istruthy-bundling-issuecopilot/update-audit-command-copilotcopilot/refactor-mcp-tool-renderingCopilot coding agent PRs are typically authored by:
app/github-copilot - The GitHub Copilot bot accountgh)Prerequisites:
bash# Authenticate with GitHub CLI gh auth login
Search by author (GitHub Copilot bot):
bash# List all PRs created by the Copilot bot gh pr list --author "app/github-copilot" --limit 100 # Include closed PRs gh pr list --author "app/github-copilot" --state all --limit 100 # Get detailed JSON output gh pr list --author "app/github-copilot" --json number,title,author,headRefName,createdAt,state
Search by branch prefix:
bash# Find all PRs from copilot/* branches gh pr list --search "head:copilot/" --state all # Combine with other filters gh pr list --search "head:copilot/ is:open" gh pr list --search "head:copilot/ is:merged"
Filter with jq:
bash# Extract specific fields gh pr list --limit 100 --json author,number,title,headRefName \ --jq '.[] | select(.headRefName | startswith("copilot/")) | {number, title, branch: .headRefName}' # Filter by author containing "copilot" gh pr list --limit 100 --json author,number,title \ --jq '.[] | select(.author.login | contains("copilot"))'
List copilot branches:
bash# Local and remote copilot branches git branch -a | grep copilot # Remote copilot branches only git branch -r | grep copilot
Search commit history:
bash# Find commits with "copilot" in message git log --all --grep="copilot" --oneline # Find commits by copilot author git log --all --author="copilot" --oneline # Show graph with copilot-related commits git log --all --grep="copilot" --oneline --graph
Find merged copilot PRs:
bash# Search for merge commits git log --all --merges --grep="copilot" --oneline # With PR numbers git log --all --merges --oneline | grep -i copilot
Based on analysis of this repository, Copilot coding agent PRs typically address:
When reviewing Copilot coding agent PRs, pay attention to:
copilot/descriptive-name patternbash# Find PRs related to a specific feature gh pr list --search "head:copilot/ refactor" --state all # Find PRs in a date range gh pr list --search "head:copilot/ created:>=2024-01-01" --state all # Find PRs with specific labels gh pr list --search "head:copilot/ label:enhancement"
bash# Check out a copilot PR locally gh pr checkout <PR-number> # View PR diff gh pr diff <PR-number> # View PR details gh pr view <PR-number> # View PR in browser gh pr view <PR-number> --web
bash# Count merged copilot PRs gh pr list --author "app/github-copilot" --state merged --json number --jq 'length' # List recent copilot PRs with dates gh pr list --author "app/github-copilot" --state all --limit 20 \ --json number,title,createdAt,state \ --jq '.[] | "\(.number): \(.title) (\(.state)) - \(.createdAt)"' # Export to CSV for analysis gh pr list --author "app/github-copilot" --state all --limit 100 \ --json number,title,createdAt,state,author \ --jq -r '.[] | [.number, .title, .state, .createdAt] | @csv' > copilot-prs.csv
If you see "gh auth login" prompts:
bash# Authenticate with GitHub CLI gh auth login # Or set token environment variable export GH_TOKEN="your-github-token"
If searches return no results:
app/github-copilot or github-copilot)gh pr list --search "head:copilot/"git branch -r | grep copilotIf you hit GitHub API rate limits:
bash# Check rate limit status gh api rate_limit # Use authenticated requests (higher limits) gh auth login
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | pass→pass | 11,286 | 6,929 | -39% | 1 | 1 | 0% | 2,078 | 3,083 | +48% | 0 | 0 | — |
case-01 | fail→pass | 9,472 | 5,101 | -46% | 1 | 1 | 0% | 1,630 | 2,495 | +53% | 0 | 0 | — |
case-03 | pass→pass | 5,293 | 2,324 | -56% | 1 | 1 | 0% | 947 | 2,009 | +112% | 0 | 0 | — |
case-04 | pass→pass | 3,999 | 3,063 | -23% | 1 | 1 | 0% | 681 | 2,199 | +223% | 0 | 0 | — |
case-05 | pass→pass | 6,658 | 5,683 | -15% | 1 | 1 | 0% | 1,135 | 2,749 | +142% | 0 | 0 | — |
case-06 | pass→pass | 2,585 | 1,768 | -32% | 1 | 1 | 0% | 413 | 1,980 | +379% | 0 | 0 | — |
case-07 | pass→pass | 6,028 | 2,919 | -52% | 1 | 1 | 0% | 1,078 | 2,195 | +104% | 0 | 0 | — |
case-08 | pass→pass | 8,065 | 3,284 | -59% | 1 | 1 | 0% | 1,434 | 2,219 | +55% | 0 | 0 | — |
case-09 | pass→pass | 9,499 | 4,060 | -57% | 1 | 1 | 0% | 1,767 | 2,512 | +42% | 0 | 0 | — |
case-10 | pass→pass | 6,589 | 1,914 | -71% | 1 | 1 | 0% | 1,152 | 2,011 | +75% | 0 | 0 | — |
case-11 | pass→pass | 14,256 | 4,705 | -67% | 1 | 1 | 0% | 2,758 | 2,540 | -8% | 0 | 0 | — |
case-12 | pass→pass | 9,304 | 4,050 | -56% | 1 | 1 | 0% | 1,649 | 2,467 | +50% | 0 | 0 | — |
case-13 | pass→pass | 5,974 | 2,096 | -65% | 1 | 1 | 0% | 1,030 | 2,040 | +98% | 0 | 0 | — |
case-14 | pass→pass | 3,352 | 2,368 | -29% | 1 | 1 | 0% | 529 | 1,983 | +275% | 0 | 0 | — |
case-15 | pass→pass | 2,693 | 2,062 | -23% | 1 | 1 | 0% | 345 | 1,974 | +472% | 0 | 0 | — |
case-16 | pass→pass | 3,322 | 2,009 | -40% | 1 | 1 | 0% | 408 | 1,894 | +364% | 0 | 0 | — |
case-17 | pass→pass | 3,650 | 2,607 | -29% | 1 | 1 | 0% | 523 | 2,105 | +302% | 0 | 0 | — |
case-18 | pass→pass | 4,228 | 3,093 | -27% | 1 | 1 | 0% | 629 | 2,149 | +242% | 0 | 0 | — |
case-19 | pass→pass | 7,762 | 2,356 | -70% | 1 | 1 | 0% | 1,218 | 2,009 | +65% | 0 | 0 | — |
case-20 | pass→pass | 10,676 | 4,827 | -55% | 1 | 1 | 0% | 1,944 | 2,593 | +33% | 0 | 0 | — |
case-21 | pass→pass | 3,156 | 2,614 | -17% | 1 | 1 | 0% | 452 | 2,061 | +356% | 0 | 0 | — |
case-22 | fail→fail | 4,220 | 3,687 | -13% | 1 | 1 | 0% | 608 | 2,250 | +270% | 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. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases.
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.