gh-pr-review-responder

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

GitHub PR Review Responder

GitHub PR评审响应工具

Purpose

用途

  • Evaluate each review thread with KEEP vs DISCARD first (references/keep-discard-rubric.md) so low-value or out-of-scope feedback gets a clear, respectful reply without unnecessary code churn.
  • Only KEEP items may lead to implementation work; DISCARD threads get a reply that states the decision and criteria, then resolve when appropriate.
  • After KEEP code changes, verify and push per ADR 0002 (
    pnpm lint && pnpm test
    when defined).
  • SKILL.md stays in English; GitHub replies match reviewer language (references/reply-templates.md).
  • 首先使用KEEP vs DISCARD标准评估每个评审线程(参考references/keep-discard-rubric.md),让低价值或超出范围的反馈得到清晰、礼貌的回复,避免不必要的代码变更。
  • 只有标记为KEEP的项才会开展实施工作;标记为DISCARD的线程会收到说明决策及判断标准的回复,并在合适时标记为已解决。
  • 完成KEEP项的代码修改后,需根据ADR 0002进行验证并推送(若已定义则执行
    pnpm lint && pnpm test
    )。
  • SKILL.md需保持英文GitHub回复需匹配评审者的语言(参考references/reply-templates.md)。

When to Use

使用场景

  • "PR レビュー対応", "review comments", "address feedback",
    gh-pr-review-responder
    , triage with KEEP/DISCARD.
  • 适用于“PR レビュー対応”、“review comments”、“address feedback”、
    gh-pr-review-responder
    、使用KEEP/DISCARD进行分类处理的场景。

Do Not Use When

禁用场景

  • Opening or editing PR metadata only—use create-pr-jp.
  • Commit/push only without review—use commit-jp / push.
  • Branch behind base—use pull first.
  • 仅需创建或编辑PR元数据时——请使用create-pr-jp
  • 无需评审仅需提交/推送时——请使用commit-jp / push
  • 分支落后于基准分支时——请先使用pull

Related Skills

相关技能

  • push: Publish commits after KEEP fixes.
  • pull: Sync before push when needed.
  • commit-jp: Japanese commits for fix commits if required.
  • create-pr-jp: Does not apply to review threads; PR must already exist.
  • push:完成KEEP项修复后发布提交。
  • pull:需要时在推送前同步分支。
  • commit-jp:若有需要,使用日文提交信息记录修复提交。
  • create-pr-jp:不适用于评审线程;PR必须已存在。

Prerequisites

前置条件

  • gh
    authenticated; Python 3 for scripts; open PR for current branch.
  • gh
    已完成认证;安装有Python 3以运行脚本;当前分支对应已开启的PR。

Workflow

工作流程

Run bundled scripts from the skill root (directory containing this
SKILL.md
):
python3 scripts/fetch_review_threads.py …
and
python3 scripts/reply_review_thread.py …
. From this repo’s git root, prefix with
skills/gh-pr-review-responder/
. If commands are not found, see references/skill-root-resolution.md.
  1. Auth:
    gh auth status
    ; stop if unauthenticated.
  2. Collect threads:
    python3 scripts/fetch_review_threads.py --format markdown

    (Optional:
    --include-resolved
    ,
    --include-outdated
    ,
    --pr NUMBER
    .)
  3. KEEP vs DISCARD (mandatory for each pending thread):
    Use references/keep-discard-rubric.md. For each comment:
    • Factual accuracy — read the actual code; note misunderstandings.
    • Severity — CRITICAL / IMPORTANT / LOW.
    • Diff relevance — does it target this PR’s changed lines (use
      git diff <base>...HEAD
      or equivalent; align with repo base branch).
    • Actionability — specific fix vs vague “consider…”.
  4. Decision:
    • DISCARD if the rubric says so (LOW, wrong fact, out-of-diff, linter-only, vague, oscillation risk, etc.).
      Reply only using the DISCARD templates in references/reply-templates.md; do not change product code for this thread. Resolve thread when suitable.
    • KEEP if CRITICAL/IMPORTANT, accurate, diff-relevant, and actionable (or KEEP with explanation if already fixed).
      → Sub-triage:
      • needs_code_change
        — implement fix, then step 6.
      • keep_replied
        — explanation or “already in this PR”; no further code (templates §1–2).
      • needs_clarification
        — KEEP but cannot act without reviewer input (template §3).
  5. Post replies:
    python3 scripts/reply_review_thread.py --thread-id <ID> --body-file ...

    Include
    Decision: KEEP
    or
    Decision: DISCARD
    and reasoning in the body (see the §0 structure blocks in references/reply-templates.md). Top-level comments:
    gh pr comment
    .
    --resolve
    when the thread is complete.
  6. Checks + push — run only if at least one KEEP thread required
    needs_code_change
    :
    1. pnpm lint && pnpm test
      when defined; else AGENTS.md / README /
      package.json
      .
    2. Fix until green; commit (commit-jp if required);
      git push
      .
  7. Post failures: report command, stderr, draft text.
  8. Final report: Counts KEEP / DISCARD; per thread
    implemented
    /
    discard-replied
    /
    keep-replied-no-code
    /
    clarification
    /
    blocked
    ; files changed; checks; push result.
