Imported from kazu728/dotfiles (
agents/.apm/skills/prune-review/SKILL.md). Install upstream withnpx skills add kazu728/dotfiles --skill prune-review. Copyright stays with the author.
prune-review
既存コードを厳し目にレビューし、削れるもの・歪んでいる構造を指摘する。 判断は、適用される規約(AGENTS.md 等)とユーザーの明示要求を優先し、その範囲内で、ツールのデフォルト挙動と1から設計した構造を基準に行う。 指摘するだけ。修正はしない(頼まれたら別途行う)。
対象の決め方
呼び出し元から比較元・対象の版・範囲が指定されていればそれを使い、下記の既定の選択で上書きしない。指定がなければ依頼から対象を決める。
- PR → PR の base と head の差分
- ブランチ・マージ前 → 基準ブランチとの差分。無関係な未コミット変更があっても範囲を切り替えず、対象外の変更があることだけ伝える
- staged・コミット予定 →
git diff --cached - パス指定 → そのパス。ファイル全体か差分かは依頼から判断し、読み取れなければ確認する
- リポジトリ全体 → 明示された場合だけ
依頼に範囲の指定がなければ、次の既定の手順で決める。一意に決まらない場合だけ確認する。
git status --porcelainで staged・unstaged・未追跡を確認する。差分の有無をgit diff HEADだけで判断しない。- 未コミット変更があれば、
git diff HEAD(作業ツリーの最終状態)と未追跡ファイルの内容を対象にする。未追跡ファイルは直接読み、git add -Nなど index を変更する方法は使わない。git diff HEADが空でも status に変更があれば staged と unstaged が相殺している。git diff --cachedとgit diffを個別に確認し、コミット予定の内容と最終状態のどちらを見るか依頼から決め、決まらなければ確認する。 - 未コミット変更がなければブランチ差分。比較元はユーザー指定、PR の base、upstream、リモートのデフォルトブランチ、ローカルの基準ブランチの順で確認し、
origin/mainに固定しない。一意に決まらなければ確認する。
失敗と例外を区別する。
git rev-parse --verify HEADが失敗するなら初回コミット前であり、全ファイルを新規として扱うか確認する。- 比較コマンドが失敗したら差分なしと混同せず、失敗として報告する。
- 差分が空なら、対象がないことを伝えて終える。リポジトリ全体へ自動的に広げない。
レビュー中に対象が変わったことを検知したら、指摘の位置と再現性を再確認する。
手順
- 下記の観点で精査する。差分だけでは是非を判断できない指摘(必要性・1から設計したらどうか)は、差分に閉じず周辺ファイルまで読んで判断する。
- 観点ごとに、該当箇所を
file:lineで引用して指摘を返す。
観点
容赦なく見る。良い点の列挙はしない。問題だけ挙げる。
- 全部必要か — 各要素の存在理由を疑う。設定はツールのデフォルト挙動で足りるなら上書きを削る。「無くても動く」ではなく、要求・観測可能な挙動・運用上の目的を維持したまま削れるかで判断する。
- 継ぎ足しの歪み — 論理的凝集の継ぎ足しで歪んだ構造を見つける。「1から設計したらこの形になるか」を基準に、ならない箇所を挙げる。
- 過剰・冗長 — 消せるコード、重複、分けすぎ/まとめすぎ。
- 残骸 — 使われていない・削除済み対象の残り、宙に浮いた配線。
出力の作法
- 問題が無ければ「指摘なし」と書く。ひねり出さない。
- 各指摘は
file:lineの引用とセットにする。引用できない指摘は書かない。 - 修正方針は1行添えてよいが、コードの書き換えはしない。