## 何を見つけたか 開発ループの承認ゲート 1 で利用者が「直してから出し直す」と答えても、差し戻しの記録(`~/.local/state/ndf/gate-rejections.jsonl`)に 1 行も残らない。振り返りの `gate-rejections.py count` は、差し戻しを 0 件と数える。 実例: 開発ループ lroot2 の周回 1(#2376 の設計 PR https://github.com/devbasex/ai-plugins/pull/2386 )。 | 時刻(JST) | 何が起きたか | 記録 | | --- | --- | --- | | 2026-11-02 午前 | `loop gate` の MVV 判定が「判定できない」で、#2376 は人の判断待ちへ移った | `laps.md` の「人の判断待ち」 | | 同 | 利用者が承認ゲート 1(AskUserQuestion)で「直してから出し直す」を選んだ。conductor が設計を直し、レビューを流し直した | 引継ぎ文書 `.ndf/handoff/loop-lroot2.md` の追記だけ | | 12:27 | 出し直した設計を利用者が承認し、`loop answer lroot2 2376 --approved --pr 2386` を打った | `gate-rejections.jsonl` に `outcome: approved` の 1 行 | `python3 plugins/ndf/scripts/gate-rejections.py count --issue 2376 --pr 2386` は「関門 1 が 0 件」・`recorded: true` を返す。 ## 原因 `sprint-state.py loop answer` は `--approved`・`--rejected`・`--revise --note <指摘ファイル>` の 3 つを受ける(`plugins/ndf/scripts/lib/sprint_loop.py` の `cmd_answer`・`apply_answer`)。 - `--rejected` は課題を「差し戻し」にし、選定の対象に戻さない(`plugins/ndf/scripts/lib/sprint_loop_select.py`)。直して出し直すときには打てない - `--revise`(直して出し直す)は指摘と回数を待ちの行と課題の本文に書き、課題を次の周回の先頭で選ぶ。ただし答えの確定でないとして承認の記録(`sprint-state.py gate`)を呼ばないため、差し戻しの記録(`gate-rejections.jsonl`)に関門 1 の行が書かれない。出し直した後の承認だけが残る ## どこで見つけたか スプリント lroot2-2(#2376)の振り返り。本番の PR https://github.com/devbasex/ai-plugins/pull/2396 ## なぜこの変更の範囲外なのか このスプリントは worker へ工程の Skill を届ける仕組み(#2376)を作った。開発ループの承認ゲートの答えの記録(`sprint_loop.py`)は変えていない ## 直さないと何が起きるか 振り返りの「承認ゲートの差し戻し」が実際より少なく出る。#2183 で「記録し忘れても気づけない」を直したが、ループの経路では答えの種類が足りないため、`recorded: true` のまま 0 件になる。MVV を見直す材料(Value 3 の「測って決める」)と、承認資料の質を測る数が欠ける ## 受け入れ条件 - 開発ループの承認ゲート 1 で「直してから出し直す」と答えたとき、差し戻しの記録に関門 1 の 1 行が残り、課題は人の判断待ちのまま(選定から外さない)出し直せる - `gate-rejections.py count --issue <N>` が、その差し戻しを数える ## 起票者の推定 - 受け入れ条件は起票者(振り返りの AI)の推定で、利用者の指示ではない。答えを 3 つ目の種類にするか、承認の前に差し戻しの行を足す手順にするかは設計で決める - 根拠: Value 3(測って決める)・Value 4(決まった手順はスクリプトに) ## 由来 PR #2396(スプリント lroot2-2 の本番の配布)の振り返り
Activity