Skip to content

Commit e953d24

Browse files
GiggleLiuclaude
andcommitted
fix-pr: check all review comment sources, prioritize user comments
- Step 1a now prints counts for each source and labels them clearly - Triage table separates user comments (priority 2) from Copilot (priority 3) - Added "User comments always take priority" instruction - Deleted stale plan file per reviewer request Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f9b1419 commit e953d24

2 files changed

Lines changed: 23 additions & 75 deletions

File tree

.claude/skills/fix-pr/SKILL.md

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,35 +26,41 @@ HEAD_SHA=$(gh api repos/$REPO/pulls/$PR | python3 -c "import sys,json; print(jso
2626

2727
### 1a. Fetch Review Comments
2828

29-
Three sources of feedback to check:
29+
**Check ALL four sources.** User inline comments are the most commonly missed — do not skip any.
3030

3131
```bash
32-
# Copilot and user inline review comments (on code lines)
32+
# 1. Inline review comments on code lines (from ALL reviewers: users AND Copilot)
3333
gh api repos/$REPO/pulls/$PR/comments | python3 -c "
3434
import sys,json
35-
for c in json.load(sys.stdin):
35+
comments = json.load(sys.stdin)
36+
print(f'=== Inline comments: {len(comments)} ===')
37+
for c in comments:
3638
line = c.get('line') or c.get('original_line') or '?'
37-
print(f'[{c[\"user\"][\"login\"]}] {c[\"path\"]}:{line} — {c[\"body\"]}')
39+
print(f'[{c[\"user\"][\"login\"]}] {c[\"path\"]}:{line} — {c[\"body\"][:200]}')
3840
"
3941

40-
# Review-level comments (top-level review body)
42+
# 2. Review-level comments (top-level review body from formal reviews)
4143
gh api repos/$REPO/pulls/$PR/reviews | python3 -c "
4244
import sys,json
43-
for r in json.load(sys.stdin):
45+
reviews = json.load(sys.stdin)
46+
print(f'=== Reviews: {len(reviews)} ===')
47+
for r in reviews:
4448
if r.get('body'):
45-
print(f'[{r[\"user\"][\"login\"]}] {r[\"state\"]}: {r[\"body\"]}')
49+
print(f'[{r[\"user\"][\"login\"]}] {r[\"state\"]}: {r[\"body\"][:200]}')
4650
"
4751

48-
# Issue-level comments (general discussion, excluding bots)
52+
# 3. Issue-level comments (general discussion)
4953
gh api repos/$REPO/issues/$PR/comments | python3 -c "
5054
import sys,json
51-
for c in json.load(sys.stdin):
52-
login = c['user']['login']
53-
if 'codecov' not in login and 'copilot' not in login:
54-
print(f'[{login}] {c[\"body\"]}')
55+
comments = [c for c in json.load(sys.stdin) if 'codecov' not in c['user']['login']]
56+
print(f'=== Issue comments: {len(comments)} ===')
57+
for c in comments:
58+
print(f'[{c[\"user\"][\"login\"]}] {c[\"body\"][:200]}')
5559
"
5660
```
5761

62+
**Verify counts:** If any source returns 0, confirm it's genuinely empty — don't assume no feedback exists.
63+
5864
### 1b. Check CI Status
5965

6066
```bash
@@ -84,11 +90,13 @@ Categorize all findings:
8490

8591
| Priority | Type | Action |
8692
|----------|------|--------|
87-
| 1 | CI failures (test/clippy/build) | Fix immediately -- blocks merge |
88-
| 2 | User review comments | Address each one -- respond on PR |
89-
| 3 | Copilot review comments | Evaluate validity, fix if correct |
93+
| 1 | CI failures (test/clippy/build) | Fix immediately blocks merge |
94+
| 2 | User inline/review comments | Address each one — highest review priority |
95+
| 3 | Copilot inline suggestions | Evaluate validity, fix if correct |
9096
| 4 | Codecov coverage gaps | Add tests for uncovered lines |
9197

98+
**User comments always take priority over bot comments.** A user inline comment requesting file deletion is just as important as a user review requesting a code change.
99+
92100
## Step 3: Fix CI Failures
93101

94102
For each failing check:

docs/plans/2026-03-05-check-issue-skill-design.md

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)