mcpField
H
heyeddi-pr-respond

heyeddi-pr-respond

github.com/heyeddi-com测试与质量077 次安装今天更新
代码仓库

关于 heyeddi-pr-respond

用于处理队友、机器人和 HeyEddi CI 的 Pull Request 审查。它协调 CI 修复、意见分类、代码更改、提交推送及线程回复,并要求合并前获得明确授权。

主要功能

  1. 01获取并整理审查评论
  2. 02优先修复可处理的 CI 失败
  3. 03分类审查项并应用修改
  4. 04回复标记为已修复前先提交并推送
  5. 05发布并验证线程回复
  6. 06未经本轮授权不得合并

适用场景

  1. 01回复 PR 内联审查评论
  2. 02处理审查摘要中的问题
  3. 03排查 PR 工作中的 CI 失败
  4. 04合并前准备修复与回复

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/heyeddi-com/heyeddi-skills --skill heyeddi-pr-respond

安装后在 Claude Code 中输入/heyeddi-pr-respond确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

manifest.json
context/
ANTI_PATTERNS.md
EXAMPLES.md
PROSE_ANTI_SLOP.md
VOCABULARY.md
fixtures/
sample-pr-comments.json
reference/
subagents.md
workflow.md
scripts/
_auto_sync.py
_replies_parse.py
_skill_cli.py
_temp_store.py
_untrusted_doc.py
assert_fixes_pushed.py
assert_no_merge.py
build_comment_inventory.py
discover_and_verify.py
fetch_pr_comments.py
filter_comments.py
post_thread_replies.py
verify_response.py

详细介绍

HeyEddi PR 回复

PR 作者针对所有评审来源的回复——包括人工队友、机器人和 HeyEddi CI(行内评论 + 根级摘要)。

只有一种回复技能。不要将人工评审和 CI 拆分成不同的工作流。

默认行为(无需确认)

处理任何 PR 时,不要询问是否要修复发现的问题、检查 CI 或发布串回复——始终执行这三项操作。

  1. 始终先运行 @heyeddi-ci-fails(获取、诊断并修复可操作的 CI 失败)
  2. 自动修复有效的评审意见
  3. 自动提交并推送
  4. 自动在对应讨论串中发布每条回复
  5. 只有合并需要在当前轮次中获得合并授权

不创建项目临时文件

绝不要写入 .heyeddi/docs/pr-*(跟踪记录、回复、已发布内容、评论)。GitHub 讨论串是唯一可信来源(SSOT)。

数据存放位置
评论缓存系统临时目录(fetch_pr_comments stdout 路径)
清单build_comment_inventory stdout(可选的临时缓存)
跟踪记录仅在聊天中
回复草稿传给 post_thread_replies / verify_response 的 --replies-text
发布日志仅限 post_thread_replies stdout JSON

如果 .heyeddi/docs/ 下存在旧版 pr-* / pr-*-ci-* 文件,请将其删除。

根级评审摘要(HeyEddi CI 等)

评审提交正文通常会列出如下发现的问题:

**Commented on the diff**
1. 🔴 Bug title — `path/to/file.py:185`

必须执行:

  1. 获取后运行 build_comment_inventory——解析根级摘要 + 行内 ID。
  2. 每个可发布条目都要进行修复/拒绝分析;必要时修改代码,并草拟 ## Comment <id> 回复。
  3. 孤立条目仍需在代码中进行修复/拒绝处理,并出现在 ## Summary 中。
  4. 不要在发布一条顶级回复后,就将根级摘要视为已处理完毕。

关键:发布“已修复”回复前,先提交并推送

评审者和 HeyEddi 只能看到远程 HEAD。

  1. 修复清单中标记为 fix/partial 的每个条目
  2. 提交——不要询问
  3. 推送到 PR 分支
  4. 在对应讨论串中发布回复

硬性门槛:assert_fixes_pushed --check(除非使用 --dry-run / --allow-unpushed,否则 post_thread_replies 内部也会执行)。

关键:仅在对应讨论串中回复

  • 使用 gh api …/pulls/<N>/comments/<ID>/replies
  • 不要针对每条发现的问题使用 gh pr comment
  • 不要发送“已确认收到评审附件……”之类的垃圾内容

必须遵循的工作流

@heyeddi-ci-fails first                 → fetch + diagnose + fix CI failures + push
fetch_pr_comments --pr <N>
build_comment_inventory --pr <N> --write-cache
→ tracking table in chat (every item: id, type, fix|decline, status)
for each item: analyze vs PR goals → fix | decline | partial | out-of-scope
apply code/docs fixes when fix
@heyeddi-setup verify_setup --check      → always-on prefs hard gate (before commit/push)
@engineering-excellence check_engineering_plan / audit_engineering --check  → always-on (errors fail)
discover_and_verify [--run]              → evidenced commands only
assert_no_merge --check                  → unless user said authorize merge
→ if any fix: commit + push (automatic — do not ask; honor agent.commit/push)
assert_fixes_pushed --check
→ compose ## Comment <id> for every postable_reply_id + ## Summary last
post_thread_replies --pr <N> --replies-text '...'
verify_response --pr <N> --replies-text '...' --use-inventory --live --check
→ optional one Summary after verify

绝不要在当前轮次未获得合并授权的情况下合并。

HeyEddi CI 误报

在对应讨论串中回复并说明拒绝理由;建议进行讨论,或联系 [email protected]。没有虚假的 FP API。

工具

工具用途
fetch_pr_comments获取行内评论、评审和讨论 → 临时缓存
build_comment_inventory解析根级摘要 + 行内评论;列出所有条目
filter_comments可选参数 --scope heyeddi(默认值为 all)
discover_and_verify查找并验证有依据的测试/构建命令
assert_no_merge合并硬性门槛
assert_fixes_pushed发布“已修复”回复前的提交+推送门槛
post_thread_replies在对应讨论串中发布所有草稿
verify_response如果缺少任何可发布的 ID,则硬性失败

要求

  • 已通过身份验证的 gh CLI

完成任务后:建议接下来运行的技能

完成此技能对应的用户请求后,建议接下来运行以下内容:

python .agents/skills/heyeddi/scripts/suggest_next_skill.py \
  --current-skill heyeddi-pr-respond --project-root .

评论

支持 Markdown