用途:审阅他人 PR 时,把 gate / gate-wf 的检查发现发布为独立的行内评论,每条发现一条评论,按 file:line 定位。没有评审包装器,也没有汇总评论。不在 diff 内的发现(无法行内)发到 PR 会话。该技能从不批准或请求变更,这仍是人工决定。
前置条件:发现来自先前的 gate / gate-wf 运行,优先级为:当前对话中已有的发现,或当前分支的状态文件:~/.claude/gate-state/<repo-slug>/<branch>.json(gate)或 ~/.claude/gate-wf-state/<repo-slug>/<branch>.json(gate-wf)的 .findings[]。两者形状相同:id(B1/M1/N1)、tier(BLOCKER/MAJOR/NIT)、file、line、location(diff-line | adjacent)、message、suggested_fix。还需解析 PR 及其 head 提交:gh pr view <n> --json number,headRefOid,headRepositoryOwner,headRepository,得到 owner/repo 与 headRefOid(每条行内评论所需的 commit_id)。起草必须经过 humanizer 技能,该依赖是强制的,不可选。
循环:按 tier 排序(BLOCKER → MAJOR → NIT)。对每条选中的发现:起草评论,把 message + suggested_fix 转成 1–3 句的审阅者评论,并先经 humanizer 处理,绝不发布原始草稿;NIT 发现正文加前缀 nit:。放置:location 为 diff-line 时,在 file:line 处发布独立行内评论;location 为 adjacent(diff 之外的遗留代码)无法行内(GitHub 只接受 diff 行上的评论),改为引用 file:line 的顶层 PR 会话评论。收集进待发批次,展示一次批次预览(每条评论及其放置位置),仅在单次确认后整批发布。完成条件:每条选中的发现都已作为行内评论(diff-line)或会话评论(adjacent)发布,且摘要报告计数(inline / conversation / skipped-stale)及评论链接。
提交(确认后):逐条独立发布,不使用 review 对象。diff-line 用 gh api repos/{owner}/{repo}/pulls/<n>/comments 并带 commit_id、path、line、body;adjacent 用 gh api repos/{owner}/{repo}/issues/<n>/comments 带 body。
注意:GitHub 只接受 diff 中存在的行上的行内评论;adjacent 发现发到会话,绝不发到 pulls/<n>/comments。该技能从不提交 APPROVE 或 REQUEST_CHANGES,只发评论。file:line 不在 diff 上的发现(过期定位)会被跳过并报告,不予发布。其他细节(安装方式、平台、收费等)暂未提供。