configure-dead-code について
デッドコード検出を設定、監査するプロジェクト構成スキルです。プロジェクトの言語に応じて Knip、Vulture、cargo-machete を選び、設定や CI チェックを追加できます。
主な機能
- 01言語とデッドコードツールの検出
- 02ツール設定の監査
- 03ツール設定とスクリプトの作成
- 04ブロックしない CI チェックの追加
- 05確認のみ・自動修正モード
活用シーン
- 01新規プロジェクトへのデッドコード検査設定
- 02Knip、Vulture、cargo-machete 設定の確認
- 03デッドコード検出の CI への追加
- 04モノレポ内の検査方法の統一
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-dead-codeインストール後、Claude Code で/configure-dead-codeを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
/configure:dead-code
デッドコード検出ツールを確認し、設定します。
このスキルを使用するタイミング
| 次の場合はこのスキルを使用します... | 次の場合は別の方法を使用します... |
|---|---|
| 新しいプロジェクトにデッドコード検出を設定する | 既存のデッドコードスキャン(knip、vulture)を実行する |
| Knip、Vulture、または cargo-machete が正しく設定されているか監査する | 特定の未使用エクスポートやインポートを手動で削除する |
| デッドコード検出ツールを移行する | 特定のファイルが未使用としてフラグ付けされる理由をデバッグする |
| CI/CD パイプラインにデッドコードチェックを追加する | デッドコードの検出結果を一つずつ確認する |
| モノレポ全体でデッドコード検出を標準化する | lint ルールを設定する(代わりに /configure:linting を使用) |
コンテキスト
- プロジェクトルート:!
pwd - パッケージファイル:!
find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' \) - Knip 設定:!
find . -maxdepth 1 \( -name 'knip.json' -o -name 'knip.config.*' \) - Vulture 設定:!
find . -maxdepth 1 \( -name '.vulture' -o -name 'vulture.ini' \) - Pre-commit:!
find . -maxdepth 1 -name '.pre-commit-config.yaml' - プロジェクト標準:!
find . -maxdepth 1 -name '.project-standards.yaml'
パラメーター
コマンド引数から解析します。
--check-only:変更を加えず、準拠状況を報告します(CI/CD モード)--fix:確認を求めずに修正を自動適用します--tool <knip|vulture|deadcode|machete>:ツールの検出結果を上書きします
デッドコード検出ツール:
- JavaScript/TypeScript:Knip(未使用のファイル、エクスポート、依存関係を検出)
- Python:Vulture または deadcode(未使用のコードを検出)
- Rust:cargo-machete(未使用の依存関係を検出)
実行
次のデッドコード検出の準拠チェックを実行します。
ステップ 1:プロジェクトの言語と既存ツールを検出する
言語とツールを示す情報を確認します。
| 指標 | 言語 | ツール |
|---|---|---|
knip.json または knip.config.* | JavaScript/TypeScript | Knip |
knip を含む package.json | JavaScript/TypeScript | Knip |
pyproject.toml の [tool.vulture] | Python | Vulture |
.vulture または vulture.ini | Python | Vulture |
Cargo.toml | Rust | cargo-machete |
設定する前に、WebSearch または WebFetch を使用して最新バージョンを確認します。
ステップ 2:現在の設定を分析する
検出されたツールについて、設定が十分か確認します。
Knip:
- 設定ファイルが存在する(
knip.jsonまたはknip.config.*) - エントリーポイントが設定されている
- 除外パターンが設定されている
- プラグイン設定がある
- ワークスペースに対応している(モノレポ)
- CI に統合されている
Vulture:
- 設定ファイルが存在する
- 最小信頼度が設定されている
- パスが設定されている
- 除外パターンが設定されている
- 許可リストファイルがある(必要な場合)
cargo-machete:
- cargo サブコマンドとしてインストールされている
- ワークスペース設定がある
- CI に統合されている
ステップ 3:準拠レポートを生成する
書式付きの準拠レポートを出力します。
Dead Code Detection Compliance Report
======================================
Project: [name]
Language: [TypeScript | Python | Rust]
Tool: [Knip 5.x | Vulture 2.x | cargo-machete 0.6.x]
Configuration:
Config file knip.json [EXISTS | MISSING]
Entry points configured [CONFIGURED | AUTO-DETECTED]
Ignore patterns node_modules, dist [CONFIGURED | INCOMPLETE]
Plugin support enabled [ENABLED | N/A]
Detection Scope:
Unused files enabled [ENABLED | DISABLED]
Unused exports enabled [ENABLED | DISABLED]
Unused dependencies enabled [ENABLED | DISABLED]
Unused types enabled [ENABLED | DISABLED]
Scripts:
dead-code command package.json scripts [CONFIGURED | MISSING]
Integration:
Pre-commit hook .pre-commit-config.yaml [OPTIONAL | MISSING]
CI/CD check .github/workflows/ [CONFIGURED | MISSING]
Overall: [X issues found]
--check-only が指定されている場合は、ここで終了します。
ステップ 4:デッドコード検出を設定する(--fix が指定されている場合、またはユーザーが確認した場合)
検出された言語に基づいて設定します。REFERENCE.md のテンプレートを使用します。
- ツールをインストールする(例:
bun add --dev knip、uv add --group dev vulture) - エントリーポイント、除外設定、プラグインを含む 設定ファイルを作成する
- スクリプトを追加する(package.json に追加するか、実行コマンドを作成する)
- CI ワークフローのステップを追加する(ブロックせず、警告モードにする)
ステップ 5:標準の追跡情報を更新する
.project-standards.yaml を更新します。
standards_version: "2025.1"
last_configured: "[timestamp]"
components:
dead_code: "2025.1"
dead_code_tool: "[knip|vulture|deadcode|machete]"
dead_code_ci: true
ステップ 6:最終レポートを出力する
適用した変更の概要を出力し、可能であれば初回スキャンを実行して、検出結果を確認するための次の手順を提示します。
詳細な設定テンプレートと使用例については、REFERENCE.md を参照してください。
エージェント向け最適化
| コンテキスト | コマンド |
|---|---|
| 簡易コンプライアンスチェック | /configure:dead-code --check-only |
| すべての問題を自動修正 | /configure:dead-code --fix |
| Knip スキャン(JS/TS)を実行 | npx knip --reporter compact |
| Vulture スキャン(Python)を実行 | vulture . --min-confidence 80 |
| cargo-machete を実行(Rust) | cargo machete |
| CI モード(JSON 出力) | npx knip --reporter json |
フラグ
| フラグ | 説明 |
|---|---|
--check-only | 修正を提示せずに状態を報告します |
--fix | プロンプトを表示せずにすべての修正を自動適用します |
--tool <tool> | ツールの検出を上書きします(knip、vulture、deadcode、machete) |
例
# Check compliance and offer fixes
/configure:dead-code
# Check only, no modifications
/configure:dead-code --check-only
# Auto-fix with Knip
/configure:dead-code --fix --tool knip
エラー処理
- 言語を検出できない場合:適切なツールを判断できないため、エラーになります
- ツールのインストールに失敗した場合:エラーを報告し、手動でのインストールを提案します
- 設定が競合している場合:複数のツールについて警告し、統合を提案します
- 検出結果が多い場合:許可リストから始めることを提案します
関連項目
/configure:linting- lint ツールを設定します/configure:all- すべてのコンプライアンスチェックを実行します- Knip のドキュメント:https://knip.dev
- Vulture のドキュメント:https://github.com/jendrikseipp/vulture
- cargo-machete のドキュメント:https://github.com/bnjbvr/cargo-machete
コメント
Markdown 対応