GROUND IMMUNE Guard
エージェントの操作には判定を返す。
証拠が足りないとき、黙って許可しない。
AI エージェントの操作を、明示した範囲と証拠に照らして判定する、ローカルのスコープ検査です。判定は ADMITTED、DENIED、UNRESOLVED の三値。証拠が足りないときは UNRESOLVED であり、許可とはみなしません。
2026年11月18日(水)17:01 JST、Product Hunt で公開予定。
三つの判定
- ADMITTED
範囲内で、必要な証拠がそろっている。Broker に渡され、1回だけ実行されます。
- DENIED
明示した範囲の外。実行しません。
- UNRESOLVED
証拠がない、判定の再利用、対象の差し替えなど。実行せず、許可としても扱いません。
実際の CLI 出力
README のコマンドを、v0.1.0-preview.4 の tarball に対して LIMITED_BLOCKING モードとローカルの模擬 Broker で実行したものです。最初の許可された操作だけが1回実行され、再実行・DENIED・UNRESOLVED は実行されません。
試す
アカウント不要、資格情報不要、ダウンロード後はネットワーク不要。Node.js 22 以上と npm が必要です。新しい空のディレクトリで実行してください。
mkdir guard-try && cd guard-try
npm init -y >/dev/null
curl -LO https://github.com/ORIMUSU/ground-immune-guard/releases/download/v0.1.0-preview.4/ground-immune-guard-0.1.0-preview.4.tgz
echo "6bdc758c1059b2e530393e9f9a61706bbb097410ab88afb80adde55668e88168 ground-immune-guard-0.1.0-preview.4.tgz" | sha256sum -c -
npm install --offline --ignore-scripts ./ground-immune-guard-0.1.0-preview.4.tgz
./node_modules/.bin/guard init ./blocking --limited # ローカルの模擬 Broker、資格情報なし
./node_modules/.bin/guard protect ./blocking allowed # ADMITTED -> 1回実行 (exit 0)
./node_modules/.bin/guard protect ./blocking allowed # UNRESOLVED -> DECISION_REUSED (exit 4)
./node_modules/.bin/guard protect ./blocking denied # DENIED -> OUT_OF_SCOPE (exit 3)
./node_modules/.bin/guard protect ./blocking unresolved # UNRESOLVED -> EVIDENCE_MISSING (exit 4)
./node_modules/.bin/guard verify ./blocking
tarball の SHA-256
6bdc758c1059b2e530393e9f9a61706bbb097410ab88afb80adde55668e88168
- macOS では
sha256sum -c -の代わりにshasum -a 256 -c -。Windows では(Get-FileHash -Algorithm SHA256 .\ground-immune-guard-0.1.0-preview.4.tgz).Hashで確認し、.\node_modules\.bin\guard.cmdを使います。 - 動作確認: Linux(Node 22 / 24)、Windows 11(Node 24)、macOS(Apple Silicon、Node 24)。
- 既定は SHADOW モードです。
guard init ./shadowでは判定を記録するだけで(outcome: OBSERVED)、何も遮断しません。 - 詳しい手順と Windows の注意点(英語): README · JavaScript/TypeScript の Quickstart
承認後に差し替えられた操作は、実行されない
承認のあと、Broker に渡す操作が差し替えられた場合は、preview Broker バインドで止まります(UNRESOLVED / TARGET_CHANGED、模擬 Broker の実行は 0 回)。この場面は LIMITED_BLOCKING が必要で、SHADOW では出ません。同梱の examples/tamper-after-approval.mjs で再現できます。

構成
エージェントは操作の意図を送り、Guard が判定します。Broker に届くのは ADMITTED の操作だけです。図は本来想定している遮断の構成で、このプレビューにはローカル評価用の模擬 Broker が同梱されています。

このプレビューに含まれるもの、含まれないもの
含まれるもの
- 意図の評価、スコープのバインド、ローカルの証拠記録
- ローカル CLI と JavaScript/TypeScript API(プレビュー版)
- GitHub メタデータの対応付け
- 承認後に変わった操作を拒否する preview Broker バインド(LIMITED_BLOCKING)
- パッケージのビルドに使ったソース(Apache License 2.0)
含まれないもの・主張しないこと
- Broker は模擬のみ。専用の Broker ホスト、実際の資格情報、実際の GitHub 書き込み実行は含みません。
- 本番利用の認定はしていません。
- 資格情報の隔離は主張しません。プロセス内のバインドは、プロセスや OS による隔離ではありません。
- npm レジストリには公開していません。GitHub Release の tarball を SHA-256 で確認して導入します(暗号署名・証明はありません)。
利用を検討する前に、Limitations、Threat Model、Security Model を読んでください(いずれも英語)。
リンク
- リポジトリ(ドキュメント、サンプル、リリース記録)github.com/ORIMUSU/ground-immune-guard
- リリースノート(プレリリース)v0.1.0-preview.4
- リリースの tarballground-immune-guard-0.1.0-preview.4.tgz
- ライセンスApache License 2.0
- セキュリティポリシーSECURITY.md
- 変更履歴CHANGELOG.md
連絡先
Shadow パイロット・製品について
immune@orimusu.com範囲を絞った Shadow パイロット(1つの操作を観察のみ)のご相談、質問、フィードバックはこちらへ。パイロットの進め方(英語)。パスワード、トークン、鍵は送らないでください。