## 何が起きたか 2026-11-01(JST)、開発ループ l20261031 を見張るだけのセッション(周回 5 は別のセッション 2e7a9fee が担当)で、Stop の hook の差し戻し「この応答は AskUserQuestion を呼ばずに、本文で承認・判断を待って終わった」が 6 回出た。 差し戻された応答は、どれも**このセッションの問い**ではなく、次のどちらかだった。 - 別のセッションが出した承認ゲート 2 の問いの状況を報告し、「そのセッションの画面で答えてください」と案内した - 状況の報告の中で「承認」「判断」の語を使った(例: 「承認の問いは出しません」「判断は記録済みです」) 差し戻しの指示(AskUserQuestion で出し直す・区分が無ければ `ask.py decide` で記録して続ける)に従うと、出し直しは 2 つのセッションが同じ承認を記録する事故になり(https://github.com/devbasex/ai-plugins/issues/2316 )、記録は同じ判断の重複になる。このセッションは差し戻しのたびに同じ説明を繰り返すだけで、作業は進まなかった。 ## 原因 `plugins/ndf/scripts/relay_lib/mark.py` の `prose_wait_reason` は、最後の応答の本文を `wait_notice.classify_reply_wait` で分類し、`ANSWER` か `APPROVAL` なら差し戻す。分類は本文の語だけを見るため、次を区別できない。 - このセッションが利用者の答えを待っているのか、別の場所(別のセッション・PR の画面)での答えを案内しているのか - 待ちを宣言しているのか、承認という語を含む報告をしているのか 同じ区間で 2 回目は差し戻さない(`wait-held.json`)が、利用者のメッセージで区間が変わるたびに 1 回ずつ出る。 ## 何をするか - 差し戻しの判定を、本文の語より確かな材料に寄せる。例: 背景の処理を待っている(`background_running`)・このセッションが記録した判断(`ask.py decide`)の後の応答・別のセッションの問いを指す応答は差し戻さない - 判定で差し戻した応答の本文と結果を記録に残し、誤った差し戻しの件数を数えられるようにする ## 受け入れ条件 1. 別のセッションや PR の画面での答えを案内するだけの応答(このセッションは答えを待たない)は差し戻されない 2. 背景の処理の完了を待っているだけの応答は差し戻されない 3. このセッションが本文で利用者の承認を待って終わる応答は、今どおり差し戻される 4. 誤った差し戻しを見分けるための記録(差し戻した応答の要約と判定の材料)が残る ## 関連 - 承認待ちの差し戻しを足した課題: #1492 - conductor どうしの排他: https://github.com/devbasex/ai-plugins/issues/2316
Activity