Skip to content

Fix: 抽出系の手法で差分予算を超える不具合を直す(v8.5.4)と引継ぎメモの更新 - #135

Merged
takemi-ohama merged 2 commits into
mainfrom
docs/cross-refactoring-handoff-update
Aug 22, 2026
Merged

Fix: 抽出系の手法で差分予算を超える不具合を直す(v8.5.4)と引継ぎメモの更新#135
takemi-ohama merged 2 commits into
mainfrom
docs/cross-refactoring-handoff-update

Conversation

@takemi-ohama

@takemi-ohamatakemi-ohama commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

何のために

引継ぎメモが v8.2.0 の着手時点で止まっており、その後 3 回の実機試行と 3 版の修正が
入っている。次に触る人が現状から始められるようにする。

あわせて、メモに残っていた「運用上の傾向」のうち実機実行なしで直せるものを直す。
不具合 20 件はすべて対応済みだが、繰り返し現れていた 2 つの事象は仕様側で扱える。

何を

1. 引継ぎメモの更新

issues/issue-113-cross-refactoring-fix-handoff.md を現状に合わせて書き直した。

内容
経緯5 回の実機試行の記録と到達点を表で示す
編集対象prompts/tests/ を追加
直近 4 版で入った仕組みv8.5.1 / v8.5.2 / v8.5.3 / v8.5.4 の押さえどころ。判定済みの照合鍵に外部要因を入れる必要も含む
再検証の手順--sync-command--max-outer-rounds を含む形へ更新。着手前テストは 500 件
実行前に確認することプラグインキャッシュの版、CLI のログイン、作業ディレクトリのブランチ、範囲の指定
検証済みの範囲レビューフェーズと修正フェーズまで到達した内容
未検証の範囲提案の収束、修正ラウンドの上限、Step 7 の関門、Draft 解除、他者の Pull Request
運用上の傾向差分予算の超過、kiro の既定モデル、1 回の実行内の比較の限界

2. 抽出系の手法で差分予算を超える不具合の修正(v8.5.4)

新しい定義を作って呼び出し側を書き換える手法は、抽出した本体に加えて
呼び出し側の書き換え・import の追加・引数の受け渡しが固定費として乗る。
提案の時点ではこの固定費が見えにくく、見積は本体の行数へ寄る。

実測で予算超過として落ちた 4 件は、いずれも long_method の抽出だった。

試行実差分見積倍率
4 回目265 行120 行2.21
4 回目183 行90 行2.03
5 回目277 行120 行2.31
5 回目113 行50 行2.26

範囲の逸脱ではなく、倍率 2 の予算をわずかに超えただけである。適用そのものは
成立していたのに、ラウンドの成果を捨てていた。

倍率手法
3extract_method / extract_strategy / introduce_parameter_object / introduce_value_object / split_into_pipeline / move_responsibility / consolidate_duplication
2上記以外

広げるのは抽出系だけにした。全体を広げると範囲外を触った変更まで通ってしまう。
範囲外の 3 系統を触った実測例は見積の 4 倍まで膨らんでいたので、抽出系を 3 にしても
逸脱は取り逃がさない。倍率だけ広げると見積が楽観側へ倒れたぶんも通すため、提案
プロンプトの見積の指示に、固定費と test_gap が真のときの現状固定テストを数える
ことを明記した。

失敗理由の文面にも倍率を出す(実差分 277 行が差分予算 240 行(見積 120 行 × 2)を 超えました)。手法によって倍率が変わるため、どちらで落ちたかを読めるようにする。

3. 既定モデルで比較できないことを着手前に知らせる

kiro の既定 auto は実際に動いたモデルを取得できず、そのラウンドは集計から分離
される。判定(models.is_measurable)は既にあるが効くのは報告の時点で、比較の
ために回した実行が丸ごと無駄になってから分かる。init が着手前に警告する。
進行は止めない(比較が目的でない実行もある)。

⚠ kiro のモデルが default です — 実際に動いたモデルを取得できないため、
そのラウンドは集計から分離されます。比較するなら --model kiro=<モデル名> を指定してください

4. 他者の Pull Request の経路を現状固定テストで固める

