Codex 単発相談(ハング防止付き)
Codex への一回限りの相談・調査・診断・修正方針のヒアリングを、codex-watchdog スキルの契約で
ハングを防ぎながら実行する。codex-review-loop と異なり、反復・収束判定・コミットゲートは
持たない(一回相談すれば終わり)。
いつ使うか
- 行き詰まって Codex に一回相談したい、調査・診断を依頼したい場面。
- コミット前のレビュー収束を取りに行く場面は対象外(
codex-review-loop を使う)。
起動可否
特別なゲートはない(呼び出し判断は通常どおり Claude が行う)。ただし codex-watchdog スキルの
使用不可の検知と再試行のとおり、前ラウンドで記憶した「使用不可」の状態が無いか先に確認する。
手順
手順1: 相談内容の整理
依頼を、Codex に渡すタスク指示文としてまとめる。グラウンド済みの事実(実コードで確認した内容)と、
評価・判断を求める論点を分けて書き、何を達成するための相談かを冒頭に明記する。
手順2: 実行モードの決定
既定はread-only(相談・調査・診断が目的で、repo を編集させないため)。ユーザーが明示的に
「Codex に直してもらう/修正を実行してもらう」ことを求めている場合に限り、
codex-watchdog の作法に従って write-capable(--write)で起動する。
手順3: 相談実行(1回)
codex:codex-rescue エージェント(Agent ツール、
subagent_type: "codex:codex-rescue")を、codex-watchdog スキルの契約のとおりに
実行する(同スキルが定める契約全体に従う。一部だけを選んで適用しない)。
タスク指示文には手順1でまとめた内容と、
手順2で決めた read-only/--write の指定を含める。node を Bash で
直接叩かない(層違い)。
合否解釈(codex-watchdog の機械的な判定に、相談固有の解釈を重ねる)
- エージェントの応答に、codex/companion/app-server が起動失敗・完走不能だったことを示す記述
(EPERM・初期化失敗・アクセス拒否等)と、タスク内容への回答(確認結果・分析・助言等)が同時に
含まれる場合(自己代行) → 契約違反として失敗と同様に扱い、応答内容を採用しない(参考にも
しない)。「念のため自分で確認した」等の注記が付いていても、codex 自身が完走していない以上
採用しない(Codex 未完走時の自己代行禁止参照)。この判定は、失敗の症状が EPERM かつ呼び出し側
原因の既知パターンに一致する場合であっても変わらない(自己代行は codex 未完走時にエージェント
自身がタスク回答を代行した独立の契約違反であり、EPERM の原因分類とは別軸のため)。新しい
RUNID を発行して1回だけ再試行する(下記の失敗時と同じ再試行ルールに従う)。
- 上記の自己代行に該当せず、かつ codex が完走した(起動コマンドとエラーのみを報告する失敗報告
ではない)応答を返す → Codex の回答として採用する。
- watchdog 正常終了なのにエージェント応答が来ない場合(ログ走査で
代替する経路) → 抽出できた内容を参考情報としてユーザーへ提示してよいが、「Codex の
正式な回答」として断定しない(ラウンド同一性が保証されないため)。通知取りこぼしが起きた旨も
明示する。
codex-watchdog が失敗と判定した場合(stall/no-start/wall-cap/失敗、エージェントの失敗報告・
早期復帰) → EPERM の場合は、無対策のまま再試行することを禁止する: codex-watchdog の
EPERM は呼び出し側の失敗と推定するの手順どおりジョブログ本文(ジョブ状態ログの書き込み
自体がサンドボックス制限で拒否され参照できない場合はエージェント報告の起動コマンドと生の
エラー出力)と起動コマンドを起動コマンドの既知の不備パターンと照合し、特定した具体的な不備を名指しした禁止文を
再試行のタスク指示文に追加してから、新しい
RUNID を発行して1回だけ再試行する。起動コマンドの既知の不備パターンのいずれにも該当しない未知のパターンの
場合は、その旨を手順4の報告に含めた上で、EPERM 以外の失敗と同じくそのまま新しい RUNID で
1回だけ再試行する。
再試行後に(失敗理由が初回と同じか異なるかを問わず)再び失敗と判定されたら、その時点で再試行を
止め、試みた内容と失敗理由(stall/no-start/wall-cap/失敗のいずれか、拒否されたコマンドが
あればそれも)をユーザーへ平文で報告する(このスキルは反復ループを持たないため、
codex-review-loop のような千日手・複数ラウンドの再試行はしない)。
手順4: 報告(日本語)
Codex の回答の構造(判定・要約・根拠・確認事項の区別)を保ったまま提示する。コミットや修正の
自動適用はしない(相談結果を踏まえてどうするかはユーザー/呼び出し元が判断する)。