check について
check は、SPEC.md とコードの乖離を報告する読み取り専用スキルです。不変条件、インターフェース、タスク状態を監査し、ファイル位置付きの根拠と対処のヒントを示しますが、ファイルは変更しません。
主な機能
- 01仕様の不変条件を監査
- 02インターフェースと実装を比較
- 03タスク状態をコードと照合
- 04ファイル位置と根拠を報告
- 05対処のヒントを提示し変更は行わない
活用シーン
- 01ビルド後に不変条件を確認
- 02仕様にないインターフェース変更を発見
- 03完了タスクの申告を監査
- 04出荷前に仕様との乖離を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ juliusbrussee/ cavekit --skill checkインストール後、Claude Code で/checkを入力して読み込まれたか確認します。
詳細
check — ドリフトレポート
診断のみです。違反を報告します。何も書き込みません。対処方法はユーザーが決定します。
仕様がコードからいつの間にか乖離することが、SDD で最も多い失敗パターンです。check はその検出ツールです。各 /build の後とリリース前に実行してください。ここで検出したドリフトは差分ですが、本番環境で検出したドリフトは §B です。
LOAD
SPEC.mdを読み込みます。見つからない場合は「仕様がないため、チェック対象もありません」と表示して終了します。- 呼び出し引数を解析します。
§V→ 不変条件のみをチェックします(デフォルト)§I→ インターフェースをチェックします§T→ タスクのステータスとコードを照合します--all→ 3 つすべてをチェックします
CHECK §V — 不変条件
各 V について、以下を実行します。
- 不変条件を、検証可能なコード上の主張に置き換えます。
- 関連ファイルを grep するか、読み込みます。
- 次のように分類します。HOLD/VIOLATE/UNVERIFIABLE
- アドレスとファイル名:行番号の証拠を記録します。
CHECK §I — インターフェース
各 I 項目について、以下を実行します。
- 実装箇所を特定します。
- 次のように分類します。
- MATCH — コード上の構造と仕様上の構造が一致しています。
- DRIFT — 実装は存在しますが、構造が異なります。
- MISSING — 実装がありません。
- EXTRA — コードが §I にないインターフェースを公開しています。
CHECK §T — タスク
各 T について、以下を実行します。
xの場合は、申告された作業が存在することを確認します。~の場合は、進行中として記録します。.の場合は、保留中として記録します。- 証拠のない
xの行には、STALE のフラグを付けます。
REPORT
簡潔に。重大度ごとにまとめます。
## §V drift
V2 VIOLATE: auth/mw.go:47 uses `<` not `≤`. see §B.1.
V5 UNVERIFIABLE: no test covers ∀ req path.
## §I drift
I.api DRIFT: POST /x returns `{result}` not `{id}`. route.go:112.
I.cmd MISSING: `foo bar` absent from cli/*.go.
## §T drift
T3 STALE: status `x`, no middleware file exists.
## summary
2 violate. 1 missing. 1 stale. 1 unverifiable.
next: spec skill with `bug:` or fix code at cited lines.
REMEDY HINTS(アクションではありません)
各分類について、レポートの末尾に 1 行のヒントを記載します。
- VIOLATE / DRIFT → 仕様スキル
bug: <V.n>を呼び出すか、コードを修正します。 - MISSING → タスクが存在する場合は、§T.n に対してビルドスキルを呼び出します。存在しない場合は、仕様スキル
amend §Tを呼び出します。 - STALE → 仕様スキル
amend §Tを呼び出してチェックを外します。 - EXTRA → 仕様スキル
amend §Iを呼び出して文書化するか、コードを削除します。
修正を呼び出してはいけません。レポートのみです。
NON-GOALS
- 書き込みは一切行いません。SPEC.md の編集も、コードの編集も行いません。
- サブエージェントは使いません。メインスレッドが読み込みます。
- スコアや評価はありません。項目ごとに二択です。不変条件を満たすか、ドリフトしているかです。
コメント
Markdown 対応