mcpField
C
code-health

code-health

github.com/repowise-devテスト・品質8.0k90 回インストール今日更新
リポジトリ

code-health について

Repowiseによるコード健全性評価スキルです。LLMを呼び出さず、決定的なファイル指標でローカル分析します。開発者が整理やリファクタリングの優先順位を判断できるよう、リポジトリ全体または指定対象の結果を示します。

主な機能

  1. 01ファイルごとの健全性スコア
  2. 02リポジトリ整理の優先順位
  3. 03複雑度・凝集度・重複の指標
  4. 04影響度順のリファクタリング提案
  5. 05カバレッジと健全性の推移データ

活用シーン

  1. 01整理対象ファイルの優先順位付け
  2. 02リファクタリング前後のファイル評価
  3. 03カバレッジ取り込み後の未テスト箇所の特定

MCP 対応

Repowiseのget_health MCPツールで、リポジトリ全体または指定対象の健全性を取得します。問題、リファクタリング、カバレッジ、推移データも追加できます。

インストール

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

$npx skills add https://github.com/repowise-dev/repowise --skill code-health

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

詳細

Repowise によるコードの健全性

Repowise は、決定的なマーカー(McCabe 複雑度、深いネスト、脳のように複雑なメソッド、クラスの凝集度(LCOM4)、巨大クラス、クローン検出、テストされていないホットスポット、関数単位の変更頻度、所有者の分散など)に基づいて、すべてのファイルを 1〜10 で評価します。LLM 呼び出しはゼロで、ローカルだけで分析します。重みは実際の不具合コーパスに照らして調整されているため、スコアが低いほど、単に「大きい」のではなく、バグが潜んでいる可能性が高いことを意味します。

渡す内容に応じてモードを選びます

  • ダッシュボード:get_health()(対象の指定なし):まず fix_first に修正優先度順の一覧を表示し、続いてリポジトリレベルの KPI とスコアが最も低いファイルを表示します。「このコードベースの健全性はどうか?」「何を整理すればよいか?」を確認する場合は、ここから始めます。
  • 対象指定 — get_health(targets=["src/x.py", "src/y.py"]):ファイルごとのスコアと、そのスコアの要因となった具体的なマーカーの検出結果を表示します。リファクタリングの前後の比較や、なぜファイルに警告が付いたのかを説明する場合に使います。

便利な include フラグ

get_health(targets=[...], include=[...]):

  • "biomarkers" — 問題の内容と場所を示す検出結果の一覧を常に返します。
  • "refactoring" — 決定的なリファクタリング提案を、影響度と労力の順に表示します。
  • "coverage" — 取り込み済みの場合、カバレッジデータを表示します。
  • "trend" — 最近の健全性スナップショットと、低下中/低下予測のシグナルを表示します。

include はブロックを追加し、only=[...] はブロックを除外します。

結果の使い方

  1. 「何をリファクタリングすればよいか?」を確認する場合は、ダッシュボードモードで fix_first を先頭に提示します。項目の詳細な手順と実行するテストを確認するには、get_health(fix_id=...) で開き、スコアだけでなく計画を提示します。
  2. score ではなく weighted_deficit で順位付けします。スコアは 1.0 が下限です。
  3. 特定のファイルについては、スコア、上位 2〜3 件のマーカー検出結果、およびそれぞれの意味を平易な言葉で報告します。生のペイロードをそのまま出力するのは避けます。
  4. ファイルをクリーンと判断する前に unresolved を確認します。ここにある対象は何にも一致しておらず、not_indexed は repowise update の実行が必要であることを示します。
  5. 警告の付いたファイルを編集する前に、get_risk(targets=[...]) と照合します。健全性が低く、かつ変更頻度の高いホットスポットでもあるファイルは、特に慎重に扱う必要があります。
  6. 未テストのホットスポットやカバレッジに関する質問には、レポートを取り込むとカバレッジマーカーが有効になることを伝えます:repowise coverage add cov.lcov(LCOV/Cobertura/Clover に対応。coverage.py の .coverage も、テストごとのマップを作成します)。続いて repowise health --recompute を実行すると、スコアに反映されます。

CLI による同等の操作

  • repowise health — KPI とスコアが最も低いファイル
  • repowise health --refactoring-targets — 影響度/労力の順に表示
  • repowise health --trend — スナップショットと低下アラート
  • repowise coverage add <file> — カバレッジを取り込み、未テストのホットスポットを検出

エラー処理

get_health がリポジトリなしと報告した場合は、/repowise:init を提案します。テンプレートからレンダリングされた Wiki でも、コードの健全性は計算されます(LLM は不要です)。そのため、リポジトリがインデックス化されていれば常に利用できます。

コメント