Skip to content

cross-refactoring: CI に任せる戦略の最終ゲートで、CI で落ちた範囲外のテストを修正の CLI が再現できない #1657

Closed as not planned

Description

@takemi-ohama

何を見つけたか

CI に任せる戦略(whole_on_ci)の最終ゲートで継続的統合が落ちたとき、修正の CLI(final-fix)へ渡る内容は、CI の JUnit を読めたかどうかで変わる。

テストのコマンド($RF_BASELINE_TEST)は範囲テストと静的解析だけである。JUnit を読めないとき、範囲の外で落ちたテストを修正の CLI は再現できない。また final-fix.md の手順 1 は、依頼に走らせ直しのコマンドがあっても $RF_BASELINE_TEST から読ませる。

どこで見つけたか

  • plugins/ndf/skills/cross-refactoring/SKILL.md 200(最終ゲートの「CI に任せる戦略・--ci-check なら継続的統合を待つ」)、292
  • plugins/ndf/skills/cross-refactoring/scripts/refactor_lib/baseline.py:56 (whole_on_ci のとき範囲テスト + ts.LINT だけ)、113(baseline_test.command にその連結を書く)
  • plugins/ndf/skills/cross-refactoring/scripts/launch-cli.sh:45 (BASELINE_TEST を .baseline_test.command から読む)、141(final-fix の ITEMS_JSON は [])、217-219(RF_FINAL_FIX_REQUEST は .final_gate.fix_request から。空なら「(無し)」)
  • plugins/ndf/skills/cross-refactoring/prompts/final-fix.md:16,24,32,37 (修正の CLI は $RF_BASELINE_TEST だけを走らせて読む。手順 1・4 は依頼に走らせ直しのコマンドがあっても $RF_BASELINE_TEST)
  • plugins/ndf/skills/cross-refactoring/scripts/refactor_lib/prepush_lint.py の fix_request(90 行〜。CI が落ちて triage が空なら空文字を返す)、commands/gate.py:252 (ci_xmls で見分ける)、gate_ci.py:36-77 (CI の成果物から JUnit を取る)

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

スプリント m725(#725・#1289・#842・#824)の受け入れ条件に含まれない。 CI の結果(チェック名・ログ・落ちたテストの ID)を取得して修正の CLI へ渡す形は新しく設計する必要があり、即時修正の 4 条件のうち「既存の方針の範囲」を満たさない。根拠: Value 4(待ち・集計・起動の組み立てのような判断の要らない手順はスクリプトが進める。CI の結果を集めて渡すのはスクリプトの役目)。

直さないと何が起きるか

JUnit の成果物を出さない CI のリポジトリで CI に任せる戦略を使うと、範囲の外へ波及した失敗を修正の CLI が直せず、締め切りまで空回りした末に危険フラグの項目が取り消される。直せたはずの改善が捨てられ、時間も消費する。

受け入れ条件(案)

  • CI に任せる戦略の最終ゲートで JUnit を読めないときも、落ちたチェックの名前とログの場所が修正の CLI への依頼(RF_FINAL_FIX_REQUEST)に載る
  • 依頼に走らせ直しのコマンドがあれば、final-fix.md の手順がそれを $RF_BASELINE_TEST より先に走らせる

由来

issue #725(スプリント m725。cross-refactoring の SKILL.md の点検、2026-10-03 利用者の依頼)

Activity

  1. takemi-ohama commented on Nov 3, 2026

    @takemi-ohama
    ContributorAuthor

    #2457 へ統合した(2026-11-03、利用者の指示)。根本原因は「テストが落ちたら取り消す」設計で、#2457 の原則 2・3(取り消さずに問題を解消させる・選定した項目はやり通す)で扱う。行き先は #2457 の「統合した Issue」の表にある。

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 本体bugSomething isn't workingpriority: medium保守性・設計一貫性など、計画的に対応する

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions