ルールとして作成
各ルールは条件(例:amountUsd >= 5000)と効果 — allow、deny、require_approval — および優先度で構成されます。再デプロイは不要で、ルールはランタイムが実行ごとに読み取る、テナントにスコープされたデータです。
allow、deny、require_approval のルールを一箇所で作成し、あらゆる判断を本番反映前にシミュレートし、すべての変更をゴールデンポリシーテスト群でゲートします。ルールの編集が、エージェントに許可された範囲を静かに変えてしまうことはありません。
deny > require_approval > allow · リリース前にシミュレーション · ゴールデンテストがすべての変更をゲート
Cortex のガバナンスは、優先度付きのルール群です。各ルールは条件と、allow・deny・require_approval のいずれかの効果を持ちます。ランタイムは実行のたびに優先度順で評価し、常に最も制限の強い効果が優先されます:deny は require_approval に、require_approval は allow に勝ります。ルールはデータであるため、リスク・コンプライアンス部門が直接作成・変更でき、すべての変更はエージェントに届く前にテストできます。
各ルールは条件(例:amountUsd >= 5000)と効果 — allow、deny、require_approval — および優先度で構成されます。再デプロイは不要で、ルールはランタイムが実行ごとに読み取る、テナントにスコープされたデータです。
ルールは優先度順に適用され、無効なルールはスキップされ、一致したものの中で最も厳格な効果が優先されます:deny > require_approval > allow。ガバナンスの既定は許可ではなく、常に慎重側です。
任意のコンテキストを稼働中のルール — または未保存の候補セット — に通すと、判定とルール単位のトレースが返るため、保存する前にどのルールがなぜ発火したかを正確に確認できます。
ゴールデンポリシーテストは、維持すべき判定を固定します。候補ルールセットに対して実行し、1件でも失敗すればリリースすべきでないと分かります — ガバナンス自体のリグレッションゲートです。
ガバナンスが散在する if 文とプロンプト文言の中にあると、善意のルール変更が、すべてのエージェントの権限を静かに広げてしまうことがあります — そして気づくのは監査のときです。Policy-as-Code はルールを明示的なデータにし、リリース前に判断をプレビューでき、ゴールデンケースを1件でも壊す変更は受け付けません。稼働中の判断とシミュレーションは同じエンジンで動くため、テストした内容がそのまま実行されます。
純粋な単一エンジン — evaluateRules(rules, context) — が、すべての実行とすべてのシミュレーションを判断します。この共通経路こそが、シミュレーションを信頼できるものにします。プレビューと本番の判断は、同じコードで行われます。
条件と効果 — allow、deny、require_approval — を優先度とともに記述します。優先度の小さいものから評価され、無効なルールはスキップされます。ルールはデプロイではなく、テナントにスコープされたデータです。
稼働中のルール、または未保存の候補セットに対して、コンテキストを /simulate に POST します。効果、一致したルール、理由、ルール単位の完全なトレースが返るため、変更が本番になる前にプレビューできます。
既知のケースをゴールデンテストとして固定します(コンテキスト → 期待される効果)。候補ルールセットに対して実行し、1件でも失敗すればリグレッションです — リリースしないでください。
候補セットが合格すると、それが稼働ポリシーになります — アイデンティティ、予算、trust ledger と並んで、同じフェイルクローズのランタイム内で実行ごとに評価されます。
amountUsd >= 5000 に require_approval のルールを固定して、シミュレートします。$7,400 の支払いは require_approval を返し、一致したルールと理由がトレースに残ります。$100 の支払いは、一致するルールがないため allow を返します。推測は不要です — シミュレーションは、本番をゲートしているのとまったく同じエンジンで動きます。
候補となるルールセットを /tests/run に送ると、Cortex は何も保存せずに、すべてのゴールデンケースをそのルールセットで評価します。単純にすべてを拒否する候補は、allow を期待するケースで失敗します — ゲートが、出荷すべきでないと教えてくれるのです。重要な判断を一度固定しておけば、以後の編集がそれを静かに変えることはできません。run エンドポイントは、変更のたびに実行する手動ゲートです。
Policy-as-Code は、アイデンティティ、アクション、オーバーサイト、台帳と同じフェイルクローズ・ランタイムにおける一つのゲートです。各スポークをたどってご確認ください。
ルールが require_approval を返すと、アクションは承認インボックスに入ります — 管理者が承認するまで pending_approval のままで、自動実行されることはありません。
5つの自律モードが、エージェントが単独でどこまで実行できるかを定めます — リスクゲートは下限であり、ポリシーは厳しくはできても緩めることはできません。
すべてのポリシー判定は、署名付きでオフライン検証可能なレシートとともに、ハッシュチェーン化された改ざん検知可能な監査証跡に記録されます。
エージェントは許可リスト化されたモデルとアクションを持つ統制されたアイデンティティです — ポリシーは実行ごとに、アイデンティティはエージェントごとに決めます。
オブジェクト・プロパティ・アクションの権限により、ポリシー条件は単なる生のフィールドではなく、実際の業務上の意味に基づいて評価できます。
ルール数とテスト数の実数が KPI と CSV 行として表示され、ポリシー資産全体の状態を1か所で監視・エクスポートできます。
既定は拒否の評価、最も制限の強いルールが優先される優先順位、管理者ゲート付きのルール変更、そしてすべての判断に付くルール単位のトレース — 監査人がすでに用いるフレームワークにマッピングされています。
エージェントのガバナンスを、テスト可能でシミュレート可能なポリシーに落とし込む — ルールの変更が、エージェントに許可された範囲を静かに変えることはなくなります。