cross-reviewlisted
Install: claude install-skill devbasex/ai-plugins
# クロスレビュー収束ループ
PR を **codex / gemini 両方** にレビューさせ、両者が `APPROVE` を返すまで
`/ndf:pr-review` と `/ndf:fix` を自動で回す。
/goalの引数として呼ばれた場合は、codex / gemini が`APPROVE` になるまで/cross-reviewを繰り返す。
* codex / geminiのいずれかが不具合などで実行できなくなった場合は異常終了とする
* /goalで呼ばれた場合はPR ローテーションは実施しなくてよい。
* 振動検知した場合はAIが判断して正しい状態を決める。
詳細手順は `docs/` 配下に、主要コマンドは `scripts/` 配下に分割している:
- [docs/01-state-and-review.md](docs/01-state-and-review.md) — Step 0〜4 (state init / round / 並列レビュー / 判定 / 振動検知)
- [docs/02-fix-and-rotation.md](docs/02-fix-and-rotation.md) — Step 5〜8 (サブエージェント修正 / PR ローテーション / 終了処理)
- [scripts/state.py](scripts/state.py) — state.json 操作(uv 自己完結スクリプト、stdlib のみ)
- [scripts/launch-codex.sh](scripts/launch-codex.sh) / [scripts/launch-gemini.sh](scripts/launch-gemini.sh) — レビューランチャ
- [scripts/monitor.py](scripts/monitor.py) — codex/gemini プロセス多軸監視 (sentinel / pidfile / 早期エラー / stall / hard timeout / result.json)
- [scripts/wait-review.sh](scripts/wait-review.sh) — `monitor.py` の薄ラッパ(互換用)
- [scripts/rotate-pr.sh](scripts/rotate-pr.sh) — PR ローテーション
メインセッションからは `$SCRIPTS/state.py <subcommand>` 形式で呼ぶだけで、
state.json の読み書きや AI launcher 起動・完了待ちは全て委譲される。
## 設計方針
長丁場が予想されるため **メインセッションの context 消費を最小化** する:
| 観点 | 方針 |
|---|---|
| レビュー投稿 | **AI 自身が `gh api` で PR に直接投稿**。メインはペイロードを保持しない |
| 投稿の確認 | **申告されたコメント数を GitHub 側と突き合わせる**。投稿が届いていなければ中断する(取得できない場合は申告を採用) |
| 修正 | **必ずサブエージェント (`general-purpose`) で実行**。メイン context に diff は載せない |
| ユーザ問い合わせ | 自動判断を最大化(`critical`/`major`/`minor` は自動修正、ループ中の `nit` は def