提案ではなく、
守られるルール。
AIコーディングエージェントのためのルールと制約です。ひとつひとつがスコープ、優先度、強制レベルを持つため、必須の要件が好みと同じ重さで届くことはありません。
金額はセント単位の整数で保存する。
- スコープ
- /services/billing配下だけ
- 強さ
- スコープ内なら常に送る
- 違反したとき
- 一致する編集は反映前に拒否される
スコープは解決済み。優先度は未解決。
- セキュリティのルールがスタイルの助言のように読まれる
- 40ターン目には重みが変わる
- 間違いを説明できても、防ぐことはできない
- ルール自体の履歴が残らない
- サービスキーを絶対にリリースに含めないhigh, strict
- 金額はセント単位の整数high
- 名前付きエクスポートを優先するlow
- services/billing/checkout.ts
- ルールごとに優先度を持つ
- 当てはまる場所でだけ発動する
- 強制ルールは編集を拒否できる
- バージョン管理され、レビューできる
指示ファイルでも、今はルールをフォルダーに向けられます。それでもAnthropic自身のドキュメントは、指示ファイルを「context, not enforced configuration」(強制される設定ではなく、コンテキスト)と位置づけ、必ず守らせたいものにはフックを勧めています。
高い優先度は、予算です。
すべて高
- 高、常に送る
- 96
- 中、関係するときに
- 0
- 低、余裕があるときに
- 0
ほとんど中
- 高、常に送る
- 5
- 中、関係するときに
- 28
- 低、余裕があるときに
- 16
ルールの半分が高い優先度なら、どれも高い優先度ではありません。既定は中にして、違反が引き起こすインシデントを具体的に挙げられるときだけ優先度を上げましょう。
強制ルールがブロックできる場所。
Claude Codeでは、編集がブロックされます。
理由 pathrule setupがPathruleのフックを登録し、編集の実行前にチェックします。
理由 Claude Codeと同じフックが、すべての編集と書き込みの前後で動きます。
理由 Cursorのルールと並んで、ツールのフックが各編集の前後で動きます。
理由 CLIとVS Code拡張機能が、Copilotがフックを実行する場所にフックを登録します。
理由 Windsurfにはフックがないため、ブロックの起点となる書き込み前のイベントがありません。
理由 ホスト型のエンドポイントはフックをインストールしません。ルールはコンテキストとして届きます。
決めるのはルールではなくクライアントです。書き込み前のフックがある場所では、承認済みのブロックパターンを持つ強制ルールが一致する編集を止め、自分を理由として示します。
そもそもルールですか?
- 答えが「場合による」で始まりますか?エージェントが状況に照らして判断すべきものです。メモリに書く
- 誰かが何度も繰り返す手順ですか?個々のステップより、順番のほうが重要です。スキルに書く
- 譲れないものですか?スコープ、優先度、強制レベルを決めましょう。それはルールです
好みをルールとして書くと、ほかのすべてのルールの信頼性が削られます。
よくある質問
AIエージェントのルールとは何ですか?
AIコーディングエージェントが、定められたスコープの中で従わなければならない制約です。ルールはスコープの種類(folder、file_type、project)、優先度(high、medium、low)、強制レベル(advisoryまたはstrict)を持ち、それらの組み合わせで、どこに適用されるか、どれだけ強く表に出るか、何かが違反したときに何が起きるかが決まります。
ルールとメモリの違いは何ですか?
メモリはここで何が正しいかを示し、エージェントはそれを状況に照らして重みづけします。ルールは起きてはならないことを示し、交渉の余地はありません。正直な答えが「場合による。エージェントが考えるべきだ」なら、代わりにメモリを書いてください。それをルールとして書けば、ほかのすべてのルールの信頼性を削ることになります。
AIエージェントがルールを無視するのはなぜですか?
たいていは、長い指示ファイルの中で無関係なガイダンスと競合しているか、スコープが間違っていて重要なパスで発動しないか、好みとして書かれているために正しく重みを下げられているかのいずれかです。解説記事:Cursorのルールが黙って無視される理由とClaude CodeがCLAUDE.mdを無視する理由。
ルールで実際に変更をブロックできますか?それとも助言だけですか?
どちらも可能で、クライアントによって決まります。承認済みのブロックパターンを持つ強制ルールはローカルのPathruleフックで確認され、フックは該当する編集を反映前に拒否し、理由としてそのルールを示します。Pathrule CLIとVS Code拡張機能は、Claude Code、Codex、Cursor、GitHub Copilot向けにこのフックを登録します。WindsurfとRemote MCPでは、ルールはコンテキストとして届き、ブロックの拠り所となる書き込み前のイベントがありません。
高優先度にすべきルールは、どれくらいの数ですか?
ごく少数です。高優先度は、スコープが一致すれば常に注入されるという意味なので、予算のようなものです。ルールの半分が高優先度なら、どれも高優先度ではありません。違反がバグ、セキュリティの後退、コンプライアンスの問題につながるものに限って使い、それ以外はmediumをデフォルトにしてください。
CursorのルールやCLAUDE.mdとは何が違うのですか?
CursorのルールもClaude Codeのルールもパス単位でスコープでき、どちらの製品もフックを提供しています。Pathruleは各ルールを、スコープ、優先度、強制レベルとともに1つのワークスペースのソースに保存し、タスクに合わせて選び、Claude Code、Codex、Cursor、GitHub Copilot、Windsurfに送ります。比較:Pathrule vs CursorのルールとPathrule vs 指示ファイル。
既存のルールファイルは削除しなければなりませんか?
いいえ。Pathruleはそれらの上に位置します。CLAUDE.md、AGENTS.md、.cursorrulesは、得意なこと、つまりリポジトリ全体の定数を引き続き担います。Pathruleは、それらのファイルではうまく表せないパス単位の制約を運びます。
同じルールを複数のパスに適用できますか?
はい。ルールは再利用できます。1つのルールオブジェクトを複数のノードに紐づけられるので、共通の制約はディレクトリごとにコピーするのではなく、一度だけ書いてレビューできます。書き方の詳細はルールを書くで説明しています。