Skip to content

#2047 を実装する(スプリント l20261031-5) - #2307

Merged
takemi-ohama merged 5 commits into
sprint/l20261031-5from
feat/issue-2047-l20261031-5
Oct 31, 2026
Merged

takemi-ohama merged 5 commits into
sprint/l20261031-5from
feat/issue-2047-l20261031-5

Conversation

@takemi-ohama

Copy link
Copy Markdown
Contributor

cross-refactoring で想定最大時間を省いたときは下限まで引き上げるようにし、時間の枠が足りないときは飛ばした結果として返すようにしました。supervise は飛ばしたリファクタリングをコードレビューへ進め、駆動の見込みに合わせてステップの締め切りを延ばします。いずれも #2047(スプリント l20261031-5 のブランチへ集める)の変更です。

利用者向けの変化

  • ndf の cross-refactoring は、想定最大時間を省くと下限の値で動きます。
  • ndf の cross-refactoring は、時間の枠が足りないときに、リファクタリングを飛ばした結果を返します。
  • ndf の supervise は、飛ばしたリファクタリングを止めずにコードレビューへ進めます。
  • ndf の supervise は、駆動の見込みに合わせてステップの締め切りを延ばします。

移行の手順

  • ndf の cross-refactoring: 書き出し済みのプランは自動では書き直しません。古いプランで止まったときは、今と同じく --refactor-budget-minutes を付けてプランを書き直してください。

変更の要点

  • cross-refactoring の想定最大時間と時間の枠
    • drive.py・refactor_lib/commands/setup.py・allocation.py・plan.py・timeline.py を変えました。
    • 想定最大時間を省いたときは下限まで引き上げます。
    • 時間の枠が足りないときは、飛ばした結果を返します。
    • refactor_lib/commands/report.py は、飛ばした結果を報告に載せます。
  • 着手前のテストの見込み
    • refactor_lib/init_test.py を変えました。
    • 確定仕様に合わせ、着手前のテストの見込みを締め切りの式に使います。
  • supervise の変更
    • 飛ばしたリファクタリングをコードレビューへ進めます。
    • 駆動の見込みでステップの締め切りを延ばします。
  • 文書
    • SKILL.md・docs/01-state-and-propose.md・docs/02-plan-and-implement.md を更新しました。
    • 確定仕様と締め切りの式の正本を、次の 3 点に合わせました。
      • 着手前のテストの見込み
      • 想定最大時間の引き上げ
      • ステップの延長
  • script-structure の行数の例外リスト
  • テストの追加
    • tests/test_drive_contract.py(+61 行)
    • tests/test_init.py(+128 行)
  • 規模: 31 ファイル、+610 / −106 行

テスト

supervise.py の run の結果です。

ステップ 結果
base-sync 通過。ベースブランチ sprint/l20261031-5 は進んでいない
format 通過。整形 1 本で、変わったファイルは無い
sync 通過。同期とチェック 5 本
lint-limited 通過。範囲テスト 2 本(8.6 秒)
test-limited 通過。範囲テスト 1 本(638.0 秒)
design-tests 停止(exit 1)
design-specs 通過。変えたパス 27・シンボル 85 を含む既存の確定仕様と変更履歴 60 件と照合

design-tests の停止の内容は次のとおりです。

  • 対象は設計文書 issues/issue-2047-design.md です。
  • 設計に名前の出るテストのうち 1 件が HEAD で見つかっていません。
  • レビューの前に、このテストの扱いを確認する必要があります。

設計と違う点

設計の箇所 違い 理由
issues/issue-2047-design.md の「構成要素」(101 行)の refactor_lib/init_test.py 作らなかった(確かめの機械は「無い」と判定した) テストのファイルでなく、変える側のモジュールを短いパスで書いた行である。実物は plugins/ndf/skills/cross-refactoring/scripts/refactor_lib/init_test.py にあり、この PR で resolve_scope_seconds・settle_window・extend_for_init_test を変えた。テストは plugins/ndf/skills/cross-refactoring/tests/test_init.py にある
issues/issue-2047-design.md の「用語」(83 行)の「範囲テストの所要」と「構成要素」(106 行) 判断できない。実装は構成要素の行に従い、計画のコメントと info の行の呼び名を「着手前のテストの所要の見込み s」に替えた。用語の表は「範囲テストの所要」の意味を変えるだけで新しい語を足しておらず、docs/glossary.md の「範囲テストの所要」は今も「CI に任せる戦略で」に限っている(s は全戦略に効くようになった) 設計の中の 2 か所が食い違っている。どちらの語を残すか(用語集へ「着手前のテストの所要の見込み」を足すか、表示を「範囲テストの所要」に戻して意味を広げるか)は用語の判断で、この突き合わせでは決めない。確定仕様とプランの文書は実装の語で直した

モード: standard / 通した工程: 実装 → 完了判定 → Pull Request

🤖 Generated with Claude Code

takemi-ohama and others added 5 commits October 31, 2026 15:45
- 着手前のテストの初回の上限を、履歴 → 手元の全体テストの直近の実測 → 宣言の所要の順で決める
- 想定最大時間を省いた実行は手順の枠が収まらなければ下限まで上げ、出所を状態と出力に残す
- 明示した想定最大時間に収まらないときと着手前のテストの打ち切りで SKIP を出し、駆動が終了コード 6 で返す
- 上限や想定最大時間を上げたら、ステップの延長のファイルへ見込みの秒を書く

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 検査の雛形の refactor に on_exit の 6 → review を足す(new check / sprint / close の 3 つ)
- drive のステップは試行ごとに延長のファイルの置き場を子へ渡し、書かれた秒に余裕を足して締め切りを後ろへだけずらす
- フェーズレポートに「欠けを残して進んだステップ」の行、検査の記録に findings.refactor_skipped を足す
- cross-refactoring の SKILL.md と docs に、想定最大時間の出所・時間の枠の不足・終了コード 6 を書く

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… drive.py・setup.py)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@takemi-ohama
takemi-ohama marked this pull request as ready for review October 31, 2026 16:28
@takemi-ohama
takemi-ohama merged commit f6ed838 into sprint/l20261031-5 Oct 31, 2026
25 checks passed
@takemi-ohama
takemi-ohama deleted the feat/issue-2047-l20261031-5 branch October 31, 2026 16:42
Sign up for free to 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