技能根目录(包含此
SKILL.md
的目录)运行捆绑脚本:
python3 scripts/fetch_review_threads.py …
python3 scripts/reply_review_thread.py …
。从本仓库的Git根目录运行时,需添加前缀
skills/gh-pr-review-responder/
。若找不到命令,请参考references/skill-root-resolution.md
  1. 认证检查:执行
    gh auth status
    ;若未认证则停止操作。
  2. 收集线程
    python3 scripts/fetch_review_threads.py --format markdown

    (可选参数:
    --include-resolved
    --include-outdated
    --pr NUMBER
    。)
  3. KEEP vs DISCARD分类(必填)
    参考references/keep-discard-rubric.md。针对每条评论需评估:
    • 事实准确性——查看实际代码;记录误解点。
    • 严重程度——CRITICAL / IMPORTANT / LOW。
    • 差异相关性——是否针对本次PR的变更代码行(使用
      git diff <base>...HEAD
      或等效命令;与仓库基准分支对齐)。
    • 可操作性——具体修复建议还是模糊的“考虑…”。
  4. 决策
    • 若符合标准则标记为DISCARD(如LOW严重程度、事实错误、超出变更范围、仅代码检查问题、模糊建议、存在反复风险等)。
      仅回复,使用references/reply-templates.md中的DISCARD模板;请勿针对此线程修改产品代码。在合适时标记线程为已解决。
    • 若为CRITICAL/IMPORTANT、准确、与变更相关且可操作(或已修复但需标记为KEEP并说明),则标记为KEEP
      → 进一步分类:
      • needs_code_change
        ——实施修复,然后执行步骤6。
      • keep_replied
        ——提供解释或说明“已包含在本次PR中”;无需进一步代码修改(参考模板§1–2)。
      • needs_clarification
        ——标记为KEEP,但需评审者提供更多信息才能开展工作(参考模板§3)。
  5. 发布回复
    python3 scripts/reply_review_thread.py --thread-id <ID> --body-file ...

    回复内容需包含**
    Decision: KEEP
    Decision: DISCARD
    **及理由(参考references/reply-templates.md中的§0结构块)。如需添加顶层评论:使用
    gh pr comment
    。线程处理完成时添加
    --resolve
    参数标记为已解决。
  6. 检查 + 推送——仅当至少一个KEEP线程要求**
    needs_code_change
    **时执行:
    1. 若已定义则执行**
      pnpm lint && pnpm test
      **;否则参考AGENTS.md / README /
      package.json
    2. 修复问题直到检查通过;提交(若需要则使用commit-jp);
      git push
  7. 上报失败:报告命令、标准错误输出、草稿文本。
  8. 最终报告:统计KEEP / DISCARD的数量;按线程状态统计
    implemented
    /
    discard-replied
    /
    keep-replied-no-code
    /
    clarification
    /
    blocked
    ;记录修改的文件;检查结果;推送结果。

Present Results to User

向用户展示结果

  • KEEP vs DISCARD summary table or counts.
  • Explicit statement: no code was written solely for DISCARD threads.
  • KEEP vs DISCARD汇总表格或数量统计。
  • 明确说明:未针对DISCARD线程编写任何代码

Reply Quality Rules

回复质量规则

  • DISCARD replies must name which criterion failed (severity, fact, diff, actionability)—see rubric.
  • KEEP replies tie to evidence: paths, commits, tests.
  • Match reviewer language.
  • DISCARD回复必须说明哪项标准未通过(如严重程度、事实、变更范围、可操作性)——参考分类标准。
  • KEEP回复需关联证据:文件路径、提交记录、测试用例。
  • 回复需匹配评审者的语言

Troubleshooting

故障排除

SituationAction
Scripts not foundskill-root-resolution.md
Unsure KEEP vs DISCARDRe-read rubric; if still ambiguous, needs_clarification (not DISCARD by default)
gh
/ GraphQL errors
See stderr; retry once
场景操作
找不到脚本参考skill-root-resolution.md
无法确定KEEP vs DISCARD重新阅读分类标准;若仍有歧义,标记为needs_clarification(默认不标记为DISCARD)
gh
/ GraphQL错误
查看标准错误输出;重试一次

Resources

资源

  • references/keep-discard-rubric.mdKEEP/DISCARD criteria (source of truth).
  • references/reply-templates.md — structures + EN/JP templates including DISCARD.
  • references/skill-root-resolution.md — path resolution if
    scripts/...
    fails.
  • scripts/fetch_review_threads.py
  • scripts/reply_review_thread.py
  • references/keep-discard-rubric.md —— KEEP/DISCARD分类标准(权威来源)。
  • references/reply-templates.md —— 回复结构及EN/JP模板(包含DISCARD模板)。
  • references/skill-root-resolution.md —— 若
    scripts/...
    命令执行失败,参考此文档解决路径问题。
  • scripts/fetch_review_threads.py
  • scripts/reply_review_thread.py