code-simplifier について
AI エージェントや LLM 向けのコード簡素化ガイドです。プロジェクトの規約を把握し、動作を保ち、変更範囲を絞ることを重視し、影響度別のルールと例をまとめています。
主な機能
- 018 分野の簡素化ルール
- 02影響度順に並んだルール
- 03出力、エラー、副作用の保持を重視
- 04変更範囲の限定と小さな差分を推奨
- 05制御フロー、命名、言語イディオムの指針
活用シーン
- 01最近変更したコードの整理
- 02ネスト、複雑さ、重複の削減
- 03命名と読みやすさの改善
- 04保守性の観点からコードをレビュー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill code-simplifierインストール後、Claude Code で/code-simplifierを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mdbehave-no-semantics-change.mdbehave-preserve-api.mdbehave-preserve-errors.mdbehave-preserve-outputs.mdbehave-preserve-side-effects.mdbehave-verify-before-commit.mdctx-detect-lint-config.mdctx-follow-existing-patterns.mdctx-project-over-generic.mdctx-read-claude-md.mddead-delete-not-comment.mddead-keep-why-comments.mddead-remove-obvious-comments.mddead-remove-todo-fixme.mddead-remove-unused.mddup-avoid-over-abstraction.mddup-data-driven.mddup-extract-for-clarity.mddup-no-single-use-helpers.mddup-rule-of-three.mdflow-boolean-simplification.mdflow-early-return.mdflow-explicit-over-dense.mdflow-flatten-nesting.mdflow-guard-clauses.md詳細
コミュニティによるコード簡素化のベストプラクティス
AI エージェントと LLM 向けの包括的なコード簡素化ガイドです。8 つのカテゴリにわたる 47 のルールを含み、コンテキストの把握や動作の維持といった重要度の高い項目から、言語固有のイディオムといった段階的な項目まで、影響度順に優先順位を付けています。各ルールには詳細な説明、誤った実装と正しい実装を比較する実例、具体的な影響指標が含まれています。
基本原則
- まずコンテキストを把握する:変更を加える前に、プロジェクトの規約を理解します
- 動作を維持する:コードの書き方を変えても、コードの動作は変えません
- スコープを厳守する:最近変更されたコードに注力し、差分を小さく保ちます
- 簡潔さより明確さを優先する:気の利いた一行コードより、明示的で読みやすいコードを優先します
適用するタイミング
次のような場合に、これらのガイドラインを参照してください:
- 最近変更されたコードを簡素化または整理するとき
- ネスト、複雑さ、重複を減らすとき
- 命名と読みやすさを改善するとき
- 言語固有の慣用パターンを適用するとき
- 保守性に関する問題についてコードをレビューするとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス | ルール数 |
|---|---|---|---|---|
| 1 | コンテキストの把握 | 重大 | ctx- | 4 |
| 2 | 動作の維持 | 重大 | behave- | 6 |
| 3 | スコープ管理 | 高 | scope- | 5 |
| 4 | 制御フローの簡素化 | 高 | flow- | 9 |
| 5 | 命名と明確さ | 中〜高 | name- | 6 |
| 6 | 重複の削減 | 中 | dup- | 5 |
| 7 | デッドコードの削除 | 中 | dead- | 5 |
| 8 | 言語固有のイディオム | 低〜中 | idiom- | 7 |
クイックリファレンス
1. コンテキストの把握(重大)
ctx-read-claude-md- 簡素化する前に、必ず CLAUDE.md を読みますctx-detect-lint-config- lint とフォーマットの設定を確認しますctx-follow-existing-patterns- ファイルとプロジェクト内の既存のコードスタイルに合わせますctx-project-over-generic- 一般的なベストプラクティスよりも、プロジェクトの規約を優先します
2. 動作の維持(重大)
behave-preserve-outputs- すべての戻り値と出力を維持しますbehave-preserve-errors- エラーメッセージ、型、処理方法を維持しますbehave-preserve-api- 公開関数のシグネチャと型を維持しますbehave-preserve-side-effects- 副作用(ログ出力、I/O、状態変更)を維持しますbehave-no-semantics-change- 微妙な意味上の変更を禁止しますbehave-verify-before-commit- 最終確定の前に、動作が維持されていることを検証します
3. スコープ管理(高)
scope-recent-code-only- 最近変更されたコードのみを対象にしますscope-minimal-diff- 変更を小さく、レビューしやすい状態に保ちますscope-no-unrelated-refactors- 無関係なリファクタリングは行いませんscope-no-global-rewrites- 全体的な書き換えやアーキテクチャの変更は避けますscope-respect-boundaries- モジュールとコンポーネントの境界を尊重します
4. 制御フローの簡素化(高)
flow-early-return- 早期リターンを使ってネストを減らすflow-guard-clauses- 前提条件にはガード節を使うflow-no-nested-ternaries- 三項演算子をネストしないflow-explicit-over-dense- 密な式より明示的な制御フローを優先するflow-flatten-nesting- 深いネストを最大2~3階層に平坦化するflow-single-responsibility- 各コードブロックは1つのことだけを行うflow-positive-conditions- 二重否定より肯定形の条件を優先するflow-optional-chaining- オプショナルチェーンとヌル合体演算子を使うflow-boolean-simplification- ブール式を簡潔にする
5. 命名と明瞭さ(中~高)
name-intention-revealing- 意図が伝わる名前を使うname-nouns-for-data- データには名詞、アクションには動詞を使うname-avoid-abbreviations- 分かりにくい略語を避けるname-consistent-vocabulary- 一貫した語彙を使うname-avoid-generic- 汎用的な名前を避けるname-string-interpolation- 文字列の連結より文字列補間を優先する
6. 重複の削減(中)
dup-rule-of-three- 3回のルールを適用するdup-no-single-use-helpers- 1回しか使わないヘルパー関数を避けるdup-extract-for-clarity- 明瞭さが向上する場合にのみ抽出するdup-avoid-over-abstraction- 早すぎる抽象化より重複を優先するdup-data-driven- 繰り返しの条件分岐よりデータ駆動のパターンを使う
7. デッドコードの削除(中)
dead-remove-unused- 未使用のコード要素を削除するdead-delete-not-comment- コードをコメントアウトせず、削除するdead-remove-obvious-comments- 自明なことを述べるコメントを削除するdead-keep-why-comments- 内容ではなく理由を説明するコメントを残すdead-remove-todo-fixme- 古くなったTODO/FIXMEコメントを削除する
8. 言語イディオム(低~中)
idiom-ts-strict-types- anyより厳密な型を使う(TypeScript)idiom-ts-const-assertions- constアサーションとreadonlyを使う(TypeScript)idiom-rust-question-mark- エラーの伝播には?を使う(Rust)idiom-rust-iterator-chains- より明瞭になる場合はイテレーターチェーンを使う(Rust)idiom-python-comprehensions- 単純な変換には内包表記を使う(Python)idiom-go-error-handling- エラーは直ちに処理する(Go)idiom-prefer-language-builtins- 言語や標準ライブラリの組み込み機能を優先する
ワークフロー
- コンテキストを把握する:CLAUDE.mdとlintの設定を読み、既存のパターンを確認します
- 対象範囲を特定する:範囲を広げるよう依頼されていない限り、最近変更されたコードに絞ります
- 変換を適用する:優先順位(最初はCRITICAL)に従ってルールを適用します
- 動作を検証する:出力、エラー、副作用が変わらないことを確認します
- 差分を最小限に抑える:レビューしやすい、小規模で焦点を絞った変更にします
使い方
詳しい説明とコード例については、各リファレンスファイルを参照してください。
- セクションの定義 - カテゴリーの構成と影響レベル
- ルールのテンプレート - 新しいルールを追加するためのテンプレート
リファレンスファイル
| ファイル | 説明 |
|---|---|
| references/_sections.md | カテゴリーの定義と順序 |
| assets/templates/_template.md | 新しいルール用のテンプレート |
| metadata.json | バージョンとリファレンス情報 |
コメント
Markdown 対応