Skip to content

cross-refactoring: 中断から再開すると、前のラウンドの未着手の群を飛ばして次のラウンドを開く #792

Description

@takemi-ohama

何を見つけたか

構造改善の収束ループ(cross-refactoring)を途中で止めて、SKILL.md の「実行」の bash をそのまま叩き直して再開すると、止めた時点のラウンドに未着手の群(適用ラウンド)が残っていても、次のラウンドが開く。未着手の群に入っていた採用済みの項目は、適用されないまま状態ファイルに pending として残る。

再現した形(PR #791、テスト整備ラウンド 1):

  1. テスト整備ラウンド 1 が 5 件を採用し、3 つの群へ分けた。群 1(担当 codex)は検証を通り push まで済んだ
  2. 群 2 の担当が結果を残さずに終わり、同じ群が再起動され続けたため(cross-refactoring: 実装担当が停止し続ける項目で適用ラウンドが無限に再試行される #647 の形)、進行を手で止めた
  3. 同じコマンド列で再開した。初期化は「前回中断した状態から再開します(提案ラウンド 1)」と出た
  4. 次の start-roundテスト整備ラウンド 2 を開いた。ラウンド 1 の群 2・3 は開かれなかった

再開後の状態ファイル(cross-refactoring-rf791-state.json)の抜粋:

[{"round":1,"kind":"test","groups":[
   {"apply_round":1,"impl":"codex","status":"verified"},
   {"apply_round":2,"impl":"codex","status":"pending"},
   {"apply_round":3,"impl":"kiro","status":"pending"}]},
 {"round":2,"kind":"test","groups":[
   {"apply_round":1,"impl":"claude","status":"pending"}, ""]}]

ラウンド 1 の群 2・3 に入っていた 3 件(R1-002 / R1-004 / R1-005)は、採用済みとして items に残るため次のラウンドの重複排除で対象外になり、再提案もされない。見送りの一覧にも入らない。

どこで見つけたか

なぜこの変更の範囲外なのか

PR #791 の受け入れ条件は結末の語彙と理由(利用上限・CLI の上限)、起動し直しの可否、プロセスグループの停止に関するもので、ラウンドを開く処理と再開の経路を含まない。

直さないと何が起きるか

途中で止めた収束ループを再開すると、採用済みの項目が黙って落ちる。落ちた項目は見送りにも入らないため、報告からも読めない。#647(担当が結果を残さない群の無限の再試行)は手で止めて再開する回避を前提にしており、その回避のたびにこの形で項目が落ちる。

直す先の候補は 2 つある。

候補 中身
start-round が直前のラウンドの pending の群を見る 残っていれば新しいラウンドを開かず、そのラウンド番号を返して next-apply-round へ戻す
SKILL.md の再開の手順を分ける 群の途中で止めたときは next-apply-round から叩き直すと書く

由来

PR #791(issue #729 の実装。構造改善の工程で確認した)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions