Skip to content

cross-refactoring: 担当を外す引数が無く、外せても使える者が 2 者だとレビュー担当が 1 者になる #664

Description

@takemi-ohama

何を見つけたか

cross-refactoring には、担当から特定のランタイムを外す引数が無い。認証を通るが実行で落ちる担当(agy の打ち切り、利用上限、モデルの 404)が分かっていても、提案・適用・レビューの輪番から外せない。

$ git grep -n '"--exclude"' -- plugins/ndf/skills/cross-refactoring
(出力なし)

initplugins/ndf/skills/cross-refactoring/scripts/refactor_lib/commands/setup.pycmd_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.pycross-reviewcross-refactoring が共有する。

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

D-B の設計は cross-review--exclude を足し、共通層の review_assign だけを使える者の一覧を受け取る形へ変える。cross-refactoringassign()check_auth() の振る舞いは変えない(設計文書 issues/issue-624-478-648-design.md の決定 10)。

著者を含めて回す規則は、収束の判定(著者の APPROVE を数えない)と実装担当・レビュー担当へのプロンプトに及び、並行する設計 D-C(#647 / #592 / #553refactor_lib の適用の骨組み)の範囲と重なる。#478cross-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

  • 要求と受け入れ条件 — 2026-09-19 02:59
  • 作業場所の用意 — 2026-09-19 03:03
  • 設計 — 2026-09-19 03:08
  • 素材の収集と出典の確定
  • ドキュメント再構成 — 2026-09-19 03:17
  • ドキュメントレビュー — 2026-09-19 03:21
  • 計画 — 2026-09-22 09:29
  • 実装 — 2026-09-22 09:31
  • 構造改善 — 2026-09-22 09:50
  • 実装レビュー — 2026-09-22 11:17
  • 完了判定 — 2026-09-22 11:34
  • Pull Request — 2026-09-22 11:39
  • 確定仕様化 — 2026-09-22 11:49
  • 後片付け — 2026-09-22 11:49
  • 配布 — 2026-09-22 14:17
  • 体裁レビュー
  • リリース後テスト — 2026-09-22 15:06
  • 振り返り — 2026-09-22 15:38

閉じた理由

PR #800 で直り、ndf 10.16.0(2026-09-22、main / タグ ndf--v10.16.0、PR #810)で配布した。リリース後テスト(#810 (comment) )でこの課題の受け入れ条件はすべて合格した。

振り返り: #810 (comment)

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

    area: ndf-skillNDF の Skill 本体enhancementNew feature or requestpriority: medium保守性・設計一貫性など、計画的に対応する

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions