mcpField
C
check-invariants

check-invariants

github.com/jayden-dangテスト・品質135 回インストール3 日前に更新
リポジトリ

check-invariants について

check-invariants は、機能設計やコード差分が、引用または関連するアーキテクチャ不変条件に従っているかを判定するスキルです。合否のゲートではなく、根拠付きの参考所見を返します。

主な機能

  1. 01不変条件に照らした設計・差分の評価
  2. 02引用された規則と明確な関連規則の確認
  3. 03遵守・違反・不明の判定
  4. 04各判定に具体的な根拠を提示

活用シーン

  1. 01実装前の機能設計レビュー
  2. 02コード差分における設計ルール違反の確認
  3. 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)が決定します。

コメント