何を見つけたか
cross-refactoring には、担当から特定のランタイムを外す引数が無い。認証を通るが実行で落ちる担当(agy の打ち切り、利用上限、モデルの 404)が分かっていても、提案・適用・レビューの輪番から外せない。
$ git grep -n '"--exclude"' -- plugins/ndf/skills/cross-refactoring
(出力なし)
init(plugins/ndf/skills/cross-refactoring/scripts/refactor_lib/commands/setup.py の cmd_init)は、提案・レビューの母集合(review_pool(host) の 3 者)と適用の母集合(impl_pool() の 4 者)の全員の認証を check_auth で確かめ、1 者でも失敗すると中断する。
外す手段を足すだけでは足りない。 assign()(plugins/ndf/scripts/lib/assignment.py)は実装担当を先に決めてから、提案・レビューの母集合から実装担当を除いた者をレビュー担当にする。使える者が 2 者(例: ホスト claude で agy を外し codex / kiro)だと、実装担当が codex か kiro のラウンドではレビュー担当が 1 者になる。
| 実装担当 |
候補(使える者 − 実装担当) |
レビュー担当 |
| claude |
codex / kiro |
2 者 |
| codex |
kiro |
1 者 |
| kiro |
codex |
1 者 |
#478 のコメント(「著者を外すより、観点を 2 つ確保するほうを優先する」)は、使える者が 2 者のときに著者を含めて回し、著者の APPROVE を収束の条件に数えない形を提案している。
どこで見つけたか
マイルストーン 21 の設計 D-B(#624 / #478 / #648)で、cross-review の除外の引数(--exclude)と available_reviewers を設計したとき。assignment.py は cross-review と cross-refactoring が共有する。
なぜこの変更の範囲外なのか
D-B の設計は cross-review に --exclude を足し、共通層の review_assign だけを使える者の一覧を受け取る形へ変える。cross-refactoring の assign() と check_auth() の振る舞いは変えない(設計文書 issues/issue-624-478-648-design.md の決定 10)。
著者を含めて回す規則は、収束の判定(著者の APPROVE を数えない)と実装担当・レビュー担当へのプロンプトに及び、並行する設計 D-C(#647 / #592 / #553、refactor_lib の適用の骨組み)の範囲と重なる。#478 は cross-review の P5 で閉じるため、cross-refactoring の部分をここへ切り出す。
直さないと何が起きるか
由来
issue #478(設計 D-B の決定 10)
実測と方針(2026-09-18 追記)
実測
完了した 6 実行(rf683 / rf717 / rf746 / rf747 / rf749 / rf752)と実行中の rf751 の、CLI の起動 199 回を実行の要約(~/.local/state/ndf/metrics/devbasex--ai-plugins/ )から集計した。
| 工程 |
ランタイム |
回数 |
中央値 |
90 パーセンタイル |
最大 |
| 提案 |
agy |
22 |
5 分 |
9 分 |
9 分 |
| 提案 |
codex |
29 |
3 分 |
5 分 |
7 分 |
| 提案 |
kiro |
29 |
2 分 |
5 分 |
6 分 |
| 適用 |
agy |
19 |
4 分 |
8 分 |
10 分 |
| 適用 |
codex |
20 |
3 分 |
7 分 |
8 分 |
| 適用 |
kiro |
17 |
4 分 |
7 分 |
12 分 |
| 適用 |
claude |
14 |
2 分 |
5 分 |
8 分 |
- 失敗したのは agy だけである。 STALLED が 4 回、NO_RESULT が 3 回で、codex / kiro / claude は全件 OK だった
- STALLED の 4 回は、どれも無進捗の許容(agy は 480 秒)まで待たされ、合計 33 分を失った
- 提案は 3 者を同時に動かして最も遅い者を待つので、提案の所要はほぼ agy で決まる。提案は 1 ラウンドの所要の 33% を占める
方針(利用者の指示)
cross-refactoring の担当から agy を外し、代わりにホストのランタイム(多くは claude)を輪番へ入れる。
| 母集合 |
いま |
変えた後 |
提案(review_pool(host) ) |
全ランタイム − ホスト(codex / agy / kiro) |
codex / kiro / ホスト |
適用(impl_pool() ) |
4 者すべて |
codex / kiro / ホスト |
関連(追記)
進行
モード: standard / 作業ツリー: .worktrees/feat/issue-664-refactor-participants / 計画: issues/issue-664-p7-refactor-participants-plan.md
閉じた理由
PR #800 で直り、ndf 10.16.0(2026-09-22、main / タグ ndf--v10.16.0、PR #810)で配布した。リリース後テスト(#810 (comment) )でこの課題の受け入れ条件はすべて合格した。
振り返り: #810 (comment)
何を見つけたか
cross-refactoringには、担当から特定のランタイムを外す引数が無い。認証を通るが実行で落ちる担当(agy の打ち切り、利用上限、モデルの 404)が分かっていても、提案・適用・レビューの輪番から外せない。init(plugins/ndf/skills/cross-refactoring/scripts/refactor_lib/commands/setup.pyのcmd_init)は、提案・レビューの母集合(review_pool(host)の 3 者)と適用の母集合(impl_pool()の 4 者)の全員の認証をcheck_authで確かめ、1 者でも失敗すると中断する。外す手段を足すだけでは足りない。
assign()(plugins/ndf/scripts/lib/assignment.py)は実装担当を先に決めてから、提案・レビューの母集合から実装担当を除いた者をレビュー担当にする。使える者が 2 者(例: ホスト claude で agy を外し codex / kiro)だと、実装担当が codex か kiro のラウンドではレビュー担当が 1 者になる。#478 のコメント(「著者を外すより、観点を 2 つ確保するほうを優先する」)は、使える者が 2 者のときに著者を含めて回し、著者の
APPROVEを収束の条件に数えない形を提案している。どこで見つけたか
マイルストーン 21 の設計 D-B(#624 / #478 / #648)で、
cross-reviewの除外の引数(--exclude)とavailable_reviewersを設計したとき。assignment.pyはcross-reviewとcross-refactoringが共有する。なぜこの変更の範囲外なのか
D-B の設計は
cross-reviewに--excludeを足し、共通層のreview_assignだけを使える者の一覧を受け取る形へ変える。cross-refactoringのassign()とcheck_auth()の振る舞いは変えない(設計文書issues/issue-624-478-648-design.mdの決定 10)。著者を含めて回す規則は、収束の判定(著者の
APPROVEを数えない)と実装担当・レビュー担当へのプロンプトに及び、並行する設計 D-C(#647 / #592 / #553、refactor_libの適用の骨組み)の範囲と重なる。#478 はcross-reviewの P5 で閉じるため、cross-refactoringの部分をここへ切り出す。直さないと何が起きるか
cross-refactoringから外せない。rf646 で agy が同じ項目で 4 回連続 STALLED になり収束しなかった形(cross-review: レビュワーが 1 者でも欠けると初期化ごと失敗する — 使える者だけで回せるようにする #478 のコメント)を避ける手段が、状態ファイルの手での書き換えしか無いinitごと失敗する(cross-review: レビュワーが 1 者でも欠けると初期化ごと失敗する — 使える者だけで回せるようにする #478 がcross-reviewについて扱った事象と同じ)由来
issue #478(設計 D-B の決定 10)
実測と方針(2026-09-18 追記)
実測
完了した 6 実行(rf683 / rf717 / rf746 / rf747 / rf749 / rf752)と実行中の rf751 の、CLI の起動 199 回を実行の要約(
~/.local/state/ndf/metrics/devbasex--ai-plugins/)から集計した。方針(利用者の指示)
cross-refactoring の担当から agy を外し、代わりにホストのランタイム(多くは claude)を輪番へ入れる。
review_pool(host))impl_pool())--exclude)を足すだけでなく、既定の母集合から agy を外す。agy を戻す手段を残すかは設計で決めるCLAUDE.mdの cross-refactoring の節(「codex / agy / kiro / claude のうちホストを除く 3 者」「参加する 4 者から輪番」)もあわせて直す関連(追記)
進行
モード: standard / 作業ツリー:
.worktrees/feat/issue-664-refactor-participants/ 計画:issues/issue-664-p7-refactor-participants-plan.md閉じた理由
PR #800 で直り、ndf 10.16.0(2026-09-22、
main/ タグndf--v10.16.0、PR #810)で配布した。リリース後テスト(#810 (comment) )でこの課題の受け入れ条件はすべて合格した。振り返り: #810 (comment)