bloat-detector について
bloat-detectorは、メンテナンスやリファクタリング、リリース前の整理に使う段階式のコードベース分析スキルです。コード、AI生成物、ドキュメント、依存関係、Git履歴を調べ、削除には事前承認を求めます。
主な機能
- 01段階式の3種類のスキャン
- 02コード・文書・依存関係の肥大化検出
- 03Git履歴と成長傾向の分析
- 04確信度と優先度による評価
- 05整理前の承認必須
活用シーン
- 01定期メンテナンスで冗長部分を発見
- 02リファクタリング前に整理対象を特定
- 03リリース前にコードベースを点検
- 04プラグイン設定やスキルファイルを監査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill bloat-detectorインストール後、Claude Code で/bloat-detectorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
modules/ai-generated-bloat.mdcode-bloat-patterns.mddocumentation-bloat.mdgit-history-analysis.mdgrowth-analysis.mdquick-scan.mdremediation-types.mdstatic-analysis-integration.md詳細
肥大化検出器
段階的な分析レベルを通じて、コードベースの肥大化を体系的に検出し、解消します。
肥大化のカテゴリ
| カテゴリ | 例 |
|---|---|
| コード | デッドコード、God クラス、Lava flow、重複 |
| AI 生成 | タブ補完による肥大化、バイブコーディング、幻覚による依存関係 |
| ドキュメント | 冗長性、冗長な記述、古いコンテンツ、質の低い内容 |
| 依存関係 | 未使用のインポート、依存関係の肥大化、幻のパッケージ |
| Git 履歴 | 古いファイル、変更頻度の低いコード、巨大な単一コミット |
クイックスタート
レベル 1:クイックスキャン(2~5 分、ツール不要)
/bloat-scan
検出対象:大きなファイル、古いコード、古い TODO、コメントアウトされたブロック、基本的な重複
レベル 2:対象を絞った分析(10~20 分、ツールは任意)
/bloat-scan --level 2 --focus code # or docs, deps
追加項目:静的解析(Vulture/Knip)、Git の変更頻度が高い箇所、ドキュメントの類似性
レベル 3:詳細監査(30~60 分、すべてのツールを使用)
/bloat-scan --level 3 --report audit.md
追加項目:ファイル間の冗長性、依存関係グラフ、可読性指標
使用する場合
| 使用する | 使用しない |
|---|---|
| コンテキストの使用率が 30% 超 | 機能を積極的に開発しているとき |
| 四半期ごとのメンテナンス | 時間に制約のあるバグ対応 |
| リリース前の整理 | コードベースが 1000 行未満 |
| 大規模なリファクタリングの前 | ツールを利用できない場合(レベル 2/3) |
使用しない場合
- 機能を積極的に開発しているとき
- 時間に制約のあるバグ対応
- コードベースが 1000 行未満
確信度レベル
| レベル | 確信度 | 対応 |
|---|---|---|
| HIGH | 90~100% | 安全に削除できます |
| MEDIUM | 70~89% | まず確認してください |
| LOW | 50~69% | 調査してください |
優先順位付け
Priority = (Token_Savings × 0.4) + (Maintenance × 0.3) + (Confidence × 0.2) + (Ease × 0.1)
モジュール構成
レベル 1(常に利用可能):
modules/quick-scan.mdを参照 - ヒューリスティック、ツール不要modules/git-history-analysis.mdを参照 - 古さ、変更頻度、バイブコーディングの兆候modules/growth-analysis.mdを参照 - 増加速度、予測、しきい値アラート
レベル 2(任意のツール):
modules/code-bloat-patterns.mdを参照 - アンチパターン(God クラス、Lava flow)modules/ai-generated-bloat.mdを参照 - AI 固有のパターン(タブ補完による肥大化、幻覚)modules/documentation-bloat.mdを参照 - 冗長性、可読性、質の低い内容の検出modules/static-analysis-integration.mdを参照 - Vulture、Knip
共有:
modules/remediation-types.mdを参照 - DELETE、REFACTOR、CONSOLIDATE、ARCHIVE
エコシステムレベルの検出
プラグインの境界やマニフェスト設定をまたぐパターンを、 エコシステム全体の監査を通じて検出します。
alwaysApply の蓄積
alwaysApply: true のスキルが 3 個以上あるプラグインにフラグを設定します。
常時有効なスキルはそれぞれ、セッションごとに全文を挿入するため、
ユーザーが何も入力する前から、ベースラインのトークン消費が発生します。
estimated_tokens の値を合計し、セッションあたりの総コストを報告します。
フック登録の不足
plugin.json または openpackage.yml で宣言されたフックと、
hooks.json のエントリーを比較します。hooks.json に存在しても
マニフェストに記載されていないフックは、プラグインローダーから認識されず、
通常のプラグイン管理を通じて監査、バージョン管理、無効化を行えません。
定型フッターの検出
スキルファイルをスキャンし、同一の複数行テキストブロックが 10 個以上のファイルに繰り返し登場していないか確認します(例: 「コマンドが見つからない/権限エラー/予期しない動作」といった汎用的な トラブルシューティングのセクション)。これらはコピー&ペーストの残骸であり、 スキル固有の価値を加えることなくトークン消費を増加させます。
スキル内の目次による肥大化
モデルのコンテキストに読み込まれるスキルでは、HTML 形式の
目次に利点はありません。## Table of Contents に続く
箇条書きのアンカーリンク一覧を検出します。モデルはハイパーリンクではなく
順番に読み進めるため、これらはトークンの無駄になります。
未登録のモジュールサブディレクトリ
skills/*/modules/ 内のディスク上のファイルと、各スキルの SKILL.md の
フロントマターにある modules: リストを比較します。ディスク上に存在するものの
マニフェストに記載されていないファイルは、段階的な読み込みで認識されず、
不要なファイルであるか、読み込みパスから漏れている可能性があります。
自動除外
常に除外されます:.venv、__pycache__、.git、node_modules、dist、build、vendor
以下も尊重します:.gitignore、.bloat-ignore
安全性
- 自動削除は行いません - すべての変更に承認が必要です
- ドライランに対応 - プレビューには
--dry-runを使用します - バックアップブランチ - 一括変更の前に作成されます
関連項目
bloat-auditorエージェント - スキャンを実行しますunbloat-remediatorエージェント - 安全に修正しますcontext-optimizationスキル - MECW の原則/bloat-scanコマンド - このスキルを呼び出す、ユーザー向けのスラッシュコマンドです。独立したbloat-scanスキルはありません
完了条件
- 少なくとも1つのスキャン階層(Tier 1、2、または3)が完了し、肥大化のカテゴリ(コード、AI 生成、ドキュメント、依存関係、Git 履歴)ごとに検出事項が列挙されている
- 各検出事項に信頼度(HIGH/MEDIUM/LOW)が割り当てられ、次の式から優先度スコアが算出されている
`(Token_Savings × 0.4) + (Maintenance × 0.3) + (Confidence × 0.2)
- (Ease × 0.1)`
- ユーザーの明示的な承認なしに自動削除を実行していない。削除候補はすべて、
modules/remediation-types.mdに従って DELETE、REFACTOR、CONSOLIDATE、または ARCHIVE として記録されている - スキャン対象にプラグインディレクトリが含まれる場合、エコシステムレベルのパターン(alwaysApply の蓄積、フック登録の不足、定型フッター、目次の肥大化)が確認されている