kstack-drift-review
Installation
SKILL.md
kstack-drift-review
文書に書かれた内容を実装と突き合わせ、食い違い(ドリフト)を指摘する。人も agent も、コードを読む前に文書を信じて動く。AGENTS.md は毎回の session に読み込まれる。ずれた文書を読んだ側は、ずれた前提のまま作業する。
手順
- 対象を決める — 依頼でファイル・範囲・設計書を指定されたらそれに従う。指定がなければ未コミットの変更(
git diff HEADと untracked ファイル)、それも無ければ base branch との差分(git diff <base>...HEAD)を対象にする。repo 全体は、全体を見るよう頼まれたときだけ対象にする。完了条件: 対象(変更のファイルと変更行、設計書、または repo 全体)が確定している - 文書を集めて分ける —
git ls-filesで全階層のAGENTS.md・CLAUDE.md・README.mdとdocs/以下を列挙し、それらが参照する文書(.claude/rules/*.mdなど)を足す。path と冒頭を見て、各文書を「現行」か「記録」に分ける(下の「判断の目安」)。完了条件: 列挙した全文書が現行・記録のどちらかになっている - 現行の文書を読む — 現行の文書を全文読む。対象が変更か設計書なら、対象が触れるファイルの祖先ディレクトリに無い
AGENTS.md・CLAUDE.md・README.mdは、対象が触れる名前(パス、関数、コマンド、環境変数、endpoint。変更前の名前も含む)で grep して、当たったものだけ読む。完了条件: 現行の文書がすべて「読んだ」か「grep で無関係」になっている - 主張を抜き出す — 読んだ文書から、実装と照らして真偽を決められる記述(主張)を
文書:行付きで抜き出す。コマンド・script、パス・ディレクトリ構成、API(endpoint、関数、型、signature)、環境変数・設定値、依存とバージョン、処理の流れと挙動、規約(〜する・〜しない)が当たる。対象ごとの範囲は次のとおり。完了条件: 範囲の主張がすべて一覧になっている- 変更: 変更が触れた名前・挙動・設定についての主張と、文書の変更された行の主張
- 設計書: 設計書のすべての主張と、設計どおりに実装すると古くなる現行の文書の主張
- repo 全体: 現行の文書のすべての主張。規約は grep や設定で確かめられるものに絞り、絞ったことを「確認済み」に書く
- 実装と突き合わせる — 主張ごとにコードと設定(
package.jsonの scripts、mise の tasks、CI、環境変数の定義など)を読み、「一致 / ドリフト / 要確認」を付ける。規約は、対象の実装(設計書なら、書かれたとおりに作った後の実装)が従っているかを見る。網羅を示す一覧(環境変数の表、コマンド一覧、endpoint 一覧、ディレクトリの tree)は、対象の実装にあるのに載っていないものも探す。完了条件: すべての主張に判定が付いている - 報告する — 下の形式で並べる。文書もコードも書き換えず、user が修正を頼んだときだけ直す
現行の文書が多く、subagent が使える環境なら、手順 3 以降を文書単位で分担してよい。