Skip to content

PR Agent

Shane Neuville edited this page Jan 29, 2026 · 12 revisions

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.

Quick Start

Recommended: Use Plan Mode First

For the best results, start in plan mode to create and review a detailed plan before execution:

  1. Enter plan mode: Press Shift+Tab or use /plan
  2. Request a review plan:
    /plan review PR #12345 - create a detailed plan for the review
    
  3. Review the plan: Copilot will create a structured plan. Review the steps and make adjustments.
  4. Exit plan mode: Press Shift+Tab to switch back to execution mode
  5. Execute the plan:
    proceed with the plan
    

This workflow gives you control over the review approach before any actions are taken.

Direct Invocation (Alternative)

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

Trigger Phrases

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

The 5-Phase Workflow

┌─────────────────────────────────────────┐     ┌─────────────────────────────────────────────┐
│  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)                │
└─────────────────────────────────────────┘     └─────────────────────────────────────────────┘

Phase 1: Pre-Flight

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

Phase 2: Tests

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-tests or write-xaml-tests skill
  • Verify tests compile
  • Verify tests FAIL (reproduce the bug)

Phase 3: Gate ⛔

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-fix skill

If Gate fails, stop and fix the tests before proceeding.

Phase 4: Fix

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:

  1. Generate independent fix ideas (without looking at PR's solution)
  2. Test alternatives empirically
  3. Compare with PR's fix

The PR's fix is already validated by Gate. The try-fix skill explores if there's something better.

Phase 5: Report

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

Skills Used

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

State Tracking

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

When NOT to Use

Task Use Instead
Just run tests manually sandbox-agent
Only write tests without fixing write-tests-agent
Quick manual validation sandbox-agent

File Locations

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

Related Documentation

Clone this wiki locally