--- name: codex-review-loop license: MIT description: 実装完了後の PR で Codex 再レビューを依頼し、指摘をクローズする。コメントはユーザー本人名義で投稿する。「Codex レビューを回して」「Codex 指摘を対応して」など、Codex(chatgpt-codex-connector)への再依頼や指摘クローズを依頼されたときに使用する。 --- # Codex 再レビュー依頼 `@codex review` の投稿とスレッドへの返信は、いずれもコメント者がユーザー本人になるようにする。ボットやエージェント名義(例: `cursor`)では投稿しない。セッションですでに認められた投稿・修正の範囲を引き継ぎ、承認を繰り返し求めない。スキルの適用だけでは投稿やマージの許可は増えない。 ## レビューの依頼と追跡 開始時に PR の HEAD SHA、Draft 状態、既存のレビュー・依頼・未解決スレッド、必須 CI を確認する。依頼ごとに対象 HEAD とコメント ID を記録する。 PR 作成時の自動レビューは、設定や実行履歴で確認する。最新 HEAD のレビューが進行中なら待ち、完了済みなら再依頼しない。自動レビューが無効、または実行の証拠がなく依頼もない場合は、認められた範囲で初回の `@codex review` を投稿する。既存依頼があるのに応答がない場合は連投せず、待機の終了条件を適用する。 初回以降は HEAD が変わったあと(指摘対応・CI 修正など理由を問わない)に再依頼する。同じ HEAD への連投はしない。ただし、コード変更なしで指摘を dismiss して resolve した場合は、同じ HEAD でも再依頼してよい。この例外は新しく処理した指摘に対して一度だけ使い、処理したスレッドと再依頼を記録する。 PR コメントは次の一文のみとする。Draft の Ready 化はユーザーから明示的に依頼された場合だけ行う。 ```text @codex review ``` ## 応答と指摘対応 応答は、リポジトリの連携設定・投稿者 ID で確認した正規の Codex アカウント(例: `chatgpt-codex-connector[bot]`)からのものだけを採用する。表示名や本文の一致だけで判断しない。次のいずれかを対象 HEAD の応答として扱う。 - 対象 HEAD のレビューに指摘スレッドが付く。 - 記録した対象 HEAD の `@codex review` コメントに Codex 自身の 👍 が付く。 - 対象 HEAD 向けに指摘なしコメントが付く(例: `Didn't find any major issues`)。 レビューの commit ID、実行履歴、または対象 HEAD を記録した依頼との対応で確認する。投稿日時だけでは最新 HEAD の完了とみなさない。対応を確認できなければ未確認として扱う。👀 のみは未完了。指摘なしコメントが確認できれば 👍 は待たない。 指摘への応答が届いたことと、指摘対応の完了を区別する。指摘は内容を確認して修正・検証し、対応済みの指摘には返信してスレッドを解決済みにする。採用しない指摘は根拠を返信して解決する。HEAD が変われば以前の完了判定を引き継がず、新しい HEAD に再レビューを依頼する。同じ HEAD の例外で再依頼した場合も、その応答を確認する。 ## 待機と終了 ユーザー指定の期限を優先する。指定がなければ、この実行で Codex と CI に費やす累計待機時間を 30 分までとする。依頼の再投稿や HEAD の変更でこの上限をリセットしない。状態確認は数分間隔とし、環境の待機手段で分割して進捗を伝える。レート制限時は指定された再試行時刻に従い、それが期限を超えるなら終了する。 待機期限に達した場合、権限・連携の不足で確認できない場合、または外部サービスの障害で進められない場合は、確認済みの結果と残る条件を報告して終了する。成功とは報告せず、対象 HEAD、最後のレビュー依頼、未完了の CI・スレッド、再開に必要な状態を示す。無応答への連投、期限の無期限延長、自動化の新規作成はしない。修正可能な CI 失敗や競合は、依頼された範囲で対応を続ける。 終了報告の直前に HEAD と PR の状態を再取得し、次を確認する。 - PR に競合がない。マージ可能性が未確定なら確認待ちとする。 - 未解決スレッドがない。 - 現在の PR HEAD に対する必須 CI が完了している(成功、または許容された skip / パス除外による未実行)。pending / queued、および適用されるチェックの未作成は未完了。 - 最新 HEAD に対する Codex 完了がある。対象依頼への 👍・指摘なしコメント・そのレビューで出た指摘のすべて対応および resolve 済みのいずれかを確認する。再依頼が必要な場合は、その応答も確認済みであること。初回自動レビューも同じ基準で確認する。 すべて満たした場合、Draft なら「検証完了・Draft 維持」、Draft でなければ「merge-ready」として報告して止める。Draft であることだけを理由に待機や Ready 化はしない。明示がない限りマージしない。 変更時の振る舞い確認には [評価ケース](evals/evals.json) を使う。GitHub への実投稿を伴わない模擬状態で、終了判断と次の行動を確認する。