## 何が起きたか(2026-11-03〜04、#2436) - PR https://github.com/devbasex/ai-plugins/pull/2452 の cross-review が、`queue --resume` の再開ごとに数え直して通算 12 ラウンドになった(最大は 4 ラウンド × 再開 3 回)。費用は claude 約 $4.9、codex 入力約 1,700 万 token - 見送った同じ major が、ラウンドごとに出直した(例: `sprint_loop_gate2.py:166` は round 10〜12 で 3 回。後に https://github.com/devbasex/ai-plugins/issues/2466 へ起票)。`残 deferred` 18 件の多くは同じ指摘の重複 - 12 ラウンド目は claude=APPROVE (0)・codex=REQUEST_CHANGES (0) で、指摘 0 件なのに `max_rounds` で終わり、プランが止まった - PR https://github.com/devbasex/ai-plugins/pull/2463 は 1 ラウンド目が両者 APPROVE・指摘 0 件。テストの直しと develop の取り込みを見せるために 2〜4 ラウンドを足した 利用者の指摘: 「なんか役に立たないことやってない?」 ## 直すこと(案) 1. 前のラウンドで見送った指摘と同じもの(パスと要旨が一致)が出直したら、修正の対象にせず数えない。2 回出たら out-of-scope の起票へ回し、以後のラウンドの入力から外す 2. 両者の指摘が 0 件のラウンドは、判定の文字(REQUEST_CHANGES)にかかわらず収束として扱う 3. 収束した後に足したコミットがテストと CI だけで確かめられる種類(テスト・取り込み・行数の調整)なら、ラウンドを足さない 4. `--resume` での再開は、前の実行のラウンド数を上限に含める(数え直さない) 5. **MVV の Value 10 の上限を数値にする。** `.ndf/review.json` に PR ごとの上限(費用・秒・ラウンド)を置き、cross-review(drive.py)は再開をまたいだ合計で止める。超えた分の指摘は自動で起票する。上限の既定は過去の実測から決める(Value 3) 6. **流し直しに Value 4 を当てる。** `supervise.py queue --resume` は、同じプランの同じステップが 2 回止まったら流さず、「手当て 2 回目」として課題を起こす案内を返す ## 受け入れ条件 1. 見送った指摘が出直しても、ラウンドが増えず、起票された Issue の URL が報告に載る 2. 指摘 0 件のラウンドで `final` が `converged` になり、プランが止まらない 3. 再開をまたいでも、ラウンドの合計が `--max-rounds` を越えない 4. `.ndf/review.json` の上限(費用・秒・ラウンド)のどれかに当たると cross-review が止まり、残りの指摘の Issue の URL が報告に載る 5. 同じステップが 2 回止まったプランを `--resume` すると、流さずに終了コードと案内で止まる ## 原因の見立て(MVV 以前の問題) MVV(`.ndf/mvv.md`)の Value 10・1・4 は、今回の無駄を止める基準をすでに持つ。止まらなかったのは、(1) 上限が数値として設定に無い、(2) MVV の判定(`mvv-gate.py`)が承認ゲートでしか動かず、「もう 1 回回すか」「流し直すか」では誰も照らさない、(3) 費用は `report.md` に記録されるが上限と比べる手順が無い、の 3 つによる。MVV の文は変えない
Activity