GitHubのレビューコメントを確認して適切に対応
<pr-number>: 対象 PR 番号(省略時はカレント branch の PR を ccx pr context が推論)--worktree: 対象 PR の worktree に切替(既存があれば再利用、無ければ作成)--dry-run: 修正案・コメント返信案を報告する。返信・再依頼・決定の書き下ろしは実行せず、修正はユーザーの承認後に行う/loop 10m /review-response のように /loop の下で実行しているときは、最初のステップの前に references/loop.md を読む。
以下の各リストは書かれた順に実行するステップの列で、他の節からはステップ名で参照する。
--worktree 指定時のみ、最初に実行)Skill ツールで worktree-resolution を起動し、その「PR worktree 解決手順」に従って対象 PR の worktree に session を切り替える。
ccx pr context <scratchpadディレクトリ> [<pr-number>] を実行する。返された path がこの実行の唯一のドキュメントで、以降のステップはすべてこれを指す。work_dir / threads_path も返された値だけを使う。取得は1実行1回で、修正を push した後も取り直さない。ドキュメントは jq で必要部分を段階的に参照する。打ち切りが発生したら ccx pr context --help が示す環境変数で上限を引き上げて再実行するworktree-resolution を起動し、その「共通サブ手順: PR head との鮮度確認」を、ドキュメントのパスをコマンド引数にして実行する。--worktree の有無に関わらず実行し、--dry-run でも同期は省略しない。停止条件に該当したら修正・返信を開始しないpending・reviewers・reviews_truncated だけを jq で取り出して読み、pending.threads[] / pending.reviews[] / pending.comments[] がすべて空なら「判断対象なし」を1行報告してこの実行(/loop では当該イテレーション)を終える。判断の記録も行わない。終了報告には ball: "theirs" の一覧(「行コメントスレッドの扱い」)と、下記のレビュアーの立ち位置を添える。件数の判定は pending の3リストだけを出典とし、reviews[] / comments[] を自前のセレクタで数え直さないreviewers[] の各要素を author と state で1行ずつ書き、状態を自分で導出しない。author_type が Bot の要素にはその旨を添え、author が null の要素は (deleted account) と書く。reviews_truncated: true のときは、一覧が取得窓の内側しか表さない旨を併記する。途中停止を含め、実行を閉じるユーザーへの報告すべてに載せる(is_own_pr は条件にしない)reviewers[] を読まずに推測で答え、事実と食い違ったことがある)review_threads[]・reviews[]・comments[] の3種類を必ず読んで突き合わせ、重複と通常コメント上で合意済みの議題を除いた上で指摘を列挙する(規定は「ソース別の扱い」)。出力は「対応対象の指摘」と「反応待ちスレッド」の2グループで、後者は修正要否の判断へ進めず報告する--dry-run)--dry-run のときは通常モードの代わりに、共通手順に続けて references/dry-run.md に従う。判断と案の報告では references/posting.md も読む。
--dry-run なし)run_in_background: true)ccx pr seen <ドキュメント> を実行する。ユーザーへエスカレーションした指摘があっても必ず行う指摘を1件も読む前に、PR が何をしようとしていて何を変えたのかを組み立て直す。
実行条件: 判断対象の有無の確認を通ったすべての実行。--dry-run と /loop の各イテレーションでも省略しない(pr-reading の「ステートレス」)。
手順: Skill ツールで pr-reading を起動し、その手順に従って読む。起動時に名指すのは、container がドキュメントの linked_issues[] と warnings[]、文書がそのドキュメント、差分・コミットの取得元が同じ文書、報告先が下記「報告」。ahead_own(未 push のローカル commit がある状態)でも取得元は文書側 — 指摘が付いているのは push 済みの行なので、手元の差分に読み替えない。comments_truncated: true の上限の上げ方は ccx pr context --help にある。
会話を読む位置: 指摘の本文(reviews[] / review_threads[] / comments[])を読むのは読解の後。唯一の例外は「行コメントスレッドの扱い」の theirs 報告。
報告: pr-reading の「報告」の1文を、判断前の既存の出力(「対応対象の指摘」「反応待ちスレッド」)より前に出す。
行コメントスレッド(review_threads[])は ball で分類する(各値の意味は ccx pr context --help):
ball: "mine": 対応対象。修正要否の判断へ進めるball: "theirs": 「反応待ち」に分類し、修正要否の判断へ進めないball: "none": skip補足:
theirs に分類したスレッドは必ず報告する: path:line と last_comment の要旨を列挙する。通常モードは対応開始前、dry-run は指摘の報告と併せて出す。判断対象の有無の確認で終える実行に限り、読解前に review_threads[].last_comment を読んでよい。該当0件なら何も出さない。「対応済み」と推定しないtheirs のスレッドへの再対応を明示的に指示した場合は返信する(エントリの書き方は references/posting.md の「スレッドへの返信と解決」)。none のスレッドは報告に含めるところまでで、返信・解決はできないレビュー本文(reviews[].body)には、行コメントに存在しない独立した指摘(優先度付きリスト、「テストが不足」等のサマリー指摘)が含まれうる:
pending.reviews[] が挙げないレビュー本文も列挙の対象: ただしそれ自体は実行の理由にならないcomments[] で議論経緯として参照するレビュー本文・通常コメント由来の指摘は、PR 全体へのコメント(ccx pr comment)で対応完了を報告する。
finding-triage を起動し、その規律で検証してから各指摘の修正・修正不要を確定する。同スキルの「検証根拠の記録」が根拠を求める修正は、修正完了報告に検証で確認した参照先を添えるissue(blocking): / suggestion(non-blocking): / nit: 等の Conventional Comments ラベルや優先度表記が付いている場合、スキル独自の分類より優先する。blocking は原則修正、non-blocking / nit は以下の基準で判断(検証の写像: blocking / non-blocking / nit はいずれも finding-triage の「対応が期待される指摘」、質問は対象外)返信には finding-triage の検証で確認した参照先(ファイル・grep 可能な識別子)を含める。非必須(「推奨」等)と記載されたルール、または既存パターンの踏襲を根拠にする見送りは、finding-triage の「一様準拠判定」を通してから確定する。
linked_issues[].body / linked_issues[].comments[].body / parent.body / parent.comments[].body / pr.body / commits[].message / コードコメントのいずれかで、どこに書かれているかを返信に書く。記憶や推測を「意図的な設計です」と述べない