コード簡略化 は何をしますか?
このスキルを使用して、コードの振る舞いを変えずに、明確さ、一貫性、保守性を向上させます。
スコープ
- 現在のセッションで変更されたファイル、またはユーザーが明示的に指定したファイルに焦点を当てます。
- すべての振る舞い、公開API、出力、データ形式、副作用を保持します。
- 一般的な設定を適用する前に、最も近い
AGENTS.mdと既存のプロジェクトスタイルに従います。 - 変更は限定的に行います。関係のない古いコードをリファクタリングしないでください。
- 巧妙または高度に圧縮されたコードよりも、可読性が高く明示的なコードを優先します。
ワークフロー
- 編集前に現在の差分と周辺のコードを確認します。
- 明確な効果が期待できる簡略化を特定します。
- 不要なネストや分岐を減らす
- 最近の編集で導入された重複を削除する
- 意図を不明瞭にする単一用途の抽象化をインライン化する
- より明確な境界を作成する場合にのみコードを分割する
- 目的を明確にするときに名前を改善する
- 明らかなコードを繰り返すだけのコメントを削除する
- スタイルのみ、リスクがある、または振る舞いを維持することが証明しにくい変更はスキップします。
- 最小限のコヒーレントなパッチを適用します。
- 最も狭い関連する検証コマンドを実行します。共有された振る舞いが変更された場合は検証範囲を広げます。
- 何を変更したか、何を検証したかを報告します。
ガードレール
- 機能、オプション、新しい依存関係、または推測的な柔軟性を追加しないでください。
- ユーザーが依頼しない限り、エラーメッセージ、シリアル化、順序、タイミング、権限、または外部呼び出しを変更しないでください。
- 明確な条件分岐をネストされた三項演算子や密なワンライナーに変換しないでください。
- 行数を減らすためだけに有用な抽象化を削除しないでください。
- 局所的な簡略化で十分な場合に、モジュール全体を書き換えないでください。
- 新しい検証証拠なしに振る舞いが維持されていると主張しないでください。
適切な対象
| シグナル | 有用な簡略化 |
|---|---|
| 最近の編集による繰り返しブロック | 繰り返される意図のみを抽出または統合する |
深い if のネスト | 早期リターンまたはより明確な分岐を使用する |
| 名前が不明瞭な一時変数 | ドメイン上の意味を説明するように名前を変更する |
| 単一用途のラッパー関数 | 隠蔽が役立つよりも害になる場合はインライン化する |
| コードを読み上げるコメント | 削除するか、理由を説明するコメントに置き換える |
停止条件
振る舞いの維持がプロダクトの意図、文書化されていない互換性、または不明確な外部契約に依存する場合は、編集前に停止して質問します。検証を実行できない場合は、何が検証されなかったかを正確に報告します。