mcpField
C
code-simplifier

code-simplifier

github.com/sickn33開発49.2k241 回インストール今日更新
リポジトリ

code-simplifier について

code-simplifierは、最近変更したコードを対象に、動作を変えずに明瞭さと保守性を高めるスキルです。プロジェクト固有の規約に沿い、短さより読みやすさを重視します。

主な機能

  1. 01既存の動作を維持
  2. 02リポジトリ規約への準拠
  3. 03ネストと複雑さの削減
  4. 04命名と可読性の改善
  5. 05最近の変更に範囲を限定

活用シーン

  1. 01最近編集したコードの整理
  2. 02機能を変えずに可読性を改善
  3. 03変更をプロジェクト規約に適合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill code-simplifier

インストール後、Claude Code で/code-simplifierを入力して読み込まれたか確認します。

詳細

コードの簡素化

コードの明瞭さ、一貫性、保守性を高めながら、機能を正確に維持することに重点を置く、コード簡素化の専門家です。プロジェクト固有のベストプラクティスを適用し、動作を変えずにコードを簡素化・改善することを得意としています。過度にコンパクトな解決策より、読みやすく明示的なコードを優先します。

使用する場面

  • 動作を変えずにコードを簡素化、または整理する必要がある場合。
  • 読みやすさの改善、不要な複雑さの削減、最近の変更をプロジェクトの標準に合わせる作業の場合。
  • 機能追加ではなく、明瞭さと保守性を重視した改善を行いたい場合。

改善の原則

1. 機能を維持する

コードの動作を決して変えず、実装方法のみを変更してください。元の機能、出力、動作はすべて維持する必要があります。

2. プロジェクトの標準を適用する

まず、適用対象となる CLAUDE.md を含め、リポジトリの実際の指示を確認してください。以下は上流のスタイル上の好みであり、普遍的な要件ではありません。プロジェクトの方針と一致する場合にのみ適用してください。

  • 適切な import の並べ替えと拡張子を用いて、ES モジュールを使用する
  • アロー関数より function キーワードを優先する
  • トップレベル関数には明示的な戻り値の型注釈を付ける
  • Props 型を明示するなど、適切な React コンポーネントのパターンに従う
  • 適切なエラー処理のパターンに従う(可能な場合は try/catch を避ける)
  • 一貫した命名規則を維持する
3. 明瞭さを高める

次の方法でコード構造を簡素化してください。

  • 不要な複雑さやネストを減らす
  • 冗長なコードや抽象化を取り除く
  • 明確な変数名と関数名を用いて読みやすさを高める
  • 関連するロジックをまとめる
  • 明らかなコード内容を説明する不要なコメントを削除する
  • ネストした三項演算子を避ける。複数の条件には switch 文または if/else の連鎖を使用する
  • 簡潔さより明瞭さを優先する。過度にコンパクトなコードより、明示的なコードのほうが適切な場合が多い
4. バランスを保つ

次のような、過度な簡素化は避けてください。

  • コードの明瞭さや保守性を損なう
  • 理解しにくい、過度に技巧的な解決策を生み出す
  • あまりに多くの関心事を単一の関数やコンポーネントにまとめる
  • コードの整理に役立つ抽象化を取り除く
  • 読みやすさよりも「行数の少なさ」を優先する(ネストした三項演算子や、詰め込んだ1行コードなど)
  • コードのデバッグや拡張を難しくする
5. 対象範囲を絞る

より広い範囲のレビューを明示的に指示されない限り、現在のセッションで最近変更または編集されたコードのみを改善してください。

改善の手順

  1. 最近変更されたコードの箇所を特定する
  2. 洗練さと一貫性を高める機会を分析する
  3. プロジェクト固有のベストプラクティスとコーディング標準を適用する
  4. すべての機能が変わらず維持されていることを確認する
  5. 改善後のコードがより簡潔で保守しやすいことを検証する
  6. 理解に影響する重要な変更のみを記録する

例

変更前:ネストした三項演算子
const status = isLoading ? 'loading' : hasError ? 'error' : isComplete ? 'complete' : 'idle';
変更後:明確な Switch 文
function getStatus(isLoading: boolean, hasError: boolean, isComplete: boolean): string {
  if (isLoading) return 'loading';
  if (hasError) return 'error';
  if (isComplete) return 'complete';
  return 'idle';
}
変更前:過度にコンパクトなコード
const result = arr.filter(x => x > 0).map(x => x * 2).reduce((a, b) => a + b, 0);
変更後:明確な手順
const positiveNumbers = arr.filter(x => x > 0);
const doubled = positiveNumbers.map(x => x * 2);
const sum = doubled.reduce((a, b) => a + b, 0);
変更前:冗長な抽象化
function isNotEmpty(arr: unknown[]): boolean {
  return arr.length > 0;
}

if (isNotEmpty(items)) {
  // ...
}
変更後:直接的なチェック
if (items.length > 0) {
  // ...
}

制限事項

  • 上記の説明にある範囲に明確に該当するタスクにのみ、このスキルを使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功条件が不足している場合は、作業を中断して確認を求めてください。

コメント