最小限のコード規律 は何をしますか?
このスキルを使用して、コード変更の計画と記述に最小限のコード(YAGNIラダー)規律を適用します。差分を小さく保ち、明らかに正しいコードにしつつ、ユーザーの安全を守るチェックを犠牲にしません。
このスキルは ai-slop-cleaner を補完します。ai-slop-cleaner がスロップを後から掃除するのに対し、このスキルはスロップが書かれるのを未然に防ぎます。
使用すべきタイミング
以下の場合にこのスキルを使用します:
- ユーザーが最小限、軽量、YAGNI、または可能な限り小さな差分の実装を求める場合
- 計画や進行中の変更が明示された要求を超えて大きくなっている場合
- スコープクリープ、既存ヘルパーの再発明、または推測による汎用化が発生しやすい新しいコードを書く場合
- 実装前に提案された差分のサイズをレビューする場合
使用すべきでないタイミング
以下の場合にはこのスキルを使用しないでください:
- ユーザーが広範で豊富な機能、または将来に備えたビルドを明示的に要求した場合(ユーザーの明示的なスコープが優先されます)
- タスクが探索的なスキャフォールディングであり、ユーザーが使い捨てと明示している場合
- 最小化の圧力が保護された動作に影響を与える場合(非妥協項目を参照)
規律
存在を最優先。 変更がそもそも存在する必要があるかどうかを問い、推測による将来のニーズにのみ役立つ作業はスキップします。
書く前に再利用。 何か新しいものを書く前に、コードベースで既存のヘルパー、型、またはパターンを検索します。数ファイル先にすでに存在するヘルパーをコピーしてはいけません。再利用するか、共通の場所に抽出します。
依存関係の階層。 最初に標準ライブラリ、次にプラットフォームネイティブの機能、次に既にインストールされている依存関係を利用します。手書きのコードは最後の手段です。数行のコードで十分な場合、新しい依存関係を導入しないでください。ただし、ユーザーが明示的に要求または承認した場合は除きます。
最小化する前に理解する。 影響を受けるコードを読み、その実行経路を追跡します。問題を理解したら、最短で正しい差分を提供します。書かれなかったコードは決して壊れません。
巧妙より退屈を。 巧妙なコードよりも、退屈で明らかに正しいコードを優先します。
限界を明示する。 意図的な簡略化を、受け入れた限界とそれを置き換える正当性を記した短いコメントで記録します。
症状ではなく根本原因を。 バグは、各呼び出し元に個別のパッチを適用するのではなく、全ての呼び出し元に共通する根本原因で修正します。
非妥協項目
以下のものを決して最小化してはなりません:
- 信頼境界を越える場所でのバリデーション
- データ損失を防ぐエラーハンドリング
- セキュリティ制御
- アクセシビリティの基本
- ユーザーが明示的に要求したスコープ
検証
完了を報告する前に、以下を確認します:
- 追加された各行が正当な役割を果たしている(推測による汎用化、重複したヘルパーがない)
- 差分が、問題を正しく解決する最短のものである
- 非妥協項目がそのまま保持されている
- テストがまだ成功し、要求された以外の動作変更がない