5 回の実機試行はすべて自分の Pull Request を対象にしており、投稿の event を
COMMENT へ倒さない経路は一度も通っていない。実機は次の再検証に譲るとして、
指示の組み立て(_review_post_note)からレビュープロンプトへの差し込み
launch-cli.sh)まで
をテストで固めた。CLI は stub に差し替えて起動する。

Test plan

uv run --with pytest python -m pytest \
plugins/ndf-shared/skills/cross-refactoring/tests \
plugins/ndf-shared/skills/cross-review/tests -q
  • 着手前 477 passed → 変更後 500 passed(追加 23 件 / 25.8 秒)
  • 追加したテスト
    • 差分予算 16 件(抽出系 7 手法が 3 倍まで通る / 3 倍超は落ちる / 抽出系以外は 2 倍のまま / 実測の 4 件が通る / 見積の 4 倍は落ちる / 倍率が語彙の中に収まる / 失敗理由に倍率が出る)
    • kiro の既定モデルの警告 3 件(既定 / auto を明示 / 指定ありでは警告しない)
    • レビュープロンプトへの投稿指示 4 件(他者 PR / 自分の PR / 置換漏れが無い / 指示が無い状態ファイルでも既定文が入る)
  • 生成物・検査
    • bash scripts/build-runtime-plugins.sh --check — up to date
    • bash scripts/validate-runtime-plugins.sh — passed
    • python3 scripts/check-markdown-links.py — valid
    • python3 scripts/check-skill-frontmatter.py — エラー 0 / 警告 0

未対応

「未検証の範囲」の残り 4 つ(提案の収束、修正ラウンドの上限、Step 7 の関門、
Draft の解除)は実機実行でしか到達できないため、このプルリクエストには含めない。

takemi-ohamaand others added 2 commits August 22, 2026 02:32
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
新しい定義を作って呼び出し側を書き換える手法は、抽出した本体に加えて
呼び出し側の書き換え・import の追加・引数の受け渡しが固定費として乗る。
提案の時点ではこの固定費が見えにくく、見積は本体の行数へ寄る。
実測で予算超過として落ちた 4 件はいずれも long_method の抽出で、見積の
2.03〜2.31 倍に収まっていた(4 回目: 265/120 行・183/90 行、5 回目:
277/120 行・113/50 行)。範囲の逸脱ではなく、倍率 2 の予算をわずかに
超えただけで、成立していた適用の成果を捨てていた。
抽出系の 7 手法だけ差分予算の倍率を 3 にする。全体を広げると範囲外を
触った変更まで通ってしまう。範囲外の 3 系統を触った実測例は見積の 4 倍
まで膨らんでいたので、抽出系を 3 にしても逸脱は取り逃がさない。倍率だけ
広げると見積が楽観側へ倒れたぶんも通すため、提案プロンプトの見積の指示に
固定費と test_gap が真のときの現状固定テストを数えることを明記した。
あわせて kiro の既定 auto を init が検知して警告する。実際に動いたモデル
を取得できずそのラウンドは集計から分離されるが、報告まで分からないと
比較のために回した実行が丸ごと無駄になる。進行は止めない。
他者の Pull Request で投稿の event を倒さない経路は実機で未確認のため、
指示の組み立てからレビュープロンプトへの差し込みまでを現状固定テストで
固めた(launch-cli.sh は CLI を stub にして起動する)。
テスト: 500 passed(追加 23 件)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016SmrN9zw4axS1nRKCYqjNa
@takemi-ohamatakemi-ohama changed the title Docs: cross-refactoring の引継ぎメモを v8.5.3 時点へ更新Fix: 抽出系の手法で差分予算を超える不具合を直す(v8.5.4)と引継ぎメモの更新Aug 22, 2026

@takemi-ohamatakemi-ohama left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | codex | APPROVE

修正必須の指摘はありません。対象テスト 144 件を確認し、差分予算・kiro 既定モデル警告・レビュー投稿指示の変更範囲に矛盾は見つかりませんでした。

@takemi-ohamatakemi-ohama left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 cross-review | round 1 | gemini | APPROVE

確認しました。特に修正提案はありません。

@takemi-ohama
takemi-ohama merged commit bd059ae into mainAug 22, 2026
7 checks passed
@takemi-ohama
takemi-ohama deleted the docs/cross-refactoring-handoff-update branch August 22, 2026 07:01
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@takemi-ohama