mcpField
C
clean-code

clean-code

github.com/davila7開発33.0k1.1k 回インストール今日更新
リポジトリ

clean-code について

コーディングエージェント向けのスキルです。クリーンコードの原則、依存関係の確認、完了前の検証を通じて、保守しやすい変更を促します。

主な機能

  1. 01単一責任とシンプルさの原則
  2. 02命名と関数のガイドライン
  3. 03編集前の依存関係チェック
  4. 04完了前の自己確認とテスト
  5. 05エージェント別の検証スクリプト

活用シーン

  1. 01依頼された機能の直接実装
  2. 02依存関係を確認しながらのバグ修正
  3. 03タスク完了前の変更内容の確認

インストール

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

$npx skills add https://github.com/davila7/claude-code-templates --skill clean-code

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

詳細

Clean Code - 実践的な AI コーディング標準

重要スキル - 簡潔に、直接的に、解決策に集中してください。


基本原則

原則ルール
SRP単一責任 - 各関数/クラスは1つのことだけを行う
DRY同じことを繰り返さない - 重複を抽出して再利用する
KISSシンプルに保つ - 動作する最もシンプルな解決策を選ぶ
YAGNI必要になるまで作らない - 使われない機能を作らない
Boy Scout見つけたときよりもきれいにしてから離れる

命名ルール

要素規約
変数意図が分かる名前にする: n ではなく userCount
関数動詞 + 名詞: user() ではなく getUserById()
真偽値疑問形にする: isActive、hasPermission、canEdit
定数SCREAMING_SNAKE: MAX_RETRY_COUNT

ルール: 名前を説明するためにコメントが必要なら、名前を変更してください。


関数のルール

ルール説明
小さく最大20行、理想は5〜10行
一つのこと一つのことだけを行い、それをうまくこなす
一つの抽象度関数内の抽象化レベルは1つにする
少ない引数最大3つの引数、できれば0〜2個
副作用なし入力を予期せず変更しない

コード構造

パターン適用
ガード節エッジケースは早期リターンで処理する
ネストより平坦深いネストを避ける(最大2階層)
合成小さな関数を組み合わせる
同置関連するコードを近くに置く

AI コーディングのスタイル

状況対応
ユーザーが機能を求めるそのまま直接書く
ユーザーがバグを報告する説明せず、修正する
要件が不明確推測せず、確認する

アンチパターン(やってはいけないこと)

❌ パターン✅ 修正
すべての行にコメントを付ける自明なコメントは削除する
一行のためのヘルパーコードをインライン化する
2つのオブジェクトのためのファクトリー直接インスタンス化する
関数1つだけの utils.tsコードは使用する場所に置く
「まず import して…」説明せず、コードを書く
深いネストガード節
マジックナンバー名前付き定数
神関数責任ごとに分割する

🔴 いかなるファイルも編集する前に(まず考える!)

ファイルを変更する前に、次の点を自問してください:

質問理由
このファイルをインポートしているのは何か?壊れる可能性がある
このファイルは何をインポートしているか?インターフェースの変更
このファイルをカバーしているテストは何か?テストが失敗する可能性がある
これは共有コンポーネントか?複数の箇所に影響する

クイックチェック:

File to edit: UserService.ts
└── Who imports this? → UserController.ts, AuthController.ts
└── Do they need changes too? → Check function signatures

🔴 ルール: ファイルと依存するすべてのファイルを、同じタスク内で編集してください。 🔴 壊れたインポートや更新漏れを残さないでください。


まとめ

やることやらないこと
コードを直接書くチュートリアルを書く
コードに自己文書化させる自明なコメントを追加する
バグはすぐに修正する修正の前に説明する
小さなものはインライン化する不要なファイルを作る
名前は明確に付ける略語を使う
関数は小さく保つ100行以上の関数を書く

覚えておいてください: ユーザーが求めているのは、動作するコードであり、プログラミングの講義ではありません。


🔴 完了前のセルフチェック(必須)

「タスク完了」と言う前に、次を確認してください:

チェック質問
✅ 目標を達成したか?ユーザーが求めたことを正確に行ったか?
✅ ファイルを編集したか?必要なすべてのファイルを変更したか?
✅ コードは動くか?変更をテスト/検証したか?
✅ エラーはないか?Lint と TypeScript は通っているか?
✅ 忘れていることはないか?見落としたエッジケースはないか?

🔴 ルール: 1つでもチェックに失敗した場合は、完了する前に修正してください。


検証スクリプト(必須)

🔴 重要: 各エージェントは、作業完了後に自分のスキルのスクリプトだけを実行してください。

エージェントとスクリプトの対応表
エージェントスクリプトコマンド
frontend-specialistUX Auditpython ~/.claude/skills/frontend-design/scripts/ux_audit.py .
frontend-specialistA11y Checkpython ~/.claude/skills/frontend-design/scripts/accessibility_checker.py .
backend-specialistAPI Validatorpython ~/.claude/skills/api-patterns/scripts/api_validator.py .
mobile-developerMobile Auditpython ~/.claude/skills/mobile-design/scripts/mobile_audit.py .
database-architectSchema Validatepython ~/.claude/skills/database-design/scripts/schema_validator.py .
security-auditorSecurity Scanpython ~/.claude/skills/vulnerability-scanner/scripts/security_scan.py .
seo-specialistSEO Checkpython ~/.claude/skills/seo-fundamentals/scripts/seo_checker.py .
seo-specialistGEO Checkpython ~/.claude/skills/geo-fundamentals/scripts/geo_checker.py .
performance-optimizerLighthousepython ~/.claude/skills/performance-profiling/scripts/lighthouse_audit.py <url>
test-engineerTest Runnerpython ~/.claude/skills/testing-patterns/scripts/test_runner.py .
test-engineerPlaywrightpython ~/.claude/skills/webapp-testing/scripts/playwright_runner.py <url>
任意のエージェントLint Checkpython ~/.claude/skills/lint-and-validate/scripts/lint_runner.py .
任意のエージェントType Coveragepython ~/.claude/skills/lint-and-validate/scripts/type_coverage.py .
任意のエージェントi18n Checkpython ~/.claude/skills/i18n-localization/scripts/i18n_checker.py .

❌ 誤り: test-engineer が ux_audit.py を実行する ✅ 正しい: frontend-specialist が ux_audit.py を実行する


🔴 スクリプト出力の処理(読む → 要約する → 確認する)

検証スクリプトを実行する場合、必ず次の手順に従ってください:

  1. スクリプトを実行し、すべての出力を取得する
  2. 出力を解析し、エラー、警告、成功項目を特定する
  3. 次の形式でユーザーに要約する:
## Script Results: [script_name.py]

### ❌ Errors Found (X items)
- [File:Line] Error description 1
- [File:Line] Error description 2

### ⚠️ Warnings (Y items)
- [File:Line] Warning description

### ✅ Passed (Z items)
- Check 1 passed
- Check 2 passed

**Should I fix the X errors?**
  1. 修正する前にユーザーの確認を待つ
  2. 修正後 → スクリプトを再実行して結果を確認する

🔴 違反: スクリプトを実行したのに出力を無視することは、タスク失敗とみなされます。 🔴 違反: 確認せずに自動修正することは許可されていません。 🔴 ルール: 必ず 出力を読む → 要約する → 確認する → その後で修正する、の順序を守ってください。

コメント