mcpField
R
review-clean-code

review-clean-code

github.com/heyvhuangテスト・品質33853 回インストール30 週間前に更新
リポジトリ

review-clean-code について

review-clean-code は、プログラムの動作を変えずに、Clean Code の 7 つの観点から実装品質を確認するコードレビュースキルです。問題を重大度順に整理し、読みやすいレポートと構造化レポートを出力します。

主な機能

  1. 017 つのコード品質観点を確認
  2. 02問題の重大度を評価
  3. 03重大度順のレポート
  4. 04既存の動作を維持
  5. 05範囲別の並列レビューに対応

活用シーン

  1. 01命名と関数設計のレビュー
  2. 02重複や過剰設計の検出
  3. 03プロジェクト規約との一貫性確認

インストール

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

$npx skills add https://github.com/heyvhuang/ship-faster --skill review-clean-code

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

同梱ファイルdetailed-examples.mdlanguage-patterns.md

詳細

クリーンコードレビュー

「Clean Code」の原則に基づき、影響の大きい7つのレビュー観点に焦点を当てます。

レビューワークフロー

Review Progress:
- [ ] 1. Scan codebase: identify files to review
- [ ] 2. Check each dimension (naming, functions, DRY, YAGNI, magic numbers, clarity, conventions)
- [ ] 3. Rate severity (High/Medium/Low) for each issue
- [ ] 4. Generate report sorted by severity

基本原則:機能を維持する

すべての提案は実装方法のみを対象とし、コードの機能、出力、動作の変更は提案しません。

チェック項目

1. 命名の問題(意味のある名前)

以下を確認します:

  • data1、temp、result、info、objなど、意味のない名前
  • 同じ概念に対する命名の不統一(get/fetch/retrieveが混在)
// ❌ 
const d = new Date();
const data1 = fetchUser();

// ✅ 
const currentDate = new Date();
const userProfile = fetchUser();
2. 関数の問題(小さな関数 + SRP)

以下を確認します:

  • 100行を超える関数
  • 3個を超えるパラメーター
  • 複数の処理を行う関数
// ❌ 7 parameters
function processOrder(user, items, address, payment, discount, coupon, notes)

// ✅ Use parameter object
interface OrderParams { user: User; items: Item[]; shipping: Address; payment: Payment }
function processOrder(params: OrderParams)
3. 重複の問題(DRY)

以下を確認します:

  • 類似したif-else構造
  • 類似したデータ変換/エラーハンドリングのロジック
  • コピー&ペーストの痕跡
4. 過剰な設計(YAGNI)

以下を確認します:

  • 一度もtrueにならないif (config.legacyMode)分岐
  • 実装が1つだけのインターフェース
  • 不要なtry-catchやif-else
// ❌ YAGNI violation: unused compatibility code
if (config.legacyMode) {
  // 100 lines of compatibility code
}
5. マジックナンバー(ハードコーディングを避ける)

以下を確認します:

  • 説明のない数値
  • ハードコーディングされた文字列
// ❌ 
if (retryCount > 3) // What is 3?
setTimeout(fn, 86400000) // How long is this?

// ✅ 
const MAX_RETRY_COUNT = 3;
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
6. 構造の明瞭さ(読みやすさを優先)

以下を確認します:

  • ネストした三項演算子
  • 過度に簡潔な一行コード
  • 深い条件分岐のネスト(3階層を超える)
// ❌ Nested ternary
const status = a ? (b ? 'x' : 'y') : (c ? 'z' : 'w');

// ✅ Use switch or if/else
function getStatus(a, b, c) {
  if (a) return b ? 'x' : 'y';
  return c ? 'z' : 'w';
}
7. プロジェクト規約(一貫性)

以下を確認します:

  • インポート順序の混在(外部ライブラリと内部モジュール)
  • 関数宣言スタイルの不統一
  • 命名規則の混在(camelCaseとsnake_case)
// ❌ Inconsistent style
import { api } from './api'
import axios from 'axios'  // External lib should come first
const handle_click = () => { ... }  // Mixed naming style

// ✅ Unified style
import axios from 'axios'
import { api } from './api'
function handleClick(): void { ... }

ヒント

プロジェクト規約は、CLAUDE.md、AGENTS.md、またはプロジェクトで定められたコーディング規約を参照してください。

重大度レベル

レベル基準
高保守性/可読性に影響するため、すぐに修正する必要があります
中改善の余地があり、修正を推奨します
低コードの不吉な臭いであり、最適化は任意です

出力形式

### [Issue Type]: [Brief Description]

- **Principle**: [Clean Code principle]
- **Location**: `file:line`
- **Severity**: High/Medium/Low
- **Issue**: [Specific description]
- **Suggestion**: [Fix direction]

成果物(パイプラインモード)

  • 出力:clean-code-review.md(人が読めるレポート)
  • 出力:clean-code-review.json(集約/重複排除/統計用の構造化された問題一覧)

参考資料

詳細な例:detailed-examples.mdを参照してください

  • 各観点(命名、関数、DRY、YAGNI、マジックナンバー)の全事例

言語別パターン:language-patterns.mdを参照してください

  • TypeScript/JavaScriptでよくある問題
  • Pythonでよくある問題
  • Goでよくある問題

マルチエージェント並列実行

並列マルチエージェント実行では、以下の観点で分割します:

  1. チェック項目別 - 観点ごとにエージェントを1つ(合計7つ)
  2. モジュール/ディレクトリ別 - モジュールごとにエージェントを1つ
  3. 言語別 - TypeScript、Python、Goそれぞれにエージェントを1つ
  4. ファイル種別別 - コンポーネント、フック、ユーティリティ、型定義

例:/review-clean-code --scope=componentsまたは--dimension=naming

集約時には、重複排除と重大度の統一評価が必要です。

コメント