dead-code について
dead-codeは、GitNexusのナレッジグラフでファイル間の関係を調べ、未使用の可能性があるコードを探すコマンドラインスキルです。コードベースの整理、リファクタリング後の確認、リリース前の点検に向いており、MCPサーバーは提供しません。
主な機能
- 01呼び出し元のない関数を検出
- 02信頼度の低いインポートを確認
- 03到達不能なコードを特定
- 04インポート関係のないファイルを検出
- 05誤検出を除外して分類レポートを作成
活用シーン
- 01定期的なコードベースの整理
- 02リファクタリング後の孤立コード確認
- 03リリース前のコード範囲の見直し
MCP 対応
GitNexus CLIを使うスキルで、MCPサーバーはありません。READMEでは`gitnexus://` URIを使ったMCPリソースの読み取りを明示的に禁止しています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill dead-codeインストール後、Claude Code で/dead-codeを入力して読み込まれたか確認します。
詳細
GitNexus デッドコード検出器
CLI のみ — MCP サーバーは存在しません。
gitnexus://URI に対してreadMcpResourceを絶対に使用しないでください。
GitNexus ナレッジグラフを使って、孤立した関数、宙ぶらりんのインポート、孤立したファイル、到達不能なコードを検出します。
自己進化型スキル:このスキルは使用を通じて改善されます。指示が間違っている場合、パラメーターにずれが生じた場合、または回避策が必要になった場合は、先送りせず、このファイルをすぐに修正してください。実際に再現できる問題に対してのみ更新してください。
使用する場面
- 定期的なコードベースの整理
- 対象範囲を縮小するためのメジャーリリース前
- リファクタリング後に新たに孤立したコードを探すとき
- 「使われていない関数はありますか?」
言語固有のデッドコードツール(vulture、knip、clippy)を使用する場合は、代わりに quality-tools:dead-code-detector を使用してください。このスキルでは、ファイル間の構造分析に GitNexus グラフを使用します。
ワークフロー
ステップ 0:事前確認 — CLI を呼び出せることを確認する
gitnexus バイナリは npm/mise 経由でインストールされます。現在のプロジェクトで node が有効になっていない場合、mise のシムが失敗することがあります。gitnexus コマンドを実行する前に、この事前確認を実行してください。
# Test if gitnexus is actually callable (not just a broken shim)
gitnexus --version 2>/dev/null || mise use [email protected]
以下のすべてのコマンドはリポジトリのルートから実行します。ワークスペース内に複数のリポジトリがインデックスされている場合は、対象を指定するために --repo <repo-name> を追加してください。それ以外の場合、--repo は省略できます。
ステップ 1:インデックスが古い場合は自動で再インデックスする
gitnexus status
古い場合(インデックスされたコミット ≠ HEAD)、処理を続ける前に自動で再インデックスしてください。ユーザーに尋ねないでください。
gitnexus analyze
その後、インデックスが最新であることを確認するため、ステータスを再確認してください。
ステップ 2:Cypher クエリを実行する
以下の 4 つのクエリを実行し、さまざまな種類のデッドコードを検出します。
孤立した関数
CALLS エッジの入力がなく、どのプロセスにも参加していない関数:
gitnexus cypher "MATCH (f:Function) WHERE NOT EXISTS { MATCH ()-[:CALLS]->(f) } AND NOT EXISTS { MATCH ()-[:STEP_IN_PROCESS]->(f) } RETURN f.name, f.file, f.line ORDER BY f.file LIMIT 50"
宙ぶらりんのインポート
信頼度が低い(< 0.5)インポートエッジ。参照が壊れている可能性があります。
gitnexus cypher "MATCH (a)-[r:IMPORTS]->(b) WHERE r.confidence < 0.5 RETURN a.name, b.name, r.confidence, a.file ORDER BY r.confidence LIMIT 30"
デッドコード(到達不能)
どのエントリーポイントからも到達できない関数。呼び出し元がなく、どのプロセスにも属していません。
gitnexus cypher "MATCH (f:Function) WHERE NOT EXISTS { MATCH ()-[:CALLS]->(f) } AND NOT EXISTS { MATCH ()-[:STEP_IN_PROCESS]->(f) } AND NOT f.name STARTS WITH '_' AND NOT f.name STARTS WITH 'test_' RETURN f.name, f.file, f.line ORDER BY f.file LIMIT 50"
孤立したファイル
インポートの入力も出力もないファイル:
gitnexus cypher "MATCH (f:File) WHERE NOT EXISTS { MATCH (f)-[:IMPORTS]->() } AND NOT EXISTS { MATCH ()-[:IMPORTS]->(f) } RETURN f.path ORDER BY f.path LIMIT 30"
ステップ 3:結果を絞り込む
誤検出を除外します。
- テストファイル(
**/test_*、**/tests/*、**/*_test.*)— テスト関数は正当に「呼び出されていない」場合があります __init__ファイル — 正当に空である場合や、再エクスポートに使われている場合があります- エントリーポイント(
main、cli、__main__)— 他のコードではなく、ランタイムから呼び出されます _で始まるプライベートヘルパー — 動的ディスパッチ経由で使われている場合があります
ステップ 4:構造化レポート
モジュール/ディレクトリごとに分類して提示します。
## Dead Code Report
### Orphan Functions (N found)
| Function | File | Line |
|----------|------|------|
| ... | ... | ... |
### Dangling Imports (N found)
| Source | Target | Confidence |
|--------|--------|------------|
| ... | ... | ... |
### Isolated Files (N found)
- path/to/file.py
- ...
### Summary
- Total orphans: N
- Total dangling: N
- Total isolated: N
注意事項
- 結果はインデックスの鮮度に依存します。結果が正しくないように見える場合は、再インデックスしてください
- グラフが取得するのは静的な関係のみです。動的ディスパッチ、リフレクション、プラグインの読み込みによって誤検出が発生する場合があります
- この構造的な分析を補完する言語固有の分析(vulture、knip、clippy)には、
quality-tools:dead-code-detectorを使用してください
実行後の振り返り
このスキルの完了後、タスクを終了する前に振り返ってください。
- 自分の場所を特定する。 — 編集する前に、この SKILL.md の正式なパスを見つけてください。
- 何が失敗したか? — 原因となった指示を修正してください。
- 予想以上にうまくいったことは? — 推奨される実践方法として取り入れてください。
- 何にずれが生じたか? — 現状に合わなくなったスクリプト、参照、依存関係を修正してください。
- 記録する。 — きっかけ、修正内容、根拠を含む進化ログのエントリーを追加してください。
先送りしないでください。次回の実行では、ここに残した状態が引き継がれます。