051-design-two-steps-methods について
複雑またはリスクの高い変更を扱うJava開発者向けの対話型スキルです。準備と動作変更を分け、動作を保つリファクタリング後と最終変更後の両方で検証します。
主な機能
- 01意図する動作変更の明確化
- 02対象を絞った準備リファクタリングの選定
- 03準備段階で動作を維持
- 04各段階の後に検証
- 05専門的な実装スキルへの引き継ぎ
活用シーン
- 01リスクの高い動作変更前のリファクタリング
- 02準備作業と機能変更の分離
- 03動作を保つコード変更の検証
- 04専門的なJava実装ガイダンスの調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jabrena/ plinth --skill 051-design-two-steps-methodsインストール後、Claude Code で/051-design-two-steps-methodsを入力して読み込まれたか確認します。
同梱ファイルreferences/051-design-two-steps-methods.md
詳細
2段階変更メソッド
設計の準備と動作の変更を分けることで、複雑またはリスクの高い変更を Java 開発者に案内します。これは対話型の SKILL です。
このスキルで扱う内容
- 編集前に、意図する動作変更を明確にする
- 変更を複雑またはリスクの高いものにしている設計上の障害を特定する
- ステップ 1:変更を容易にする、動作を維持した準備的なリファクタリング
- ステップ 1 で既存の動作が維持されることを検証する
- ステップ 2:設計が変更を支えられる状態になった後で、意図する動作を最小限変更する
- ステップ 2 で意図する動作が実現されることを検証する
- 2段階の順序を維持しながら、Java、フレームワーク、永続化、メッセージング、API、またはテストに特化したスキルへ引き継ぐ
制約
動作を維持する準備と、動作を変更する作業を分け、各ステップの後に検証してください。
- 必須:準備的なリファクタリングを提案する前に、意図する動作変更を明示します
- 必須:ステップ 1 では動作を維持します。広範なリファクタリングと意図する動作変更を混在させないでください
- 必須:ステップ 1 の後、プロジェクトに適したテスト、ビルド、特性テスト、または手動確認を使って既存の動作を検証します
- 必須:設計の準備と検証が完了してから、ステップ 2 を実施します
- 必須:ステップ 2 の後、対象を絞ったテストと関連するビルドチェックで、意図する動作を検証します
- 必須:準備と動作変更を完全に分離できない場合は、前提条件とリスクを記録します
このスキルを使用するタイミング
- 2段階の変更を適用する
- このリスクの高い変更をより安全にする
- 動作を変更する前にリファクタリングする
- 準備と動作変更を分ける
- 変更を容易にしてから、容易になった変更を行う
ワークフロー
- 意図する変更を定義する
references/051-design-two-steps-methods.md を読み、関連するコードとテストを調査して、変更が必要な動作や機能を正確に明示します。現在の設計によって変更が複雑、リスクが高い、または検証しにくくなっている理由を特定します。
- 準備的なリファクタリングを計画する
障害を軽減できる、動作を維持した最小限のリファクタリングを選びます。メソッドやクラスの抽出、名前の明確化、依存関係の分離、テスト用の継ぎ目の追加、責務の移動、型の改善、または動作に触れる前の特性テストの追加などが該当します。
- 変更を容易にする
ステップ 1 では、対象を絞った準備的なリファクタリングのみを適用します。レビュアーが意図した動作変更を含まないことを確認できるよう、コミット、メモ、またはタスクの境界を明確に保ちます。
- 動作が維持されていることを検証する
関連する既存のテスト、ビルドチェック、特性テスト、または手動確認を実行します。動作に予期しない変更があった場合は、先に進む前に準備的な変更を修正するか、元に戻します。
- 容易になった動作変更を行う
設計が変更を支えられる状態になったら、意図する動作変更を最小限の範囲で適用します。実装の詳細な指針が必要な場合は、Java、フレームワーク、永続化、メッセージング、API、またはテストに特化したスキルを使用します。
- 結果を検証して報告する
対象を絞ったテストと関連するプロジェクト検証を使って、意図した動作を検証します。準備として何を行ったか、動作を何から変更したか、各ステップの後に何を検証したか、残っているリスクがあるかを報告します。
参考資料
詳細なガイダンス、例、制約については、references/051-design-two-steps-methods.md を参照してください。