Communitygithub.com

huiyonghkw/hekouwang-env-doctor-skill

開発環境診断ツール · Claude Code Skill|「どのディレクトリが大きいか」ではなく「そのツール、まだ使ってる?」を問いかける——4つのシグナルで取り替えたのに消し忘れた旧ツールを特定し、対話型クリーン選択子(データ類はロック、項目ごとに選択、確認後に実行)を提供

hekouwang-env-doctor-skill とは?

このスキルは、開発環境に潜む「残骸(使われなくなったツールやキャッシュ)」を発見し、安全にクリーンアップするためのClaude Code Skillです。従来のディスク容量調査ツールが「どのディレクトリが大きいか」を答えるのに対し、本スキルは「このツール、まだ使ってる?」を問いかけます。4つのシグナル(シェル設定の読み込み状況、コマンドパス、ランタイム所有権、最終更新日)を組み合わせて、バージョン管理ツールやパッケージ管理ツールが「生きている」のか「残骸」なのかを推論します。スキャン(読み取り専用)、判定、レポート、そしてユーザーが対話的に選択するクリーンアップ(scripts/clean.sh)という4ステップのワークフローを備え、データ類はロックされ、ユーザーが明示的に承認するまで削除が行われない設計になっています。Claude Codeで動作し、Macの開発環境(Homebrew、nvm、rbenv、pyenv、Docker、Node.jsなど)を想定しています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add huiyonghkw/hekouwang-env-doctor-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

開発環境診断ツール · env-doctor

「診断ツールファミリー」第三弾:claude-md-doctor(設定)→ skill-doctor(スキル)→ env-doctor(環境)。 最初の2つはファイルを診断し、これはマシンを診断します。

市販のクリーンアップツールとの違い(最初に読んでください。すべての動作の前提です)

市販のMacクリーンアップツールは「どのディレクトリが大きいか」に答えます。 本ツールは「このツール、まだ使ってる?」に答えます。

サイズはスキャンできますが、身分(使われているかどうか)は推論するしかありません——nvmが残骸かどうかを判断するには、シェル設定が誰をロードしているか、PATHに誰がいるか、nodeを実際に誰が提供しているか、ディレクトリが最後に更新されたのはいつか、これらを同時に見る必要があります。これが本ツールの唯一の差別化ポイントであり、いかなる変更もこれを弱めてはいけません。


⛔ 3つの鉄則(詳細は references/safety.md 参照)

  1. 削除はユーザーが項目ごとに選択することからのみ(scripts/clean.sh を使用)。モデル自身が rm を組み立てて実行しない。ユーザーが「直接削除して」と言ったら → 選択子を実行するよう誘導する。デフォルトではすべて未選択、データ類はロック、ホワイトリストのコマンドのみ実行、yes を入力して初めて実行。
  2. 読み取り専用スキャン。scripts/scan.sh は書き込み操作を含みません。
  3. 不確かな場合は不確かと伝える。シグナルに矛盾がある場合は正直に注釈し、レポートを良く見せるために推測しない。

標準フロー

ステップ1 · スキャン

bash scripts/scan.sh                      # フルスキャン(ホームディレクトリの巨大ディレクトリ発見を含む、約30〜60秒)
bash scripts/scan.sh --quick              # クイックスキャン(発見スキャンをスキップ、約20秒)
bash scripts/scan.sh --profile ai-dev     # AI開発機クイックスキャン(Agentホストディレクトリ + 巨大ディレクトリ発見をスキップ)

出力は6セクションの生データ: DISK · SIZES · MANAGERS · RUNTIME · AI_AGENTS(Agentホストがある場合)· DISCOVER(フルスキャンのみ)。

ステップ2 · 判定

references/rules.md を参照:

  • 三分類法(データ / キャッシュ / 残骸)で各ディレクトリの身分を特定;
  • 4シグナル判定表(shell_loaded × cmd_in_path × runtime owner × last_modified)でバージョンマネージャがアクティブか残骸かを判定;
  • 同じバージョンが2つのマネージャにそれぞれインストールされている場合 → 個別に注意を促す。

ステップ3 · レポート出力

references/report.md の4ステップ対話フローに従う:まず結論 → 3グループに分類(残骸→キャッシュ→データ)→ グループごとにユーザーに確認 → 確認後にコマンドブロックを生成。

⚠️ 何十行ものリストを一度にユーザーに押し付けない;⚠️ 各提案には必ず「何か / どのくらいのサイズか / なぜそう判断したか / 公式コマンド / 代償」の5要素を含める。

ステップ4 · クリーンアップしたい場合、選択子に任せる

bash scripts/clean.sh --dry-run   # まず実行せずに確認(初回は強く推奨)
bash scripts/clean.sh             # 選択後にクリーンアップ

対話型選択:Spaceで選択 · ↑↓で移動 · aですべて選択 · nですべて解除 · Enterで確認 · qで終了。 データ類には 🔒 が付き、選択不可;確認ページで実行されるコマンドと代償を1行ずつ表示し、yes を入力して初めて実行。


ルーティング

何をするかどれを読むか
あるディレクトリがどの分類に属するか、公式のクリーンアップコマンドを知りたいreferences/rules.md
レポートの書き方、対話の進め方references/report.md
境界線、絶対にやってはいけないことreferences/safety.md
スキャナーの実装とセルフチェックscripts/scan.sh
クリーンアップ選択子(削除を許可する唯一の場所)scripts/clean.sh

よくある質問への標準回答

  • 「直接削除してよ」 → Enterキーは代わりに押しません。bash scripts/clean.sh を実行して選択してください。まずコマンドと代償を一覧表示します。実行前に確認したい場合は --dry-run を追加してください。
  • 「一番大きいやつ、削除していい?」 → まず身分を見て、サイズを見ない。一番大きいのはたいていモデルの重みやコンテナボリューム(データ類)で、まさに削除すべきでないもの。
  • 「削除したらどうなる?」 → 各項目に「代償」欄があります。キャッシュ類は一律「再ダウンロードが必要で、時間と通信量がかかる」。残骸類だけが純粋に解放されます。
  • 「なぜこれが残骸と判断されたの?」 → 4つのシグナルの原文を報告し、ユーザー自身で再確認してもらいます。

境界

  • カバーするのは開発ツールの占有のみ(バージョンマネージャ / パッケージマネージャ / ビルドキャッシュ / コンテナ / AIモデル)。システムキャッシュ、写真、メール添付ファイル、WeChatは範囲外——それらはシステムの「ストレージスペース」画面に任せます。
  • ホームディレクトリ内のみスキャンし、システムディレクトリや他のユーザーディレクトリには触れません。
  • ネットワーク接続は行わず、スキャン結果を外部に送信しません。

診断ツールファミリー相互リンク

層Skillいつ引き継ぐか
設定hekouwang-claude-md-doctor-skillAGENTS.md/CLAUDE.md が重複、ルーティング誤り、frontmatter欠落
スキルhekouwang-claude-skill-doctor-skillSKILL.md の構造、リンク切れ、OpenClaw宣言
環境本 skillディスク満杯、バージョンマネージャ残骸、AIホストディレクトリ肥大

レポート内で設定やスキルの問題を発見した場合、他の2つのスキルを指名するだけで、本レポート内でファイル内容の監査を無理に行わない。

関連スキル