duck-simplify について
duck-simplifyは、レビュー、設計、デバッグでコードの簡素化を分析するスキルです。複雑さの削減や意味の分岐リスクの検出を支援し、削除、再利用、標準機能を優先しながら、実装の最終判断はユーザーに委ねます。
主な機能
- 01複雑さのホットスポット特定
- 02呼び出し元と設定利用状況の確認
- 03影響の大きい簡素化案を最大3件提示
- 04削除、再利用、標準機能を優先
- 05意味的な重複と分岐リスクの確認
活用シーン
- 01コード案の階層構造の評価
- 02分岐しそうな重複ロジックの発見
- 03新しい抽象化や設定の必要性の検討
- 04再利用と独自実装の比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sprngr/ rubber-duck --skill duck-simplifyインストール後、Claude Code で/duck-simplifyを入力して読み込まれたか確認します。
同梱ファイルreferences/GUARDRAILS.md
詳細
Simplify 🦆。形を小さくして、動作はそのままにします。繰り返しを減らすだけでなく、乖離を防ぎます。
目的
セキュリティ、正確性、明示された要件を損なわずに、最も価値の高い簡素化を見つけます。
哲学上のガードレール(スキル固有)
共有ガードレールは references/GUARDRAILS.md から引き継ぎます。
スキル固有の差分:
- 複雑さの削減に関するガイダンスのみを行います。最終的な実装判断はユーザーに委ねます。
起動条件
レビュー/設計/デバッグのコンテキストで、意味上の重複や乖離のレビューを含む、複雑さを最小限に抑える視点が必要な場合に使用します。
手順
1. スコープを明確にする(不明確な場合)
- コンテキストが不十分な場合は、的を絞った確認質問を1~3件行います
- 根拠が不足している場合は、前提を明示します
必須:
- コード/提案のスコープ
ドライモードで必須:
- 意味上の重複が疑われる候補スコープを2つ以上
任意:
- 制約(期限、可読性の基準、チームの好み)
制約が不明確な場合は、的を絞った確認質問を1件行います。
2. 簡素化の観点でレビューする
- 複雑さのホットスポットを特定します(レイヤー、分岐、設定項目、間接化)。
- 推奨する前に、根拠(呼び出し元、分岐数、設定の使用状況)を確認します。
- 影響の大きい簡素化を最大3件提示します。
- 新しい抽象化より、削除/再利用/標準ライブラリ/ネイティブ機能を優先します。
- DRY モードでは、意味上の重複(構文だけの重複ではないこと)を確認し、
Diverges whenとExtract startを含め、安全性を保てる最小の抽出境界を優先します。 - 簡素化によって信頼境界/アクセシビリティ/明示された要件が損なわれる場合は拒否し、安全な代替案を提案します。
- 可読性を高める小さな繰り返しや、リスクの低いリテラル/定数は指摘しません。
3. 指摘事項を出力する
標準モード:
指摘事項ごとに1行:
<prefix> <path[:line|scope]> — <complexity cost>. Fix: <smaller shape>.
接頭辞:
🪶 yagni:まだ正当化されていない抽象化/設定📚 stdlib:標準ライブラリで置き換えられる独自コード🧱 native:プラットフォーム機能で置き換えられる依存関係/独自レイヤー✂️ shrink:同じ動作をより少ない行数で実現🗑️ delete:置き換えずに削除できる未使用/推測的コード❓ question:意図が不明なため判断できない
最後の行:
totals: <n> findings, <n> questions.
net: -<N> lines possible.
ドライモード(DRY/重複排除/乖離に焦点):
指摘事項ごとに1行:
<prefix> <path[:line|scopeA<->scopeB]> — <duplicated behavior + drift risk>. Diverges when: <future change trigger>. Extract start: <path:line>. Fix: <extraction boundary>.
ドライモードの接頭辞:
🟡 risk:乖離する可能性が高い、意味のある重複🔵 nit:整理する価値のある軽微な重複❓ question:コンテキストが不足しており、抽出方法を決められない
ドライモードの最後の行:
totals: <n> findings, <n> questions.
coverage: semantic-dup=<checked|partial|missing>; extraction-start=<provided|missing>.
範囲外
- セキュリティ/ロールバックの重大度に関する責任は負いません(
duck-risk/duck-review)。 - テスト不足に関する責任は負いません(
duck-triage)。 - 最終的な PR スレッドの書式設定に関する責任は負いません(
duck-review)。