heyeddi-pr-respond について
チームメンバー、ボット、HeyEddi CIからのプルリクエストレビューに対応するスキルです。CI修正、指摘の分類、コード変更、コミット、プッシュ、スレッド返信を進め、マージには明示的な承認を求めます。
主な機能
- 01レビューコメントの取得と一覧化
- 02対応可能なCI失敗を先に修正
- 03指摘を分類して変更を適用
- 04修正済み返信の前にコミットとプッシュ
- 05スレッド返信の投稿と検証
- 06現在の承認なしでのマージを禁止
活用シーン
- 01PRのインラインレビューへの返信
- 02レビュー概要に記載された指摘への対応
- 03PR作業中のCI失敗の診断
- 04マージ前の修正と返信の準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ heyeddi-com/ heyeddi-skills --skill heyeddi-pr-respondインストール後、Claude Code で/heyeddi-pr-respondを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.jsoncontext/ANTI_PATTERNS.mdEXAMPLES.mdPROSE_ANTI_SLOP.mdVOCABULARY.mdfixtures/sample-pr-comments.jsonreference/subagents.mdworkflow.mdscripts/_auto_sync.py_replies_parse.py_skill_cli.py_temp_store.py_untrusted_doc.pyassert_fixes_pushed.pyassert_no_merge.pybuild_comment_inventory.pydiscover_and_verify.pyfetch_pr_comments.pyfilter_comments.pypost_thread_replies.pyverify_response.py詳細
HeyEddi PR 対応
すべてのレビュー元に対するPR作成者の返信 — 人間のチームメイト、ボット、HeyEddi CI(インライン+ルート要約)。
返信スキルは1つだけです。人間向けとCI向けを別のパイプラインに分けないでください。
デフォルトの動作(確認不要)
PR に関する作業では、指摘を修正するか、CI を確認するか、スレッド形式で返信を投稿するかを尋ねないでください。この3つを常にすべて実行してください。
- 必ず最初に
@heyeddi-ci-failsを実行します(取得、診断、対応可能なCI失敗の修正)。 - 有効なレビュー項目を自動で修正します。
- 自動でコミット+プッシュします。
- すべての返信を自動でスレッド内に投稿します。
- マージに限り、現在のターンでマージを承認する必要があります。
プロジェクトのスクラッチファイルは禁止
決して .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`
必須:
- 取得後に
build_comment_inventoryを実行します。ルート要約とインライン ID を解析します。 - 投稿可能な項目すべてについて、修正/辞退の分析、必要に応じたコード変更、
## Comment <id>の返信下書き作成を行います。 - 対応するスレッドのない項目も、コード上で修正/辞退を判断し、
## Summaryに記載します。 - トップレベルの返信を1件投稿しただけで、ルート要約への対応が完了したとみなさないでください。
重要:「修正済み」と返信する前にコミット+プッシュ
レビュアーと HeyEddi が確認できるのはリモートの HEADだけです。
- fix/partial とマークされたすべてのインベントリ項目に対して修正を適用します。
- コミットします — 尋ねないでください。
- PR ブランチにプッシュします。
- スレッド内に返信を投稿します。
必須ゲート: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 が1つでも欠けていればハードフェイル |
必要条件
- 認証済みの
ghCLI
タスク完了時:次に使うスキルを提案
このスキルでユーザーの依頼を完了したら、次に実行するコマンドを提案してください。
python .agents/skills/heyeddi/scripts/suggest_next_skill.py \
--current-skill heyeddi-pr-respond --project-root .