用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/finos/git-proxy --skill address-review命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | address-review |
| description | Address review comments on a GitHub pull request |
Address review comments on a GitHub pull request.
Read AGENTS.md first. It is the canonical project guide for this repository.
The argument is a PR number (e.g. /address-review 98). If no number is given, ask the user.
Save the current branch name: git rev-parse --abbrev-ref HEAD
Checkout the PR branch: gh pr checkout <number> --detach
Fetch review data (pick one):
REST (simple): Lists inline review comments; it does not include per-thread resolved status, so you cannot rely on it alone to skip resolved threads.
gh api repos/{owner}/{repo}/pulls/<number>/comments --paginate
GraphQL (for filtering resolved threads): Returns reviewThreads with isResolved, isOutdated, paths/lines, and nested comments—use this when step 5 must honor “already resolved.” Paginate with cursor (use null or omit for the first page; then pass reviewThreads.pageInfo.endCursor while hasNextPage is true).
gh api graphql -f query='
query($owner:String!, $repo:String!, $number:Int!, $cursor:String) {
repository(owner:$owner, name:$repo) {
pullRequest(number:$number) {
reviewThreads(first:100, after:$cursor) {
pageInfo { hasNextPage endCursor }
nodes {
isResolved
isOutdated
path
line
originalLine
comments(first:100) {
nodes {
databaseId
body
author { login }
createdAt
url
}
}
}
}
}
}
}' -F owner={owner} -F repo={repo} -F number=<number> -F cursor=<cursor>
First page: pass JSON null for cursor (see gh help api / your shell for how gh expects null). Later pages: set cursor to the previous response’s reviewThreads.pageInfo.endCursor until hasNextPage is false.
id, path, line (or original_line), body, user.login, in_reply_to_id (to detect threads). If you used GraphQL, map databaseId to id and thread fields as needed.PR #<number> — <n> unaddressed review comments
1. <file>:<line> — @<author>: <first 80 chars of comment>
2. <file>:<line> — @<author>: <first 80 chars of comment>
...
If there are no unaddressed comments, say so and return to the original branch.
For each comment in order, show:
Then ask the programmer what to do using AskUserQuestion with these options:
If the programmer chooses Fix, apply the change and move on. If they choose Reply, queue it. Track all code changes and queued replies separately.
After walking through all comments:
Code changes: If any code fixes were made, run the /commit skill to create a commit with the changes, then push:
git push
Replies: If there are queued replies, show all of them in a final summary:
Queued replies:
1. <file>:<line> — reply to @<author>:
"<reply text>"
2. <file>:<line> — reply to @<author>:
"<reply text>"
Ask the programmer for final confirmation before posting. They can modify any reply text at this point.
Post each reply as a separate API call:
gh api repos/{owner}/{repo}/pulls/<number>/comments/<comment_id>/replies \
--method POST \
-f body="<reply text>"
After all replies are posted, return to the original branch:
git checkout <original-branch>
Follow these rules strictly when drafting replies:
--detach to avoid creating local branches$ARGUMENTS
基于 SOC 职业分类