code-analyzer について
code-analyzer は、コードレビューやリファクタリング向けの静的コード分析スキルです。プロジェクト全体の分析、ホットスポットの抽出、指標の追跡で改善箇所を見つけます。
主な機能
- 01単一ファイルまたは全体の分析
- 02循環的複雑度と保守性の測定
- 03行数の集計と重複ブロックの検出
- 04複雑度のホットスポット特定
- 05指標トレンドの追跡
活用シーン
- 01プロジェクト全体のコード品質レビュー
- 02複雑度の高いファイルの特定
- 03リファクタリング対象の優先順位付け
- 04コード指標の継続的な監視
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill code-analyzerインストール後、Claude Code で/code-analyzerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/code-analyzer.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/code-analyzer.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
Code Analyzer Skill
インストール
別途ダウンロードする必要はありません。このスキルはリポジトリ内のツール .claude/tools/analysis/project-analyzer/analyzer.mjs を実行します。
- Node.js(v18 以降)がインストールされていることを確認してください:nodejs.org または
winget install OpenJS.NodeJS.LTS(Windows)、brew install node(macOS)。 - プロジェクトのルートからスクリプトが自動的に実行されるため、追加のインストール手順は不要です。
チートシートとベストプラクティス
メトリクス: サイクロマティック複雑度(分岐経路)、LOC、保守性インデックス、重複ブロックに注目してください。JS/TS では ESLint の complexity ルール(例:"complexity": ["error", 15])を使用してください。オプショナルチェーンとデフォルト引数は分岐を増やします。
プロセス: リファクタリングの前に分析し、まずプロジェクト全体を対象に実行してから、ホットスポットを詳しく調べてください。一度きりではなく、経時的な傾向を追跡してください。複雑度と併せて max-depth、max-lines、max-nested-callbacks、max-params、max-statements を使用してください。
コツ: まず project-analyzer の出力を確認し、ファイルの種類としきい値で絞り込んでください。複雑度と変更頻度の両方が高いファイルを優先してください。妥当なしきい値を設定できない場合に限り、複雑度ルールを無効にしてください。無効にするより、しきい値を下げることを優先してください。
認定資格とトレーニング
単一の認定資格はありません。 静的解析と ESLint の複雑度に関連しています。ESLint: complexity ルール、max-depth、max-lines、max-params。スキルのデータ: サイクロマティック複雑度、LOC、保守性、重複。リファクタリング前に分析し、ホットスポットと傾向を追跡してください。
フックとワークフロー
推奨フック: プリコミットまたは CI で、健全性を確認するために project-analyzer/doctor を実行します。複雑度のゲートは任意です。developer(補助)、qa(補助)、code-reviewer(主担当)と併用してください。
ワークフロー: code-reviewer(主担当)、developer/qa(補助)、c4-code(主担当)と併用してください。流れ:アナライザーを実行 → ホットスポットを絞り込む → リファクタリングまたはテストを追加。code-review-workflow.md を参照してください。
概要
静的コード解析とメトリクス。コンテキストを 90% 以上削減します。
ツール(段階的な開示)
分析
| ツール | 説明 |
|---|---|
| analyze-file | 単一ファイルを分析 |
| analyze-project | プロジェクト全体を分析 |
| complexity | 複雑度メトリクスを算出 |
メトリクス
| ツール | 説明 |
|---|---|
| loc | コード行数 |
| cyclomatic | サイクロマティック複雑度 |
| maintainability | 保守性インデックス |
| duplicates | 重複コードを検出 |
レポート
| ツール | 説明 |
|---|---|
| summary | 分析の概要を取得 |
| hotspots | 複雑度のホットスポットを検出 |
| trends | メトリクスの傾向を分析 |
エージェントとの連携
- code-reviewer(主担当):コードレビュー
- refactoring-specialist(主担当):技術的負債の分析
- architect(補助):アーキテクチャの評価
鉄則
- 個別のファイルを詳しく調べる前に、必ずプロジェクト全体の分析を実行してください — コンテキストなしの局所的な分析では、実際に優先度が最も高いホットスポットを見落とします。広く分析してから、対象を絞り込んでください。
- 複雑度と変更頻度の両方が高いファイルを必ず優先してください — 複雑でもほとんど変更されないファイルは、中程度に複雑でも頻繁に変更されるファイルより優先度が低くなります。両方が重なる部分が最も重要です。
- 複雑度のしきい値を 20 より大きく設定してはいけません — サイクロマティック複雑度が 20 を超えると、欠陥との相関が実証されています。20 を超える値を許容するチームは、気付かないうちに保守不可能なコードを蓄積します。
- 一度限りではなく、必ずメトリクスを経時的に追跡してください — 1 回の分析結果には意味がありません。悪化が危機になる前に検出できるよう、毎週傾向を追跡してください。
- 実行可能な次の手順を示さずにメトリクスを報告してはいけません — リファクタリングの対象を示さない複雑度の数値には価値がありません。複雑度が高いという指摘には、具体的な改善案を必ず添えてください。
アンチパターン
| アンチパターン | 失敗する理由 | 正しいアプローチ |
|---|---|---|
| 変更されたファイルのみを分析する | ファイルをまたいで複雑さが蓄積していることを見逃します | プロジェクト全体を分析してから、変更された要注意箇所に絞り込みます |
| 複雑なファイルを長期間放置する | 徐々に劣化しても、ある時点だけの分析では見えません | 週ごとの傾向を追跡し、増加があればすべて警告します |
| 複雑度のしきい値を20より大きくする | 調査によると、20を超えると不具合率が急激に上昇します | 適用を徹底するため、ESLint の複雑度ルールを≤15に設定します |
| 対応項目なしでメトリクスを報告する | 改善策のないメトリクスでは複雑さを減らせません | 要注意箇所ごとに具体的なリファクタリング案を添えます |
| 分析を一度だけ実行し、結果を無視する | 技術的負債が気づかないうちに蓄積します | 傾向レポート付きの週次分析を自動でスケジュールします |
メモリプロトコル(必須)
開始前:
.claude/context/memory/learnings.md を読みます。
完了後:
- 新しいパターン ->
.claude/context/memory/learnings.md - 見つかった問題 ->
.claude/context/memory/issues.md - 決定事項 ->
.claude/context/memory/decisions.md
中断されることを前提にしてください。メモリに記録されていなければ、実行されていないのと同じです。