mcpField
C
cleanup-storage

cleanup-storage

github.com/efoo-team生产力041 次安装1 周前更新
代码仓库

关于 cleanup-storage

cleanup-storage 技能用于调查本地磁盘占用并引导安全清理。它实测候选项、按风险分类,删除前逐类征求批准,并在完成后比较磁盘空间。

主要功能

  1. 01使用 df 和 du 调查磁盘占用
  2. 02四级清理风险分类
  3. 03实测待删除项目大小
  4. 04按类别审批后再执行
  5. 05清理前后测量可用空间

适用场景

  1. 01查找大型生成文件和缓存
  2. 02删除前审查清理候选项
  3. 03仅删除已批准的类别
  4. 04清理后报告回收空间

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/efoo-team/skills --skill cleanup-storage

安装后在 Claude Code 中输入/cleanup-storage确认已加载。

附带文件agents/openai.yamlreferences/known-cleanup-targets.md

详细介绍

来自项目 README

Storage Cleanup(cleanup-storage)

ローカルマシンのストレージ逼迫を、調査 → 安全度分類 → カテゴリ別承認 → 削除 → 効果測定の順で解消するスキル。「うっかり消えた」を構造的に起こさないことを最優先にする。

原則(すべての Phase で有効)

  • 承認なくして削除なし: ユーザーが承認したカテゴリ以外に手を付けない。承認は Phase 3 のカテゴリ単位で得る
  • 測ってから提案する: 削除候補は必ず du で実測サイズを確認してから提示する。推測サイズで提案しない
  • 生成物だけを削除する: ツールが再生成・再取得できるものだけを削除対象にする。ユーザー作成物か生成物か判別できないものは L3(要確認)以上に分類する
  • 削除後に効果を測る: df の前後比較で回収量を報告する

Phase 1: 全体調査

進捗追跡のため、次のチェックリストを応答に貼って進める。

- [ ] Phase 1: 全体調査(df + du ドリルダウン)
- [ ] Phase 2: 安全度分類(L1〜L4)
- [ ] Phase 3: カテゴリ別提案と承認(Gate)
- [ ] Phase 4: 承認カテゴリの削除実行
- [ ] Phase 5: 効果測定と報告
  1. 全体像を記録する: df -h /System/Volumes/Data(macOS)/ df -h /(Linux)。この値が Phase 5 の比較基準になる

  2. ホーム直下の内訳: du -h -d 1 ~ 2>/dev/null | sort -rh | head -25

  3. 主要ディレクトリを個別測定する: du -sh ~/Library ~/Downloads ~/Documents ~/Desktop <リポジトリ置き場> 2>/dev/null | sort -rh(手順2だけでは欠落することがある。Gotchas 参照)

  4. 大きいディレクトリを du -h -d 1 <dir> 2>/dev/null | sort -rh | head -20 で再帰的にドリルダウンする(-d 2 も有効)

  5. リポジトリ置き場がある場合は生成物を横断集計する:

    find <repos> -type d -name node_modules -prune 2>/dev/null | xargs du -sk 2>/dev/null | awk '{s+=$1} END {printf "%.1f GB\n", s/1024/1024}'
    

Phase 2: 安全度分類

Phase 1 で見つかった削除候補を4カテゴリに分類する。定番の対象・削減コマンド・削除後の影響は references/known-cleanup-targets.md を読んで突き合わせる。

レベル定義例
L1再生成可能キャッシュ。削除しても次回自動再生成され機能損失なしpnpm store・Homebrew・Docker ビルドキャッシュ
L2再構築可能な生成物。削除後の初回利用時に再構築コスト(ダウンロード・ビルド)がかかるnode_modules・Docker イメージ・Playwright ブラウザ・30日超のエージェントセッションログ
L3おそらく不要だが、用途がユーザーにしか分からないものインストーラー / ISO・使わなくなったツールのデータ・tmp/ のテスト残骸
L4ユーザーデータ。削除対象にしない。退避(外部ストレージ・クラウド)の提案のみ行う撮影素材・レンダリング出力・Downloads 内の文書

Phase 3: カテゴリ別の提案と承認(Gate)

  1. L1 から順に、カテゴリごとに「対象パス・実測サイズ・使う削減コマンド・削除後の影響」を表で提示する
  2. カテゴリ単位でユーザーの承認を得る(選択式の質問ツールが使えるなら使い、無ければテキストで明示回答を待つ)
  3. 承認されたカテゴリだけを Phase 4 で削除する。回答を得るまで削除に着手しない
  4. L4 は承認の対象にしない(退避の提案のみ)。ユーザーが個別に「これを削除して」と明示した項目だけ削除してよい

Phase 4: 削除実行

  • 公式の削減コマンドがあるものはそれを優先する(pnpm store prune・docker image prune -a・brew cleanup 等)。rm より安全で、使用中のものを壊さない
  • rm を使う場合は rm -r(-f なし)を使う。-f は権限モードによって拒否される環境があり、自己所有ファイルの削除に必要になる場面もない
  • 「古いものだけ削除」は find <dir> -type f -mtime +30 -delete の形にし、除外すべきサブパス(メモリ・恒久データ)を -not -path で明示してから実行する
  • Git リポジトリ内のファイルを消す前に git check-ignore で追跡外であることを確認する(追跡中なら削除せずユーザーへ報告)

Phase 5: 効果測定と報告

  1. df を再実行し、Phase 1 の基準値との差分(回収量)を報告する
  2. 実行した削除の一覧(対象・回収量・削除後に必要な操作)を表で示す
  3. 削除しなかった大物(L3 未承認・L4)を「残る候補」として提示して終了する

Gotchas

  • du -h -d 1 ~ は macOS の TCC 保護ディレクトリ(Downloads・Documents・Desktop・Library)を黙って欠落させることがある。上位が小さいドットディレクトリばかりなら欠落を疑い、主要ディレクトリを明示パスで個別測定する
  • ~/.Trash と ~/Library の一部は、ターミナルに Full Disk Access が無いと読めない(Operation not permitted)。ゴミ箱は Finder で空にするようユーザーに促す
  • 設定ディレクトリがリポジトリへの symlink のことがある(例: ~/.claude → 設定管理リポジトリ)。その中のセッションログはリポジトリ側の実体を測り、.gitignore 済みであることを確認してから消す
  • Playwright ブラウザキャッシュ(ms-playwright)を消したら、報告に「次回 E2E 実行前に playwright install での再取得が必要」と含める
  • pnpm store prune は既存プロジェクトの node_modules に影響しない(実体が独立しているため)。削減量が大きくても異常ではなく、消えた分は次回 install 時に再取得される
  • Docker の実容量は docker system df で確認する。OrbStack はイメージ削除後にディスクイメージを自動圧縮するため、ホスト側の実容量回収は少し遅れて反映される

评论

支持 Markdown