check-invariants について
check-invariants は、機能設計やコード差分が、引用または関連するアーキテクチャ不変条件に従っているかを判定するスキルです。合否のゲートではなく、根拠付きの参考所見を返します。
主な機能
- 01不変条件に照らした設計・差分の評価
- 02引用された規則と明確な関連規則の確認
- 03遵守・違反・不明の判定
- 04各判定に具体的な根拠を提示
活用シーン
- 01実装前の機能設計レビュー
- 02コード差分における設計ルール違反の確認
- 03人による確認が必要な不明点の抽出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jayden-dang/ skills --skill check-invariantsインストール後、Claude Code で/check-invariantsを入力して読み込まれたか確認します。
詳細
不変条件の確認
設計(または差分)が、それが依拠するアーキテクチャの不変条件を守っているかを判定します。
これは trace の意味的な対となるものです。trace は、Respects: ARCH-N の参照が有効な不変条件を指しているかを、grep によって決定論的に確認します。つまり、不変条件が存在し、有効であるかを確認します。設計がそのルールを実際に守っているかは読み取りません。その判定を行うのがこのスキルの役割です。また、これは判定であるため参考情報です。判定結果はレビューの参考になりますが、マージを妨げる必須条件にはなりません。
確認対象がない場合
docs/architecture/ が存在しない場合、基盤となる構造はありません。その旨を一度だけ伝えて終了してください。このスキルは、アーキテクチャレイヤーを導入しているプロジェクトでのみ実行します。
入力
- アーキテクチャの基盤:
docs/architecture/INDEX.md(およびdocs/architecture/<domain>.md)。不変条件を読みます。それぞれは太字の**ARCH-N**ID と、1つの命令形のルールで構成されています。取り消し線付きの~~**ARCH-N**~~は廃止済みなので、無視してください。 - 対象:機能の
design.md、または差分(git diff <base>...HEAD)。対象にあるRespects: ARCH-Nの参照を収集します。差分の場合は、参照がなくても変更コードが明らかに関係する不変条件も考慮してください。
判定
参照されている不変条件(および、明らかに関連する参照のない不変条件)ごとに、ルールと設計/差分の内容を読み、次のいずれかの判定を返します。
| 判定 | 意味 |
|---|---|
| respects | 設計は不変条件と整合しています。 |
| violates | 設計が不変条件で禁じられていることを行っているか、不変条件で求められていることを省略しています。 |
| unclear | 設計が不変条件を明確に守っているとも、明確に破っているとも言えません。人による確認が必要です。 |
各判定には、不変条件と具体的な箇所(設計のセクション、ファイル、差分のハンク)を挙げた1行の根拠を付けてください。不変条件そのものを根拠として言い換えないでください。
出力
check-invariants (3 citations, spine: docs/architecture/INDEX.md)
violates ARCH-2 design.md §Cross-module sync calls the persistence module directly (invariant: only via the event bus)
respects ARCH-4 every write goes through the migration guard
unclear ARCH-5 can't tell from the design whether the cache is invalidated on write
不明確な判定も省かず、すべての判定を報告してください。不明確な判定こそが重要です。このスキルは調査結果を返すものであり、合格/不合格を判定するものではありません。violates に対する対応は、呼び出し元(code-review、execute-plan、establish-project)が決定します。