CLIツール多重計測でリファクタ優先度をランク付けする
参考: Claude CodeでCLIツールを活用した開発効率化
「探索と分析はCLIに任せ、LLMは結果の解釈に専念する」という分業を実践した記録。
使ったツールと役割
| ツール | 計測軸 |
|---|---|
knip | 未使用 export / file / dependency |
madge --circular / --summary | 循環参照・hub依存数 |
type-coverage --strict --detail | any の数(ファイル別) |
semgrep --config=p/security-audit | セキュリティ監査 |
git log | 変更頻度(hot)・バグ修正集中(fix grep)・Temporal Coupling |
肝はクロスリファレンス
単一シグナルでは判断できない。
ホットスポット単独は問題ではない。「変更が多い」=「ビジネス重要で活発」というポジティブシグナルでもある。 問題は 型穴・循環参照・バグ多発と重なるとき だけ。
実測例: 1ファイルが hot×循環×hub×型穴 の4冠 → 最優先リファクタ対象として一発で炙り出せた。
設計の判断
| 単位 | 配置 |
|---|---|
| 単一ツール(knipなど) | CLAUDE.md に「あるよ」と一行 |
| 複数ツール連携の段階分析 | スキル化(/refactor-priority 等) |
ツールごとに dotfiles/docs/tools/{tool}.md を書き、CLAUDE.md は索引として参照する設計。スキル数を増やしすぎない。
環境構築メモ
mise use -g npm:knip npm:madge npm:type-coverage npm:dependency-cruiser
brew install semgrep
mise の npm: バックエンドで ~/.config/mise/config.toml に追記される(Brewfile相当の再現性)。