Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
a97fd0d
[ci] Add copilot CI
rmarinho Dec 12, 2025
539bdcf
Install GH
rmarinho Dec 12, 2025
62109e9
Try again
rmarinho Dec 12, 2025
e0e367a
skip codeql
rmarinho Dec 12, 2025
55c0331
Pipe the output
rmarinho Dec 12, 2025
3a81e85
Cleanup file
rmarinho Dec 12, 2025
69326b2
fix prompt
rmarinho Jan 23, 2026
ca59d6d
Fixx
rmarinho Jan 23, 2026
e8fc0a3
Fix it again
rmarinho Jan 23, 2026
f7b5a58
add provisioning
rmarinho Jan 23, 2026
6339ba8
again
rmarinho Jan 23, 2026
25f4df2
try update
rmarinho Jan 23, 2026
747523e
skip certs
rmarinho Jan 23, 2026
4370f80
skip certs
rmarinho Jan 23, 2026
23486ca
comment
rmarinho Jan 23, 2026
d4f77f0
try again
rmarinho Jan 23, 2026
7acc340
Update script
rmarinho Jan 23, 2026
26447f2
Try again
rmarinho Jan 23, 2026
bc5e3f1
Try list first
rmarinho Jan 23, 2026
cc81674
even before
rmarinho Jan 23, 2026
98223da
again
rmarinho Jan 23, 2026
4b50a0b
Again
rmarinho Jan 23, 2026
6ff306b
Enhance Copilot PR review and comment steps
kubaflo Jan 30, 2026
de8f70d
Updated the prompt
kubaflo Jan 30, 2026
0e720a2
Cache PR review prompt before checkout
kubaflo Jan 31, 2026
12a788e
Improve iOS simulator auto-selection logic
kubaflo Jan 31, 2026
44b2755
Cherry-pick PR commits onto current branch
kubaflo Jan 31, 2026
7ab081c
Build MSBuild tasks in CI for MAUI
kubaflo Jan 31, 2026
4a4f213
Remove agent sessions
kubaflo Jan 31, 2026
06a01d8
Create iPhone Xs simulator for iOS 18.5
kubaflo Jan 31, 2026
96334e7
Enable provisionator in CI pipeline
kubaflo Feb 1, 2026
b7f0ad4
Add maui-provisionator variable group
kubaflo Feb 1, 2026
598a48c
Detect host/simulator arch and use iOS RID
kubaflo Feb 1, 2026
7d0a336
Make the build faster for testing
kubaflo Feb 1, 2026
a74865e
Update provision.yml
kubaflo Feb 1, 2026
eb7df64
Update provision.yml
kubaflo Feb 1, 2026
65c2cf8
Update provision.yml
kubaflo Feb 1, 2026
4c56f32
Update pr-review-prompt.md
kubaflo Feb 1, 2026
18f36da
Update ci-copilot.yml to use Review-PR.ps1 script
PureWeen Feb 1, 2026
5fd118d
Add Android/JDK provisioning steps to provision.yml
PureWeen Feb 1, 2026
03a33c3
Add Android emulator provisioning and boot step
PureWeen Feb 1, 2026
3ed6c2f
It should work
kubaflo Feb 2, 2026
d75e77f
Enable Android emulators and set API level to 34
kubaflo Feb 3, 2026
ffe9ebf
Improve ADB reliability and Appium setup
kubaflo Feb 3, 2026
8a34f17
Add verify-tests-fail step to CI pipeline
kubaflo Feb 3, 2026
789eda3
Update ci-copilot.yml
kubaflo Feb 3, 2026
50aee9f
Add verbose Android emulator and test steps
kubaflo Feb 3, 2026
d464c4c
Increase emulator timeout and adjust CI steps
kubaflo Feb 3, 2026
a503a97
Make AVD list safe and add PR cherry-pick step
kubaflo Feb 3, 2026
b4e4ead
Fix Android emulator start: add -no-window flag, use adb wait-for-device
kubaflo Feb 3, 2026
7c81b1e
Simplify Android build and emulator scripts
kubaflo Feb 3, 2026
8e39317
Update ci-copilot.yml
kubaflo Feb 3, 2026
917649f
Update ci-copilot.yml
kubaflo Feb 3, 2026
7bc8410
Fix Android emulator boot by using ARM64 macOS image
PureWeen Feb 3, 2026
ac0039d
Fix Android emulator startup with better timeout handling and diagnos…
kubaflo Feb 3, 2026
e189817
Fix 'Boot Android Emulator' step with same improvements
PureWeen Feb 3, 2026
f3c9398
Disable hardware acceleration for Android emulator on Azure hosted ag…
PureWeen Feb 3, 2026
f9f7db1
Force TCG software emulation for Android emulator (-qemu -accel tcg)
PureWeen Feb 3, 2026
b9b799a
Add QEMU_ACCEL=tcg environment variable to force TCG emulation
PureWeen Feb 3, 2026
9492729
Switch to Intel macOS agent (macOS-15) for Android emulator support
PureWeen Feb 3, 2026
e980847
Switch to macOS-14 and increase emulator boot timeout to 180s
PureWeen Feb 3, 2026
31f5485
Skip Platform APIs and Common SDKs provisioning (pre-installed on mac…
PureWeen Feb 3, 2026
299b678
Increase emulator boot timeout to 300s/15min
PureWeen Feb 3, 2026
465e22f
Increase emulator timeout to 30 minutes
PureWeen Feb 3, 2026
7ce6e14
Remove redundant steps, reduce emulator timeout to 15min
PureWeen Feb 3, 2026
88cff89
Remove Build and Run HostApp step (PR Reviewer handles this)
PureWeen Feb 4, 2026
3a61aec
Wait for package manager service before declaring emulator ready
PureWeen Feb 4, 2026
28173a3
Increase emulator timeout to 30 minutes
PureWeen Feb 4, 2026
4078332
Restart emulator just before PR Reviewer to ensure freshness
PureWeen Feb 4, 2026
ae2f366
Fix Android device ID parsing in Start-Emulator.ps1
PureWeen Feb 4, 2026
f536f49
Increase Android emulator boot timeout to 600s (10 min)
PureWeen Feb 4, 2026
e4cbf17
Restore AVD auto-detection, pass Emulator_34 explicitly in CI
PureWeen Feb 4, 2026
92dd3a1
Use Review-PR.ps1 switches for posting comments
PureWeen Feb 4, 2026
88a7084
Switch to AcesShared pool (ARM64 macOS)
PureWeen Feb 4, 2026
8fca884
Enable Android SDK provisioning for AcesShared pool
PureWeen Feb 4, 2026
a9fdae1
Add PATH setup for Android SDK tools on AcesShared pool
PureWeen Feb 4, 2026
ada17da
Use ##vso[task.prependpath] to persist PATH for Android SDK tools
PureWeen Feb 5, 2026
8f8b910
Add ai-summary-comment fallback step and improve skill discovery
PureWeen Feb 5, 2026
73d24e1
Configure git identity for merge operations on self-hosted agents
PureWeen Feb 5, 2026
5f642f4
Add mandatory cleanup between try-fix attempts and common errors section
PureWeen Feb 5, 2026
d3c4162
Fix ai-summary-comment invocation and fallback
PureWeen Feb 6, 2026
26f7a14
Remove generic fallback comment - only use post-ai-summary-comment.ps1
PureWeen Feb 6, 2026
1c0ba83
Pass -StateFile to fallback when using alternative path (codex review…
PureWeen Feb 6, 2026
ccb7521
Fallback: restore clean tree before running script, use -PRNumber
PureWeen Feb 6, 2026
b4cf64d
Fix AI summary comment: prevent state file overwrite, run script dire…
Feb 6, 2026
2708fb5
Fix Copilot CLI auth: use COPILOT_GITHUB_TOKEN to avoid GH_TOKEN conf…
Feb 6, 2026
262e932
Increase job timeout to 180 min (Phase 1 takes ~90 min)
Feb 6, 2026
cc3657b
Fix: stop try-fix from committing state file (causes git checkout rev…
PureWeen Feb 6, 2026
021b8a2
Fix: use 'git checkout HEAD -- .' to restore deleted files between ph…
PureWeen Feb 6, 2026
d0fe9e7
Add diagnostics and harden phase transitions
PureWeen Feb 6, 2026
ffe42e5
Fix step hanging: replace tee pipe with Start-Transcript
PureWeen Feb 6, 2026
d9df388
Fix step hanging: stop orphaned copilot/node processes at exit
PureWeen Feb 6, 2026
20a70fb
Fix step hang: cleanup orphans at both PS and bash levels
PureWeen Feb 6, 2026
bf3f617
Fix: only cleanup copilot processes, not ADO agent node process
PureWeen Feb 6, 2026
0f8ba01
Remove unused pr-review-prompt.md
PureWeen Feb 7, 2026
efdfe5c
Add iOS platform support to ci-copilot pipeline
PureWeen Feb 8, 2026
6ca0fbe
Skip Xcode version check on AcesShared agents
PureWeen Feb 8, 2026
ae31c11
Enhance PR review: finalize output & comments
kubaflo Feb 9, 2026
2305bb3
Increase multi-model try-fix to 6 models
PureWeen Feb 9, 2026
854a10a
Address PR review: Windows compat, cleanup consistency, and code qual…
PureWeen Feb 9, 2026
920f256
Switch Android emulator to API 30 to match maui-pr pipeline
PureWeen Feb 9, 2026
03d6199
Fix: Extract Report content from '## Final Recommendation' heading fa…
kubaflo Feb 10, 2026
ec221c2
Add agent workflow metrics labels (s/agent-* prefix)
kubaflo Feb 10, 2026
d508f11
Use hardware GPU for Android emulator on macOS (match maui-pr pipeline)
PureWeen Feb 10, 2026
807d9fb
Install both Appium drivers (agent may switch platforms for platform-…
PureWeen Feb 10, 2026
9b9b1a3
Collect UI test screenshots and page source in CopilotLogs artifact
PureWeen Feb 11, 2026
7ce5e3f
Fix: Always update AI Summary comment instead of skipping when one ex…
PureWeen Feb 11, 2026
544b35d
Fix: Prevent fallback comment step from hanging on stdin
PureWeen Feb 11, 2026
655bdd6
Add PRAgent outputs and CI autonomous behavior
kubaflo Feb 12, 2026
3194e28
Require PRNumber, adjust PR script log path
kubaflo Feb 12, 2026
4c2c32f
Use PRAgent subdir for PRState try-fix paths
kubaflo Feb 12, 2026
2d7afec
Clarify autonomous execution wording
kubaflo Feb 12, 2026
66788a1
Revert labels logic
kubaflo Feb 12, 2026
ef0f542
Always auto-load PRAgent phase files
kubaflo Feb 13, 2026
4519bc6
Pin restore point and restore git state between phases
kubaflo Feb 13, 2026
28bc3cc
Add agent label automation and docs
kubaflo Feb 14, 2026
4d804b2
Add unified mode for PR finalization comments
kubaflo Feb 14, 2026
6299ffd
Use version-specific iOS preferred devices
kubaflo Feb 16, 2026
b3539ff
Shutdown other booted iOS simulators
kubaflo Feb 17, 2026
4896e12
Fix iOS simulator fallback: try iPhone 11 Pro when iPhone Xs device t…
kubaflo Feb 17, 2026
005dd38
ci-copilot: set pipeline run title early using build.updatebuildnumbe…
Copilot Feb 20, 2026
cc37d34
[ci] Fix variables
rmarinho Feb 20, 2026
31a95a7
Merge branch 'copilot-ci-rui' into copilot-ci
rmarinho Feb 20, 2026
1dfaf81
[ci] Publish-Build-Assets just for pack/release build
rmarinho Feb 20, 2026
11c40ba
Merge branch 'copilot-ci-rui' into copilot-ci
rmarinho Feb 20, 2026
66a705a
Update ci-copilot.yml
kubaflo Feb 20, 2026
a447b11
Revert "Add agent label automation and docs"
kubaflo Feb 25, 2026
9c8824a
Merge branch 'main' into copilot-ci
kubaflo Feb 26, 2026
f103c32
Adjust simulator and Android emulator defaults
kubaflo Feb 26, 2026
006a4de
Merge branch 'main' into copilot-ci
kubaflo Feb 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/agents/learn-from-pr.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@ Present a summary:
| Situation | Action |
|-----------|--------|
| PR not found | Ask user to verify PR number |
| No session markdown | Proceed with PR diff analysis only |
| Target file doesn't exist | Create if instruction/architecture doc, skip if code |
| Duplicate content exists | Skip, note in report |
| Unclear where to add | Ask user for guidance |
Expand Down
185 changes: 16 additions & 169 deletions .github/agents/pr.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: pr
description: Sequential 4-phase workflow for GitHub issues - Pre-Flight, Gate, Fix, Report. Phases MUST complete in order. State tracked in CustomAgentLogsTmp/PRState/
description: Sequential 4-phase workflow for GitHub issues - Pre-Flight, Gate, Fix, Report. Phases MUST complete in order.
---

# .NET MAUI Pull Request Agent
Expand Down Expand Up @@ -48,13 +48,13 @@ After Gate passes, read `.github/agents/pr/post-gate.md` for **Phases 3-4**.
- Follow Templates EXACTLY (no `open` attributes, no "improvements")
- No Direct Git Commands (use `gh pr diff/view`, let scripts handle files)
- Use Skills' Scripts (don't bypass with manual commands)
- Stop on Environment Blockers (strict retry limits, report and ask user)
- Stop on Environment Blockers (retry once, then skip and continue autonomously)
- Multi-Model Configuration (5 models for Phase 4)
- Platform Selection (must be affected AND available on host)

**Key points:**
- ❌ Never run `git checkout`, `git switch`, `git stash`, `git reset` - agent is always on correct branch
- ❌ Never continue after environment blocker - STOP and ask user
- ❌ Never stop and ask user - use best judgment to skip blocked phases and continue
- ❌ Never mark phase ✅ with [PENDING] fields remaining

Phase 3 uses a 5-model exploration workflow. See `post-gate.md` for detailed instructions after Gate passes.
Expand All @@ -65,8 +65,6 @@ Phase 3 uses a 5-model exploration workflow. See `post-gate.md` for detailed ins

> **⚠️ SCOPE**: Document only. No code analysis. No fix opinions. No running tests.

**🚨 CRITICAL: Create the state file BEFORE doing anything else.**

### ❌ Pre-Flight Boundaries (What NOT To Do)

| ❌ Do NOT | Why | When to do it |
Expand All @@ -79,141 +77,11 @@ Phase 3 uses a 5-model exploration workflow. See `post-gate.md` for detailed ins

### ✅ What TO Do in Pre-Flight

- Create/check state file
- Read issue description and comments
- Note platforms affected (from labels)
- Identify files changed (if PR exists)
- Document disagreements and edge cases from comments

### Step 0: Check for Existing State File or Create New One

**State file location**: `CustomAgentLogsTmp/PRState/pr-XXXXX.md`

**Naming convention:**
- If starting from **PR #12345** → Name file `pr-12345.md` (use PR number)
- If starting from **Issue #33356** (no PR yet) → Name file `pr-33356.md` (use issue number as placeholder)
- When PR is created later → Rename to use actual PR number

```bash
# Check if state file exists
mkdir -p CustomAgentLogsTmp/PRState
if [ -f "CustomAgentLogsTmp/PRState/pr-XXXXX.md" ]; then
echo "State file exists - resuming session"
cat CustomAgentLogsTmp/PRState/pr-XXXXX.md
else
echo "Creating new state file"
fi
```

**If the file EXISTS**: Read it to determine your current phase and resume from there. Look for:
- Which phase has `▶️ IN PROGRESS` status - that's where you left off
- Which phases have `✅ PASSED` status - those are complete
- Which phases have `⏳ PENDING` status - those haven't started

**If the file does NOT exist**: Create it with the template structure:

```markdown
# PR Review: #XXXXX - [Issue Title TBD]

**Date:** [TODAY] | **Issue:** [#XXXXX](https://github.com/dotnet/maui/issues/XXXXX) | **PR:** [#YYYYY](https://github.com/dotnet/maui/pull/YYYYY) or None

## ⏳ Status: IN PROGRESS

| Phase | Status |
|-------|--------|
| Pre-Flight | ▶️ IN PROGRESS |
| 🚦 Gate | ⏳ PENDING |
| 🔧 Fix | ⏳ PENDING |
| 📋 Report | ⏳ PENDING |

---

<details>
<summary><strong>📋 Issue Summary</strong></summary>

[From issue body]

**Steps to Reproduce:**
1. [Step 1]
2. [Step 2]

**Platforms Affected:**
- [ ] iOS
- [ ] Android
- [ ] Windows
- [ ] MacCatalyst

</details>

<details>
<summary><strong>📁 Files Changed</strong></summary>

| File | Type | Changes |
|------|------|---------|
| `path/to/fix.cs` | Fix | +X lines |
| `path/to/test.cs` | Test | +Y lines |

</details>

<details>
<summary><strong>💬 PR Discussion Summary</strong></summary>

**Key Comments:**
- [Notable comments from issue/PR discussion]

**Reviewer Feedback:**
- [Key points from review comments]

**Disagreements to Investigate:**
| File:Line | Reviewer Says | Author Says | Status |
|-----------|---------------|-------------|--------|

**Author Uncertainty:**
- [Areas where author expressed doubt]

</details>

<details>
<summary><strong>🚦 Gate - Test Verification</strong></summary>

**Status**: ⏳ PENDING

- [ ] Tests FAIL (bug reproduced)

**Result:** [PENDING]

</details>

<details>
<summary><strong>🔧 Fix Candidates</strong></summary>

**Status**: ⏳ PENDING

| # | Source | Approach | Test Result | Files Changed | Notes |
|---|--------|----------|-------------|---------------|-------|
| PR | PR #XXXXX | [PR's approach - from Pre-Flight] | ⏳ PENDING (Gate) | [files] | Original PR - validated by Gate |

**Note:** try-fix candidates (1, 2, 3...) are added during Phase 3. PR's fix is reference only.

**Exhausted:** No
**Selected Fix:** [PENDING]

</details>

---

**Next Step:** After Gate passes, read `.github/agents/pr/post-gate.md` and continue with phases 3-4.
```

This file:
- Serves as your TODO list for all phases
- Tracks progress if interrupted
- Must exist before you start gathering context
- **Always include when saving changes** (to `CustomAgentLogsTmp/PRState/`)
- **Phases 3-4 sections are added AFTER Gate passes** (see `pr/post-gate.md`)

**Then gather context and update the file as you go.**

### Step 1: Gather Context (depends on starting point)

**If starting from a PR:**
Expand Down Expand Up @@ -258,11 +126,9 @@ gh pr view XXXXX --json comments --jq '.comments[] | select(.body | contains("Fi
- Contains structured analysis (Root Cause, Platform Comparison, etc.)

**If prior agent review found:**
1. **Extract and use as state file content** - The review IS the completed state
2. Parse the phase statuses to determine what's already done
3. Import all findings (fix candidates, test results)
4. Update your local state file with this content
5. Resume from whichever phase is not yet complete (or report as done)
1. Parse the phase statuses to determine what's already done
2. Import all findings (fix candidates, test results)
3. Resume from whichever phase is not yet complete (or report as done)

**Do NOT:**
- Start from scratch if a complete review already exists
Expand All @@ -271,8 +137,6 @@ gh pr view XXXXX --json comments --jq '.comments[] | select(.body | contains("Fi

### Step 3: Document Key Findings

Update the state file `CustomAgentLogsTmp/PRState/pr-XXXXX.md`:

**If PR exists** - Document disagreements and reviewer feedback:
| File:Line | Reviewer Says | Author Says | Status |
|-----------|---------------|-------------|--------|
Expand Down Expand Up @@ -308,21 +172,12 @@ The test result will be updated to `✅ PASS (Gate)` after Gate passes.

### Step 5: Complete Pre-Flight

**🚨 MANDATORY: Update state file**

**Update state file** - Change Pre-Flight status and populate with gathered context:
1. Change Pre-Flight status from `▶️ IN PROGRESS` to `✅ COMPLETE`
2. Fill in issue summary, platforms affected, regression info
3. Add edge cases and any disagreements (if PR exists)
4. Change 🚦 Gate status to `▶️ IN PROGRESS`

**Before marking ✅ COMPLETE, verify state file contains:**
- [ ] Issue summary filled (not [PENDING])
- [ ] Platform checkboxes marked
- [ ] Files Changed table populated (if PR exists)
- [ ] PR Discussion Summary documented (if PR exists)
- [ ] All [PENDING] placeholders replaced
- [ ] State file saved
Verify the following before proceeding:
- [ ] Issue summary captured
- [ ] Platform information noted
- [ ] Files changed identified (if PR exists)
- [ ] PR discussion summarized (if PR exists)
- [ ] **Write phase output to `CustomAgentLogsTmp/PRState/{PRNumber}/PRAgent/pre-flight/content.md`** (see SHARED-RULES.md "Phase Output Artifacts")

---

Expand Down Expand Up @@ -356,7 +211,7 @@ find src/Controls/tests -name "*XXXXX*" -type f 2>/dev/null
**🚨 CRITICAL: Choose a platform that is BOTH affected by the bug AND available on the current host.**

**Identify affected platforms** from Pre-Flight:
- Check the "Platforms Affected" checkboxes in the state file
- Check the platforms affected from Pre-Flight context
- Check issue labels (e.g., `platform/iOS`, `platform/Android`)
- Check which platform-specific files the PR modifies

Expand Down Expand Up @@ -416,18 +271,11 @@ See `.github/skills/verify-tests-fail-without-fix/SKILL.md` for full skill docum

### Complete 🚦 Gate

**🚨 MANDATORY: Update state file**

**Update state file**:
1. Fill in **Result**: `PASSED ✅`
2. Change 🚦 Gate status to `✅ PASSED`
3. Proceed to Phase 3

**Before marking ✅ PASSED, verify state file contains:**
- [ ] Result shows PASSED ✅ or FAILED ❌
Verify the following before proceeding:
- [ ] Test result documented (PASSED ✅ or FAILED ❌)
- [ ] Test behavior documented
- [ ] Platform tested noted
- [ ] State file saved
- [ ] **Write phase output to `CustomAgentLogsTmp/PRState/{PRNumber}/PRAgent/gate/content.md`** (see SHARED-RULES.md "Phase Output Artifacts")

---

Expand All @@ -445,7 +293,6 @@ See `.github/skills/verify-tests-fail-without-fix/SKILL.md` for full skill docum
- ❌ **Looking at implementation code during Pre-Flight** - Just gather issue/PR context
- ❌ **Forming opinions on the fix during Pre-Flight** - That's Phase 3
- ❌ **Running tests during Pre-Flight** - That's Phase 2 (Gate)
- ❌ **Not creating state file first** - ALWAYS create state file before gathering context
- ❌ **Skipping to Phase 3** - Gate MUST pass first

## Common Gate Mistakes
Expand Down
37 changes: 15 additions & 22 deletions .github/agents/pr/PLAN-TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
## 🚨 Critical Rules (Summary)

See `SHARED-RULES.md` for complete details. Key points:
- **Environment Blockers**: STOP immediately, report, ask user (strict retry limits)
- **Environment Blockers**: Skip blocked phase and continue autonomously (no human operator)
- **No Git Commands**: Never checkout/switch branches - agent is always on correct branch
- **Gate via Task Agent**: Never run inline (prevents fabrication)
- **Multi-Model try-fix**: 5 models, SEQUENTIAL only
Expand All @@ -23,16 +23,14 @@ See `SHARED-RULES.md` for complete details. Key points:
## Work Plan

### Phase 1: Pre-Flight
- [ ] Create state file: `CustomAgentLogsTmp/PRState/pr-XXXXX.md`
- [ ] Gather PR metadata (title, body, labels, author)
- [ ] Fetch and read linked issue
- [ ] Fetch PR comments and review feedback
- [ ] Check for prior agent reviews (import and resume if found)
- [ ] Document platforms affected
- [ ] Classify changed files (fix vs test)
- [ ] Document PR's fix approach in Fix Candidates table
- [ ] Update state file: Pre-Flight → ✅ COMPLETE
- [ ] Save state file
- [ ] **Write `PRAgent/pre-flight/content.md`**

**Boundaries:** No code analysis, no fix opinions, no test running

Expand All @@ -46,11 +44,10 @@ See `SHARED-RULES.md` for complete details. Key points:
"Run verify-tests-fail-without-fix skill
Platform: [X], TestFilter: 'IssueXXXXX', RequireFullVerification: true"
```
- [ ] ⛔ If environment blocker: STOP, report, ask user
- [ ] ⛔ If environment blocker: retry once, then skip and document
- [ ] Verify: Tests FAIL without fix, PASS with fix
- [ ] If Gate fails: STOP, request test fixes
- [ ] Update state file: Gate → ✅ PASSED
- [ ] Save state file
- [ ] **Write `PRAgent/gate/content.md`**

### Phase 3: Fix 🔧
*(Only if Gate ✅ PASSED)*
Expand All @@ -61,7 +58,7 @@ See `SHARED-RULES.md` for complete details. Key points:
- [ ] gpt-5.2
- [ ] gpt-5.3-codex
- [ ] gemini-3-pro-preview
- [ ] ⛔ If blocker: STOP, report, ask user
- [ ] ⛔ If blocker: retry once, skip remaining models, proceed to Report
- [ ] Record: approach, result, files, failure analysis

**Round 2+: Cross-Pollination (MANDATORY)**
Expand All @@ -75,37 +72,33 @@ See `SHARED-RULES.md` for complete details. Key points:
- [ ] Mark Exhausted: Yes
- [ ] Compare passing candidates with PR's fix
- [ ] Select best fix (results → simplicity → robustness)
- [ ] Update state file: Fix → ✅ COMPLETE
- [ ] Save state file
- [ ] **Write `PRAgent/try-fix/content.md`**

### Phase 4: Report 📋
*(Only if Phases 1-3 complete)*

- [ ] Run `pr-finalize` skill
- [ ] Generate review: root cause, candidates, recommendation
- [ ] Post AI Summary comment (PR phases + try-fix):
- [ ] **Write `PRAgent/report/content.md`**
- [ ] Post AI Summary comment (auto-loads from PRAgent/*/content.md):
```bash
pwsh .github/skills/ai-summary-comment/scripts/post-ai-summary-comment.ps1 -PRNumber XXXXX -SkipValidation
pwsh .github/skills/ai-summary-comment/scripts/post-ai-summary-comment.ps1 -PRNumber XXXXX
pwsh .github/skills/ai-summary-comment/scripts/post-try-fix-comment.ps1 -IssueNumber XXXXX
```
- [ ] Post PR Finalization comment (separate):
```bash
pwsh .github/skills/ai-summary-comment/scripts/post-pr-finalize-comment.ps1 -PRNumber XXXXX -SummaryFile CustomAgentLogsTmp/PRState/pr-XXXXX.md
pwsh .github/skills/ai-summary-comment/scripts/post-pr-finalize-comment.ps1 -PRNumber XXXXX -SummaryFile CustomAgentLogsTmp/PRState/XXXXX/PRAgent/pr-finalize/pr-finalize-summary.md
```
- [ ] Update state file: Report → ✅ COMPLETE
- [ ] Save final state file

---

## Quick Reference

| Phase | Key Action | Blocker Response |
|-------|------------|------------------|
| Pre-Flight | Create state file | N/A |
| Gate | Task agent → verify script | ⛔ STOP, report, ask |
| Fix | Multi-model try-fix | ⛔ STOP, report, ask |
| Report | Post via skill | ⛔ STOP, report, ask |
| Pre-Flight | Gather context | N/A |
| Gate | Task agent → verify script | Skip, report incomplete |
| Fix | Multi-model try-fix | Skip remaining, proceed to Report |
| Report | Post via skill | Document what completed |

**State file:** `CustomAgentLogsTmp/PRState/pr-XXXXX.md`

**Never:** Mark BLOCKED and continue, claim success without tests, bypass scripts
**Never:** Claim success without tests, bypass scripts, stop and ask user
Loading
Loading