-
Notifications
You must be signed in to change notification settings - Fork 2k
PR Agent
The PR Agent is a unified 5-phase workflow for investigating GitHub issues and reviewing/working on pull requests. It handles everything from context gathering through test verification, fix exploration, and creating PRs or review reports.
For the best results, start in plan mode to create and review a detailed plan before execution:
-
Enter plan mode: Press
Shift+Tabor use/plan -
Request a review plan:
/plan review PR #12345 - create a detailed plan for the review - Review the plan: Copilot will create a structured plan. Review the steps and make adjustments.
-
Exit plan mode: Press
Shift+Tabto switch back to execution mode -
Execute the plan:
proceed with the plan
This workflow gives you control over the review approach before any actions are taken.
If you prefer to start immediately without planning:
# Start GitHub Copilot CLI
copilot
# Invoke the PR agent
/agent pr
# Then ask it to work on an issue or PR
please fix issue #12345
please review PR #67890| Phrase | Description |
|---|---|
| "Fix issue #XXXXX" | Works whether or not a PR exists |
| "Work on issue #XXXXX" | Investigate and implement a fix |
| "Review PR #XXXXX" | Review an existing PR with independent analysis |
| "Continue working on #XXXXX" | Resume from where you left off |
┌─────────────────────────────────────────┐ ┌─────────────────────────────────────────────┐
│ Phases 1-3 (pr.md) │ │ Phases 4-5 (post-gate.md) │
│ │ │ │
│ 1. Pre-Flight → 2. Tests → 3. Gate │ ──► │ 4. Fix → 5. Report │
│ ⛔ │ │ │
│ MUST PASS │ │ (Only after Gate ✅ PASSED) │
└─────────────────────────────────────────┘ └─────────────────────────────────────────────┘
Typical time: ~2-5 minutes
Context gathering only - no code analysis, no fix opinions, no running tests.
- Create state file in
CustomAgentLogsTmp/PRState/pr-XXXXX.md - Read issue description and comments
- Document platforms affected
- Identify files changed (if PR exists)
- Note disagreements and edge cases from comments
Typical time: ~5-15 minutes (longer if creating new tests)
Ensure reproduction tests exist - tests must be verified to FAIL.
- Check if tests already exist in PR
- If not, create them using the
write-ui-testsorwrite-xaml-testsskill - Verify tests compile
- Verify tests FAIL (reproduce the bug)
Typical time: ~5-10 minutes
Mandatory checkpoint - must pass before continuing.
- For PRs: Verify tests FAIL without fix, PASS with fix
- For Issues: Confirm tests were verified to fail in Phase 2
- Uses
verify-tests-fail-without-fixskill
If Gate fails, stop and fix the tests before proceeding.
Typical time: ~10-30 minutes (varies by complexity)
Explore independent alternatives using the try-fix skill.
Even when a PR already has a fix, Phase 4 requires running try-fix to:
- Generate independent fix ideas (without looking at PR's solution)
- Test alternatives empirically
- Compare with PR's fix
The PR's fix is already validated by Gate. The try-fix skill explores if there's something better.
Typical time: ~2-5 minutes
Deliver the result:
- For PRs: Write review with APPROVE or REQUEST CHANGES
- For Issues: Create a new PR with the fix
| Skill | Purpose |
|---|---|
write-ui-tests |
Creates UI tests for issues following MAUI conventions |
write-xaml-tests |
Creates XAML unit tests for parsing/compilation issues |
verify-tests-fail-without-fix |
Verifies tests catch bugs (auto-detects mode) |
try-fix |
Proposes and tests independent fix approaches |
pr-build-status |
Retrieves Azure DevOps build status for PRs |
The agent maintains state in CustomAgentLogsTmp/PRState/pr-XXXXX.md files. This allows:
- Resuming interrupted sessions
- Tracking progress across phases
- Recording fix attempts and their outcomes
| Task | Use Instead |
|---|---|
| Just run tests manually | sandbox-agent |
| Only write tests without fixing | write-tests-agent |
| Quick manual validation | sandbox-agent |
| File | Purpose |
|---|---|
.github/agents/pr.md |
Phases 1-3 (Pre-Flight, Tests, Gate) |
.github/agents/pr/post-gate.md |
Phases 4-5 (Fix, Report) |
.github/skills/try-fix/SKILL.md |
Fix exploration skill |
.github/skills/write-ui-tests/SKILL.md |
UI test creation skill |
.github/skills/write-xaml-tests/SKILL.md |
XAML test creation skill |
.github/skills/verify-tests-fail-without-fix/SKILL.md |
Test verification skill |
- UI Testing Guide - How to write UI tests
- XAML Testing Guide - How to write XAML unit tests
- Contributing Guidelines