decision-table
Decision Table
Decision Table は、AI エージェント向けの決定論的な決定および制約プリミティブです。境界のあるビジネス判断をモデルの推論から取り出し、厳格でバージョン管理された実行可能な IR に移します。
製品名と安定したパッケージ、CLI、プラグイン、Skill、MCP の識別子は、docs/PRODUCT_IDENTITY.md に記録されています。
最初のリリースでは、以下を提供します:
decision.evaluate:first、unique、collect、またはpriorityヒットポリシーでファクトを評価します;decision.validate: モデルを検証し、サポートされている場合に重複、重複、またはシャドウされたルールを保守的に証明します;constraint.check: 提案された候補をチェックし、違反、欠落入力、および設定された修復ヒントを返します;constraint.check_approved: ホストによって設定された場合、呼び出し元が置き換えたりバックデートしたりできない正確な承認済みルールセットに対して読み取り専用チェックを実行します;1 つの共有 TypeScript コア、JSON CLI、MCP サーバー、および Codex プラグイン。
Codex へのインストール
codex plugin marketplace add tetracoralla/decision-table --ref main
codex plugin add decision-table@decision-tableインストール後、新しい Codex タスクを開始して、インストールされたプラグインから Skill と MCP ツールが読み込まれるようにします。npm アカウント、npm パッケージ、ソースビルドは不要です。プラグインにはプリビルドされた MCP サーバーが含まれており、PATH 上に Node.js 20.19 以降が必要なだけです。
リポジトリのルートがマーケットプレイスであり、plugins/decision-table がインストール可能なプラグインです。更新、削除、検証については、docs/INSTALLATION.md を参照してください。
次のような通常のリクエストを使用します:
「使用する前にこの決定ルールセットを検証してください。」
「これらのファクトでこのルールセットを評価してください。」
「この提案されたアクションがこれらの制約を満たすかどうかを確認してください。」
Decision Table は GitHub から Codex プラグインとして配布されています。このリポジトリの Node パッケージはプライベートであり、ビルド、テスト、およびローカルライブラリ開発のためだけに存在します。npm には公開されていません。
ソースから開発する
npm install
npm run checkローカルプラグイン開発の場合は、このリポジトリディレクトリ自体をマーケットプレイスとして追加し、npm run check:plugin でソースプラグインを検証します。
CLI
npm run cli -- validate examples/payment-approval.decision.json
npm run cli -- evaluate examples/payment-approval.decision.json \
--facts examples/payment-approval.facts.json \
--expected-version 1.0.0
npm run cli -- check examples/email-marketing.constraint.json \
--candidate examples/email-marketing.candidate.json \
--facts examples/email-marketing.facts.jsonすべての出力は JSON です。入力パスの代わりに - を使用して、その 1 つのドキュメントを stdin から読み取ります。選択したコマンドに対して定義されていないオプションは拒否されます。ルールセット、ファクト、および候補ドキュメントは、累積 256 KiB の制限を共有します。
正確なコンテンツの固定には、--expected-version と --expected-fingerprint <sha256> の両方を渡します。
承認済みチェックとホストによる強制
インラインの constraint.check は、呼び出し元がルールセットを提供するため、助言的なものです。ホストが承認したポリシーによる読み取り専用分析の場合は、MCP サーバーを起動する前にルールセットをバインドします:
import {
createApprovedConstraintChecker,
createConstraintExecutionGuard,
fingerprintRuleset,
} from "@openadam/decision-table";
const expected = {
id: approvedRuleset.id,
version: approvedRuleset.version,
fingerprint: fingerprintRuleset(approvedRuleset),
};
const checker = createApprovedConstraintChecker({ ruleset: approvedRuleset, expected });バンドルされた stdio サーバーは、ホストが DECISION_TABLE_APPROVED_CONSTRAINT_JSON を同じ厳密なバインディングオブジェクトに設定した場合に、constraint.check_approved を公開します。エージェントはポリシーを置き換えたり、チェックをバックデートしたりすることはできませんが、それでも候補とファクトを提供するため、この読み取り専用 MCP ツールは実行境界ではありません。
管理された副作用の場合は、候補の構築、信頼できるファクトの読み込み、チェック、および実行をホスト所有のコンテキスト内に保持します:
const guard = createConstraintExecutionGuard(checker, async (action, run) =>
database.transaction(async (transaction) =>
run({
candidate: candidateFromActualAction(action),
facts: await loadTrustedFacts(transaction, action),
execute: (sameActionSnapshot) =>
executeActualAction(transaction, sameActionSnapshot),
}),
),
);
const outcome = await guard.execute(actualToolArguments);ガードは実際のアクションをスナップショットし、制約が有効を返さない限りエグゼキュータをブロックし、その同じ凍結されたスナップショットを実行に渡します。ホスト所有のコンテキストは、トランザクションまたはロックが副作用を通じて揮発性ファクトを有効に保つ必要がある場所です。ガードはライブラリ境界であり、意図的にエージェントが呼び出し可能な MCP ツールではありません。
ルールセットの形状
条件はタグ付きデータであり、実行可能な文字列ではありません:
{
"op": "compare",
"left": { "kind": "fact", "path": "amount" },
"comparator": "gte",
"right": { "kind": "literal", "value": "10000" }
}10 進数の入力は文字列です。欠落したパスは UNKNOWN を生成します。false に強制されることはありません。日時には、実際の ISO カレンダー値、明示的なオフセット、秒、およびミリ秒精度以下が必要です。完全な製品境界については、examples/ と docs/PRODUCT_MODEL.md を参照してください。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Hosted MCP for creating, checking, deploying, and hosting static sites for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tetracoralla/decision-table'
If you have feedback or need assistance with the MCP directory API, please join our Discord server