## 何を見つけたか supervise が worker の途中の報告の 1 行を語で分けるとき、「止まった」の語が仕事の中身として出ただけでも、conductor 向けの attention「止まった」を出す。 - 判定: `plugins/ndf/scripts/supervise_lib/state.py:29` の `PROGRESS_STOP = re.compile(r"止まった|止まる|進めない|進められない|判断が要る|できなかった|stuck", re.I)` を、`classify_worker`(同 `:166-177`)が途中の報告の全文へ当てる - 実例: スプリント m1953 の #1817 の実装(`~/.local/state/ndf/sv/sprint-m1953/5-impl-1817-state/progress.jsonl` の 6 行目、2026-10-13 01:31:21Z)。worker の報告「stop_tree の待ちの EINVAL/ESRCH を止まったものとみなす実装とテスト 6 件を足した」に対して attention「止まった」が出た。worker は 19 秒後にコミットし、ステップは exit 0 で終わった(`01-impl.out` は「結果: 完了」) #1817 はプロセスが「止まった」ことを扱う課題で、この語は作業の中身に普通に出る。課題の題材によって誤った attention が conductor を起こす。 ## どこで見つけたか スプリント m1953 のリリース後テストの worker が報告し、振り返りで記録を見て誤検知を確かめた。 ## 直す候補 - worker に、止まったときは決まった印(例: 行頭の `止まった:` か `判断が要る:`)で書かせ、語の部分一致をやめる - 少なくとも「〜とみなす」「〜ものとして扱う」のように中身を説明する文を外す ## 受け入れ条件 - [ ] 1. 「EINVAL を止まったものとみなす実装を足した」のような作業の中身の報告で attention が出ない - [ ] 2. 本当に止まった worker の報告(判断が要る・進めない)では今までどおり attention が出る - [ ] 3. 1・2 のテストがある ## 直す場所 - 現象レイヤー: `plugins/ndf/scripts/supervise_lib/state.py:166-177` の `classify_worker` が出す attention - 修正レイヤー: `plugins/ndf/scripts/supervise_lib/prompts.py:84-89` の `PROGRESS_PROMPT`(worker が書く途中の報告の 1 行の形)。今の形は `{"kind": "worker", "at": ..., "text": "<1 行の要約>"}` だけで、止まった・関門は `text` に書くよう指示しており、状態を区別する欄が無い - 修正方針: 向きの修正。語の正規表現を狭めるのでなく、途中の報告の 1 行に状態の欄(例: `"state": "止まった"` / `"関門"` / `"判断が要る"`)を足し、`classify_worker` はその欄で分ける。語の一致は欄の無い行の補助に限る(「直す候補」の 1 つ目を採る形) ## 関連 - 由来: PR #1971(#1817 の実装)、PR #1975(リリース後テスト)
Activity