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.md
source 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スコアに基づき、改善施策を優先度付けして提案:

  1. 即時改善(Quick Wins) - 低コストで効果大
  2. 短期改善(1-3ヶ月) - 計画的なリファクタリング
  3. 中期改善(3-6ヶ月) - アーキテクチャ変更
  4. 長期改善(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でメソッド数、行数をカウント

循環依存検出

依存グラフを構築し、サイクルを検出