## 何を見つけたか cross-refactoring が、対象を覆う既存のテストがあるのに「範囲テストを組み立てられない(`no_target`)」で提案を見送る。 - 入力: スプリント lfactory3-6 の develop 宛の Pull Request #2534 に対する cross-refactoring。`--scope` はその Pull Request の変更ファイル(43 件) - 観測: 見送った提案 20 件のうち 12 件が `no_target`、8 件が時間(`budget`)。`no_target` の対象は `factory/web/src/pages/`(DelegationsPage・LoopsPage・SprintsPage・LoopDetailPage・ModelCredentialPage・NewSprintPage・SprintDetailPage・TeamPage)と `factory/api/src/github-oidc/app.ts`・`handlers/ingest.ts`・`runs/deps.ts` - 対象を覆う既存のテストは実在する: `factory/web/src/pages/delegations.test.tsx`・`loops.test.tsx`・`sprints.test.tsx`、`factory/api/src/github-oidc/app.test.ts`(2026-11-05 の develop で `ls` して確認) - これらのテストは Pull Request で変わっていないため `--scope` に入らない。項目のテストの対象(`test_targets`)が `--scope` のテストの置き場所の外にあると、`refactor_lib/targets.py` の `valid_targets` が退け、`limited_runs` が `none` を返して `no_target` になる(足すテストだけは suite の `paths` が覆えば置き場所の外でもよい。既存のテストにはこの例外が無い) ## どこで見つけたか - 改修計画のコメント: https://github.com/devbasex/ai-plugins/pull/2534#issuecomment-6648584447 の「見送った提案」 - `plugins/ndf/skills/cross-refactoring/scripts/refactor_lib/targets.py` の `valid_targets`(68〜89 行)と `limited_runs`(224〜255 行) ## なぜこの変更の範囲外なのか #2199 の受け入れ条件は `factory/` の見送った提案 20 件の片付けで、cross-refactoring の選定の規則は含まない。スプリント lfactory3-6 の振り返りで見つけた。根拠: Value 3(利用者へ届いた不具合に当たる。cross-refactoring は配布している Skill で、利用者の実行で提案の 6 割が検証の手前で落ちた)・Value 7(根本原因の場所で直す)(MVV 版 5) #2457 は cross-refactoring の制約を洗い出し、`no_target`(制約の表の 8)を「案出し・選定の制約として残す」に分けている。ここで扱うのは、テストが実在するのに `--scope` に無いという理由だけで退ける場合であり、#2457 の分類とは別に判断が要る。 ## 直さないと何が起きるか - Pull Request の変更ファイルを `--scope` にする使い方では、テストを変えなかった画面・モジュールの提案が毎回 `no_target` で落ちる。#2199 が止めようとした「同じ提案を出し直して見送る」繰り返しが、理由を `budget` から `no_target` に変えて続く - `factory/web/src/pages/` のように 1 つのテストファイルが複数の画面を覆う構成では、提案のほとんどが検証されないまま残る ## 起票者の推定 - 既存のテストも、足すテストと同じく suite の `paths` が覆えば `--scope` の外でも範囲テストに使ってよい(推した出所: `targets.py` の `valid_targets` の docstring の例外の規則、#1814 決定 8) - 見送りの件数の行が「見送り 8(うち時間 8)」と `no_target` の 12 件を数えていない(推した出所: 同じ改修計画のコメントの件数の行と「見送った提案」の表の行数 20 の食い違い) ## 由来 PR #2534
Activity