プロジェクト監査。「監査して」「audit」「/audit」で発火。設計/UX/品質/テストなどの観点でコードベース全体を監査し、課題をissuesディレクトリに書き出す。実行ログで重複実行を防止。特定の差分・コミットのレビューには使わない(codex-review / cross-review を使う)。
cleanup-tmp-dir
一時領域 (/private/tmp の Claude Code の作業場所・$TMPDIR・dotfiles の tmp/) に溜まったものを bin/tmpclean で数え、消す候補を種類ごとに見せて、ユーザーが承認した plan の古くて使用中でないものだけをゴミ箱へ移す (dotfiles の tmp/ は別の承認を取って make clean-tmp で消す)。
「/tmp を掃除して」「一時ファイルを片付けて」「TMPDIR が溜まっていないか見て」「cleanup-tmp-dir」で発火。消す前に必ず承認を取る。
含まれるファイル(1)
- SKILL.md6.6 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
cleanup-tmp-dir — 一時領域の掃除
一時領域に件数が溜まると、起動時の削除が長引いて再起動が遅くなるとされる (_claude/CLAUDE.md「一時ファイルの配置」)。
判定と移動は bin/tmpclean だけが行う (本体と守りの一覧・検出しないものは src/tmpclean/README.md)。
🚨 一時領域を自分で rm / mv / find -delete しない。生きているセッションの scratchpad を消すとそのセッションが壊れ、
見分けは tmpclean が層を重ねて行う。浅い場所を直接消す形は PreToolUse の hook (_claude/hooks/deny-tmp-area-rm.sh) が止める。
| 種類 | 場所 | 扱い |
|---|---|---|
session | Claude Code の scratchpad (/private/tmp/claude-<uid>/<project>/<session-id>/) | tmpclean。既定は 7 日より古いもの |
tmpdir | $TMPDIR の直下 | tmpclean。既定は 3 日より古いもの |
repo-tmp | dotfiles の本体 checkout の tmp/ | make clean-tmp (既定 30 日)。dotfiles 以外の repo の tmp/ は容量を見せるだけ |
$TMPDIR の直下の空の TemporaryDirectory.* (Swift のツールチェーンが残す。issue 851) は、この skill を通さずに SessionStart hook
(_claude/hooks/tmpdir-swift-sweep.sh) が 1 日 1 回 tmpclean sweep で消す。手順 2 の数で TemporaryDirectory. が多いときは、
先に ~/.cache/dotfiles-tmpdir-sweep/sweep.log で sweep が走っているか (rc= と removed=) と、last.json に limit があれば
それ (消すのを止めている一番古い Swift のツール) を見せる。
手順
-
置き場を決める:
skill-tmpdir cleanup-tmp-dirが返す絶対パスを<D>とし、以降はリテラルで書く -
数える:
tmpclean count > <D>/count-before.txt 2>&1(読み取りのみ。手順 6 で前後を並べるので残す)。あわせてdu -sh <本体>/tmp(<本体>は<D>の 3 つ上の dir)。dotfiles (<本体>/scripts/clean_tmp.shが在る) ならmake -C <本体> clean-tmp DRY_RUN=1も取る。 それ以外の repo ではmake clean-tmpを打たず、容量を見せるだけにする (同名の target がDRY_RUNを解釈するとは限らない) -
候補を作る:
tmpclean plan -kinds session,tmpdir -out <D> > <D>/plan-out.txt 2>&1; echo rc=$?(何も動かさない)。候補は 1 件 1 行で出るので ファイルに落とし、id:とplan:の行、candidates.<種類>:の件数、kept (<理由>): <件数>を読む。lsofの全体を取るので 30〜60 秒かかる。 rc≠0 なら止まった理由が出力の止めた:の行にある (rc=2 = 生きている claude を見分けられない等、rc=3 = 実行環境の失敗)。理由を伝えて先へ進まない -
見せて承認を取る: AskUserQuestion で「この plan (ID と種類ごとの件数) を移してよいか」を聞く。選択肢は「移す」と「移さない」。 「移す」の説明に ID・種類ごとの件数・失うもの・移し先 を書く:
- 失うもの: 終わったセッションの scratchpad (
--resumeで再開したときの作業ファイル)、$TMPDIRの古いテストの残骸とアプリの一時ファイル - 移し先:
~/.Trash/tmpclean-<日時>-<ID>/(Finder から戻せる。容量はゴミ箱を空にするまで減らない) - 所要: 件数 × 0.3 秒 (1 件ごとに
lsofを取り直す)。🚨 数万件なら数時間かかる (12 万件で約 8 時間。2026-10-21 実測)。$TMPDIRと scratchpad だけなら、再起動 (起動時に macOS が消す) の方が早いと添える repo-tmpも扱うなら別の質問にする。🚨 こちらはゴミ箱を経由せず消す (戻せない) と説明に書く。make clean-tmp DRY_RUN=1の件数と、grep -rn 'tmp/' <本体>/issues <本体>/_claudeで issue や doc が指しているパスを見せる。plan の ID に結び付かないので、承認の直後に打つ
回答が無い・取れない・「移さない」なら、何も移さずに終える。種類を絞りたいと言われたら、
-kindsを変えて手順 3 からやり直す (plan を手で書き換えない) - 失うもの: 終わったセッションの scratchpad (
-
移す: 承認された plan だけを
tmpclean apply -plan <plan のパス> -approve <ID> -json > <D>/apply-<ID>.json 2> <D>/apply-<ID>.err; echo rc=$? > <D>/apply-<ID>.rc。 候補が数百件を超えるなら Bash ツールのrun_in_backgroundで走らせ、完了の通知の後に.rcと.jsonを読む (1 件ごとにlsofを取り直すので 1 件 0.3 秒ほど。通知そのものは rc を保証しない)。plan は作ってから 1 時間で使えなくなる: rc=2 で「plan が古い」と出たら手順 3 から作り直し、 新しい ID で承認を取り直す (古い ID の承認を流用しない)。repo-tmpは別の質問で承認されたときだけ、打つ直前にmake -C <本体> clean-tmp DRY_RUN=1を取り直して見せた一覧から増えていないかを確かめ、make -C <本体> clean-tmp DAYS=30を打つ (増えていたら、増えた分を見せて承認を取り直す) -
報告する: apply の終了コードで読む。0 = 走り切った / 1 = 移せなかったものがある (JSON の
failed) / 2 = 前提の検査で止めた (何も移していない) / 3 = 実行環境の失敗 / 4 = 途中で止めた (一部は移した。止まった理由は JSON のstopped)。3 と 4 は何を移したかをmoved-<ID>.jsonlで確かめる。 plan を読む段で止まったとき (古い plan・ID の不一致) は.jsonが空で、理由はapply-<ID>.errの止めた:の行にある。 移した件数 (moved)・残した理由ごとの件数 (kept)・移し先を出し、tmpclean countを取り直してcount-before.txtと前後を並べる。 何をどこへ移したかは<D>/moved-<ID>.jsonl。手で消すのが続くようなら、溜めている元 (テストの後始末の漏れ) を 1 行で添える
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
コメント
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
同じリポジトリのスキル
AVFoundation (AVPlayer / AVPlayerLayer / AVPlayerItemVideoOutput / AVAsset) の落とし穴・文書化されていない実装挙動・debugging チェックリストを集約した reference skill。Swift / Objective-C で AVPlayer を使った動画再生 / seek / scrub / frame stepping を実装・debug するときに発火。VLCKit ではなく **AVFoundation 系** の問題に特化。
このセッションで行った変更をコミットする。「コミットして」「commit」「/c」で発火。push はしない/クレデンシャルは混入させない。
ディレクトリ・レイヤーごとに置いた CLAUDE.md と README.md が実体 (コード・コマンド・構成) とずれていないかを点検し、裏の取れた乖離だけを直す。引数で対象のディレクトリを任意に指定できる (省略時は repo 全体)。「CLAUDE.md を refresh して」「README が古くないか見て」「claude-md-refresh」「/claude-md-refresh」で発火。issues/ の更新漏れは issue-writeback / issue-sync の担当で、この skill は扱わない。
Codex が設計・実装を担い、Claude が要件確定・成果物の検証・反復・commit/push を管理する。「codex に書かせて」「codex メインで実装」「codex-drive」で発火。大きめの機能・移植・プロトコル実装向け。余剰トークンを厚く使う運用も選べる。
タスク着手時に codex にリードしてもらうワークフロー。codex に設計/方針を主導(リード)させ、その方針に沿って Claude が実装し、実装後は codex で設計適合・実装正当性・敵対的(red team)の 3 観点でレビューする。余っている codex トークンを積極的に消費したい時に使う。「codexにリードしてもらって」「設計から codex に任せて」「タスクを codex 主導で」「codex-lead」「/codex-lead」で発火。