Claude-skill-registry evaluate-mmi
MMI評価エージェント - Modularity Maturity Indexによるモジュール成熟度評価(Cohesion/Coupling/Independence/Reusability)。/evaluate-mmi [対象パス] で呼び出し。
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/evaluate-mmi" ~/.claude/skills/majiayu000-claude-skill-registry-evaluate-mmi && rm -rf "$T"
manifest:
skills/data/evaluate-mmi/SKILL.mdsource content
Modularity Maturity Index (MMI) Evaluator Agent
既存システムのモジュール成熟度を4つの観点から評価し、改善計画を策定するエージェントです。
概要
Modularity Maturity Index (MMI) は、ソフトウェアアーキテクチャのモジュール性を定量的に評価する指標です。
評価軸
| 評価軸 | 重み | 評価観点 |
|---|---|---|
| Cohesion(凝集度) | 30% | 単一責務性、機能の集中度 |
| Coupling(結合度) | 30% | モジュール間依存、疎結合性 |
| Independence(独立性) | 20% | デプロイ独立性、変更独立性 |
| Reusability(再利用性) | 20% | 汎用性、他コンテキストでの活用可能性 |
MMI計算式
MMI = (0.3 × Cohesion + 0.3 × Coupling + 0.2 × Independence + 0.2 × Reusability) / 5 × 100
成熟度レンジ
| スコア | 成熟度レベル | 説明 |
|---|---|---|
| 80-100 | 高成熟 | マイクロサービス化の準備完了 |
| 60-80 | 中成熟 | 一部改善でマイクロサービス化可能 |
| 40-60 | 低中成熟 | 大幅なリファクタリングが必要 |
| 0-40 | 未成熟 | モノリス分解の計画策定から |
出力先ディレクトリ
評価結果は
reports/02_evaluation/ に出力します。
重要: 各ステップ完了時に即座にファイルを出力してください。
reports/02_evaluation/ ├── mmi-overview.md # Step 3完了時 ├── mmi-by-module.md # Step 2完了時(各モジュール評価後) └── mmi-improvement-plan.md # Step 4完了時
実行プロンプト
あなたはソフトウェアアーキテクチャの評価専門家です。以下の手順でMMI評価を実行してください。
Step 1: モジュール抽出
対象システムからモジュールを特定します。モジュールの粒度は以下を基準に:
- パッケージ/名前空間単位 - 中規模システム向け
- クラス/ファイル単位 - 小規模システム向け
- サービス/コンポーネント単位 - 大規模システム向け
# Serenaツールでモジュール構造を把握 mcp__serena__list_dir で全体構造を確認 mcp__serena__get_symbols_overview で各モジュールの内容を把握
Step 2: 各軸の評価
Cohesion(凝集度)評価
| スコア | 基準 |
|---|---|
| 5 | 完全単一責務。1つの明確な目的のみ |
| 4 | ほぼ単一責務。関連性の高い機能のみ |
| 3 | 複数責務だが関連性あり |
| 2 | 複数の無関係な責務が混在 |
| 1 | 責務が不明瞭、雑多な機能の寄せ集め |
| 0 | 責務の概念なし、スパゲッティコード |
評価ポイント:
- クラス/ファイルの行数(大きすぎないか)
- メソッド数(多すぎないか)
- 関連性のない機能の混在
- 命名の一貫性
# 評価コマンド例 mcp__serena__find_symbol でクラスサイズを確認 Grep で責務の分散を確認
Coupling(結合度)評価
| スコア | 基準 |
|---|---|
| 5 | 完全独立。外部依存なし |
| 4 | 最小限の依存。インターフェース経由のみ |
| 3 | 適度な依存。一方向の依存関係 |
| 2 | 多数の依存。双方向依存あり |
| 1 | 強結合。循環依存あり |
| 0 | 密結合。分離不可能 |
評価ポイント:
- import/require文の数
- 外部モジュールへの直接参照
- 循環依存の有無
- グローバル状態の使用
# 評価コマンド例 mcp__serena__find_referencing_symbols で依存関係を分析 Grep で import/require をカウント
Independence(独立性)評価
| スコア | 基準 |
|---|---|
| 5 | 完全独立デプロイ可能 |
| 4 | ほぼ独立。設定変更のみで分離可能 |
| 3 | 条件付き独立。一部共有リソースあり |
| 2 | 部分依存。他モジュールとの協調必要 |
| 1 | 強依存。同時デプロイ必須 |
| 0 | 分離不可能。一体化 |
評価ポイント:
- 共有データベースの使用
- 共有ライブラリへの依存
- 設定ファイルの共有
- 同期的な呼び出し
Reusability(再利用性)評価
| スコア | 基準 |
|---|---|
| 5 | 汎用ライブラリとして利用可能 |
| 4 | 他プロジェクトで再利用可能 |
| 3 | 同プロジェクト内で再利用可能 |
| 2 | 限定的な再利用のみ可能 |
| 1 | 再利用困難。ハードコード多数 |
| 0 | 再利用不可能 |
評価ポイント:
- ハードコードされた値
- 環境依存のコード
- インターフェースの抽象度
- ドキュメントの有無
Step 3: スコア集計
各モジュールについてスコアを計算:
function calculateMMI(cohesion, coupling, independence, reusability) { return ((0.3 * cohesion + 0.3 * coupling + 0.2 * independence + 0.2 * reusability) / 5) * 100; }
このステップ完了時に出力:
- 各モジュールの詳細評価reports/02_evaluation/mmi-by-module.md
- 評価概要サマリーreports/02_evaluation/mmi-overview.md
Step 4: 改善計画策定
MMIスコアに基づき、改善施策を優先度付けして提案:
- 即時改善(Quick Wins) - 低コストで効果大
- 短期改善(1-3ヶ月) - 計画的なリファクタリング
- 中期改善(3-6ヶ月) - アーキテクチャ変更
- 長期改善(6ヶ月以上) - 大規模再構築
このステップ完了時に出力:
reports/02_evaluation/mmi-improvement-plan.md
出力フォーマット
1. mmi_overview.md
MMI評価概要(エグゼクティブサマリー、スコア分布、軸別平均スコア、主要課題、推奨アクション)
2. mmi_by_module.md
モジュール別MMIスコア(スコア一覧、各モジュール詳細評価、改善提案)
3. mmi_improvement_plan.md
MMI改善計画(改善目標、ロードマップ、施策詳細、依存関係図、モニタリング計画)
評価のベストプラクティス
Do's
- 客観的な基準でスコアリング
- 根拠を明記する
- 改善可能性を考慮
- ビジネス価値と照らし合わせる
Don'ts
- 主観的な印象で評価しない
- 極端なスコア(0や5)を安易につけない
- 改善不可能な課題にフォーカスしすぎない
- 技術的負債を過小評価しない
ツール活用
依存関係分析
mcp__serena__find_referencing_symbols を使用
コード複雑度確認
Grepでメソッド数、行数をカウント
循環依存検出
依存グラフを構築し、サイクルを検出