ディスククリーンアップ
ベトナム語で簡潔に話します。K = ~/.claude/skills/don-rac-o-dia。Windows、python (3.9+)。
厳格なルール
- 読み取り専用:
K/scripts内のスクリプトのみを実行します。ファイルの内容を開いたり、削除したり、クリーンスクリプトを実行したりしません。 - OneDrive / WPS Cloud / Dropbox / Pictures(画像ライブラリ)、外部ドライブ、ジャンクション/シンボリックリンク、アクセスが拒否されたディレクトリはスキップします。
- クリーンスクリプトの実行は、ユーザーが明示的に「実行して」と指示した場合のみ行います。「要確認」の項目は、実行前に各項目について確認を求めます。
- アーティファクトページにはマシンのパス(ユーザー名、プロジェクト名)が含まれます。プライバシーを守り、自動的に共有しないでください。
手順
- スキャン (1~3分、タイムアウト600000ミリ秒):
現在の作業ディレクトリがホーム外にある場合(例:python "K/scripts/scan_disk_usage.py" --html-out "<scratchpad>/disk-map.html" [--root <ホーム外のプロジェクトディレクトリ>]C:\codeやD:\Projects)、その最上位ディレクトリを指定して--rootを追加します。 スクリプトは以前の~/disk-report/sizes.csvを自動的に読み取り(sizes-previous.csvにコピー)、比較し、新しいファイルを書き込み、各アイテムのIDを含むサマリーを出力します。 - アーティファクトの公開: ファイル
<scratchpad>/disk-map.html(K/assetsのテンプレートとスキャンデータから自動生成)を公開します。~/disk-report/artifact-url.txtが存在する場合 → そのURLからアーティファクトを読み取り、urlを指定して公開し、古いリンクを維持します。- 存在しない場合 → 新しく公開し(
icon: "storage")、URLを~/disk-report/artifact-url.txtに書き込みます。
- ユーザーへの報告 (最大8行): 空き容量、"安全"の合計+最大3項目、"要確認"の合計、前回から増加した項目(ある場合)、アーティファクトリンク。注意:ページでチェック → スクリプトをコピー → PowerShellに貼り付け、またはチャットで項目名を言ってファイルを生成してもらいます。
- ユーザーがチャットで項目を選択した場合:
python "K/scripts/make_cleanup_script.py" <id> <id> ...→~/disk-report/cleanup-*.ps1のパスと各コマンドブロックのサマリーを表示します。実行はしません。 - ユーザーがクリーンアップを完了した後: 再度スキルを呼び出して再スキャンします。ページに変化量が表示されます。
ファイル
| ファイル | 役割 |
|---|---|
scripts/cleanup_rules.py | 既知のゴミの場所とプロジェクトディレクトリパターン(node_modules、.next、venv...)、クリーンコマンド、説明を含む辞書。新しいルールはここに追加します。 |
scripts/scan_disk_usage.py | 読み取り専用スキャン、sizes.csv との比較、scan.json の書き込み、HTML生成の呼び出し |
scripts/build_disk_map_html.py | assets/ とデータを組み合わせてページを生成します。UI修正後に scan.json から再構築するために単独で実行します |
scripts/make_cleanup_script.py | 選択されたIDに対する .ps1 ファイル(UTF-8 BOM)を生成します |
assets/disk-map-*.{html,css,js} | UI: トレマップ、チェックボックス付き推奨リスト、スクリプトコピーボタン |
出力先: ~/disk-report/: scan.json, sizes.csv, sizes-previous.csv, disk-map.html, cleanup-*.ps1, artifact-url.txt。
ルールの追加
RULES (cleanup_rules.py) 内の辞書: id、label、kind (cache | build | agent | docker | ai | files)、cat (SAFE = ツールが自動で再ダウンロード/再ビルド可能;REVIEW = 履歴、モデル、データが失われる)、paths (glob)、why (削除すると失われるもの)、および以下のいずれか: tool + cmd (公式クリーンコマンド)、cmd に {p} を含む(パスごとに実行)、manual (手順のみ印刷)、または空欄(ディレクトリを空にする)。手動削除よりもツールの公式コマンドを優先します。