用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/gittower/git-flow-next --skill address-review命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Run the full release process end-to-end - prep, tag, CI verification, Homebrew tap, WinGet verification, and website sync
Handle a small fix or maintenance task locally end-to-end — no PR, but full review gates and a confirmed local merge into main
Fully solve a small issue end-to-end — resolve, publish the PR, run two Copilot review rounds, address them, and merge when confident. Escalates to the user on anything uncertain.
基于 SOC 职业分类
正在显示 SKILL.md
| name | address-review |
| description | Fetch PR review feedback, evaluate it, implement accepted changes, and update the PR after confirmation |
| argument-hint | <pr-number> [--plan-only] |
| allowed-tools | Bash, Read, Write, Edit, Grep, Glob, mcp__github__get_pull_request, mcp__github__get_pull_request_reviews, mcp__github__get_pull_request_comments, mcp__github__add_issue_comment |
Fetch review comments from a PR (Copilot, human, or any reviewer), evaluate each one against the project's development philosophy, write the evaluation as a plan artifact, and implement the accepted changes. All public actions (push, PR comment, description update) wait for user confirmation.
/address-review <pr-number> [--plan-only]
<pr-number> — required, the PR whose review feedback to address--plan-only — evaluate and write the plan artifact, but do not implement. Use when the feedback is large enough to review the plan first; implement later with /implement .ai/<folder>/review-plan-<sha>.md.Fetch all review data in parallel:
mcp__github__get_pull_request (owner: gittower, repo: git-flow-next)mcp__github__get_pull_request_reviewsmcp__github__get_pull_request_commentsFrom the PR details, extract the head branch name and head SHA (short form for filenames).
Compare reviews by submitted_at timestamp. Focus on the most recent review round — comments from earlier rounds that were already addressed (check for existing reply comments or commits after the review) should be noted as "previously addressed" and skipped.
Group comments by review round (same pull_request_review_id).
Also skip items that are:
Ensure the PR branch is checked out locally:
git fetch origin <head-branch>
git checkout <head-branch>
For each comment, read the file and lines referenced in the path and diff_hunk fields. Understand the full context — don't evaluate comments in isolation.
For every comment, assign a verdict and a severity.
Verdict — accept when the comment identifies:
Verdict — dismiss when the comment:
Verdict — partial when:
Severity (for accepted and partial items, per REVIEW_CRITERIA.md categories):
Always write the evaluation before doing anything else — this is the audit trail for the review round.
Determine the output folder:
# Extract issue number from branch name if present (feature/42-something -> 42)
# Look for existing .ai/issue-<number>-* folder, fall back to .ai/pr-<number>/
Write to .ai/<folder>/review-plan-<head-sha>.md:
# Review Plan: PR #<number> (round <N>)
## Source
- PR: #<number> - <title> (<link>)
- Review: <reviewer> on <date>
- Revision: `<full-head-sha>`
- Branch: `<branch-name>`
## Evaluation
| # | File | Verdict | Severity | Summary |
|---|------|---------|----------|---------|
| 1 | path/to/file.go | accept | must fix | <one-line reason> |
| 2 | path/to/other.go | dismiss | — | <one-line reason> |
| 3 | docs/file.md | partial | should fix | <concern valid, simpler fix> |
## Tasks
### Task 1: <derived from accepted comment>
**Files**: `<path/to/file.go>`
**Changes**:
- [ ] <specific change>
**Details**:
#2 —
If no actionable feedback was found, write the plan with an empty Tasks section noting the review was clean (approval or comments without action items), report that, and stop.
If --plan-only was given: report the path to the plan artifact, summarize the verdicts, and stop. Suggest /implement .ai/<folder>/review-plan-<sha>.md as the next step.
Without --plan-only, proceed directly — no confirmation needed for local work:
go build ./... to verify compilationgo test ./... (or the relevant test subset) to verify tests passKeep changes minimal and focused — fix what the review identified, don't refactor surrounding code.
Use the /commit skill pattern (read .claude/skills/commit/SKILL.md):
fix(hooks): Handle CRLF paths on WindowsDo NOT push yet.
Draft everything that will touch GitHub, but do not execute yet.
Route each reply by where the feedback lives:
path + diff_hunk, i.e. anchored to a line) → reply inline on that comment's thread, one reply per thread, so it resolves in context. Each reply states the verdict for that specific comment (accepted + commit SHA, dismissed + reason, or partial + what differed). After replying, resolve that thread (see step 12) — every thread we handled (accept, dismiss, or partial) gets resolved once its reply is posted. Leave a thread unresolved only if it stays genuinely open (e.g. deferred to a follow-up or awaiting the reviewer's decision); call those out at the gate.> blockquote) followed by the response. Do not open a separate comment per general item.So a review round may produce inline replies, a single combined comment, or both — depending on which kinds of feedback it contained. If there are no general comments, post no combined comment; if there are no inline comments, post no inline replies.
Also draft:
pr_summary.md exists in the .ai/ folder and the changes materially alter the summary, draft the updated bodyPresent to the user in one block:
git log oneline of the new commits)Then ask: "Push and post?"
Wait for confirmation. The user may adjust verdicts, edit the comment, or ask for changes — apply them and re-present. Nothing is pushed or posted until confirmed.
After confirmation:
Push to the remote branch
Update the PR description if drafted:
gh api repos/gittower/git-flow-next/pulls/<number> -X PATCH -f body="<updated body>"
Post the replies (verify each body against the posting checklist first — the PR-description PATCH and inline replies go through gh api, so no hook reminder fires):
gh api repos/gittower/git-flow-next/pulls/<number>/comments/<comment-id>/replies -f body="<reply>"
mcp__github__add_issue_commentResolve the handled inline threads. A REST reply does not resolve the thread — resolution is a GraphQL mutation keyed by the thread's node ID (not the comment ID). Map each handled comment to its thread, then resolve it.
Fetch the thread IDs once (map databaseId of the first comment → thread id):
gh api graphql -f query='
query($owner:String!,$repo:String!,$pr:Int!){
repository(owner:$owner,name:$repo){
pullRequest(number:$pr){
reviewThreads(first:100){
nodes{ id isResolved comments(first:1){ nodes{ databaseId path } } }
}
}
}
}' -f owner=gittower -f repo=git-flow-next -F pr=<number>
Then resolve each thread we replied to with a verdict (accept, dismiss, or partial):
gh api graphql -f query='
mutation($threadId:ID!){
resolveReviewThread(input:{threadId:$threadId}){ thread{ isResolved } }
}' -f threadId=<thread-node-id>
Skip threads flagged as genuinely open at the gate, and any already isResolved.
Update pr_summary.md in .ai/ if it exists
Output a final summary:
/plan-from-review — its output format lives on as the plan artifact in step 6, and --plan-only covers the plan-first workflowreview-plan-<sha>.md), so multiple review cycles accumulate side by side and stay correlated with the PR state they reviewed