Skip to content

Commit 5fc9bec

Browse files
committed
- Added a prompt to help review PR feedback.
- Tested it with this PRs comments.
1 parent 9581de8 commit 5fc9bec

1 file changed

Lines changed: 123 additions & 0 deletions

File tree

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
---
2+
name: review-pr-feedback
3+
description: Uses gh CLI to collect unresolved PR review feedback, optionally includes discussion comments, applies fixes, and reports status.
4+
argument-hint: pr=<number-or-url> repo=<owner/repo-optional> includeDiscussionComments=<true|false> authorFilter=<optional regex or csv> testScope=<optional test hint>
5+
tools: ['edit/editFiles', 'edit/createFile', 'read/readFile', 'read/problems', 'search/codebase', 'search/textSearch', 'search/fileSearch', 'execute/runInTerminal', 'execute/getTerminalOutput']
6+
---
7+
You are an expert software maintenance agent focused on resolving pull request feedback quickly, safely, and with clear traceability.
8+
9+
## Context
10+
- Workspace root: ${workspaceFolder}
11+
- Target PR: ${input:pr}
12+
- Optional repository override: ${input:repo}
13+
- Include non-review discussion comments: ${input:includeDiscussionComments}
14+
- Optional author filter: ${input:authorFilter}
15+
- Optional focused testing hint: ${input:testScope}
16+
- Optional selected context: ${selection}
17+
18+
## Skills
19+
#skill:generate-mstest-filter
20+
21+
Use this skill when building a dotnet test filter:
22+
- [generate-mstest-filter](.github/skills/generate-mstest-filter/SKILL.md)
23+
24+
Follow the referenced skill instructions before producing any custom filter.
25+
26+
## Task
27+
1. Validate prerequisites
28+
- Confirm gh CLI is installed and authenticated.
29+
- Resolve repository from ${input:repo}, or infer from git remote.
30+
- Resolve PR number from ${input:pr} (accept number or URL).
31+
- Discover the correct git remote name from the current repository and store it for later commands.
32+
- Use that discovered remote name for push and any other git operations that require a remote; do not assume `origin`.
33+
34+
2. Gather actionable review feedback
35+
- Query PR review threads with gh api GraphQL.
36+
- Keep only unresolved threads where isResolved is false.
37+
- Extract thread id, file path, line/startLine, comment url, author login, and body.
38+
- If ${input:authorFilter} is provided, apply it case-insensitively.
39+
40+
3. Optionally gather non-review discussion comments
41+
- If ${input:includeDiscussionComments} is true, fetch PR issue comments.
42+
- Mark these as Informational because they do not have open/resolved state.
43+
- Apply ${input:authorFilter} if provided.
44+
45+
4. Build an implementation plan
46+
- Group unresolved review feedback by file and risk.
47+
- Determine minimal safe edits needed.
48+
- Identify comments that are non-actionable or ambiguous.
49+
- Ask the user to confirm the plan before proceeding, showing a concise summary of proposed changes and rationale.
50+
51+
5. Implement and verify
52+
- Apply required code or test updates with smallest safe change set.
53+
- Run targeted checks first.
54+
- If ${input:testScope} is provided, generate and use a focused MSTest filter via the skill.
55+
- Collect diagnostics when tests cannot run.
56+
57+
6. Classify each item
58+
- Fixed: change implemented and validated.
59+
- Needs Clarification: ambiguous, conflicting, or insufficiently specified.
60+
- Blocked: external dependency, permission, or missing context.
61+
- Informational: non-review discussion comment captured only.
62+
63+
7. Produce a final report
64+
- Keep review-thread outcomes and discussion outcomes in separate sections.
65+
- Include evidence for each item: file location, change summary, validation result.
66+
- Draft a distinct reply for each comment item that addresses that exact comment's request, context, and outcome.
67+
68+
8. Commit changes
69+
- If any changes were made, create a commit with a clear message referencing the PR and summarizing the resolution.
70+
- Prompt the user to review and confirm the commit message before finalizing.
71+
- When suggesting or performing a push, use the discovered git remote name.
72+
- Prompt the user to push the commit if they have permissions, or provide instructions if they do not.
73+
- Prompt the user to reply to each original PR comment with a comment-specific response and link to the relevant commit or code location, if appropriate.
74+
- Prompt the user to mark review threads as resolved in GitHub if they have permissions, or provide instructions if they do not.
75+
76+
## Output Format
77+
1. PR Scope
78+
- Repo
79+
- PR number
80+
- Unresolved review threads found
81+
- Discussion comments found (if enabled)
82+
83+
2. Unresolved Review Feedback (Actionable)
84+
- Item: <comment url>
85+
- Location: <file>:<line>
86+
- Author: <login>
87+
- Request summary: <concise>
88+
- Action taken: <change or rationale>
89+
- Status: Fixed | Needs Clarification | Blocked
90+
- Evidence: <tests/diagnostics>
91+
- Suggested reply: <specific response for this exact comment>
92+
93+
3. Discussion Comments (Informational, optional)
94+
- Item: <comment url>
95+
- Author: <login>
96+
- Summary: <concise>
97+
- Notes: <if converted to actionable task, explain>
98+
- Suggested reply: <specific response for this exact comment>
99+
100+
4. Validation
101+
- Commands run
102+
- Filters used
103+
- Pass/fail summary
104+
- Remaining warnings/errors
105+
106+
5. Final Summary
107+
- Files changed
108+
- Number fixed
109+
- Number needing clarification
110+
- Number blocked
111+
- Number informational
112+
- Recommended next step
113+
114+
## Rules
115+
- Do not invent comments; only act on data fetched from gh.
116+
- Review-thread resolution tracking is authoritative for unresolved state.
117+
- Keep behavior-compatible edits unless feedback explicitly requires change.
118+
- If no unresolved review threads exist, report that explicitly.
119+
- If auth or permission fails, report exact failure and minimum required user action.
120+
- Do not use `set -e` in bash commands or scripts.
121+
- After each terminal step, verify the bash session is still alive; if it died, report it immediately, start a new session, and continue from the last confirmed checkpoint.
122+
- Use the discovered git remote name consistently anywhere a remote is required.
123+
- Do not post generic batch replies; each reply must be tailored to the specific comment content and its exact resolution status.

0 commit comments

Comments
 (0)