decision-table
Decision Table
Decision Table ist ein deterministisches Entscheidungs- und Constraint-Primitiv für KI-Agenten. Es verlagert begrenzte Geschäftsentscheidungen aus der Modelllogik in eine strikte, versionierte, ausführbare IR.
Der Produktname und die stabilen Paket-, CLI-, Plugin-, Skill- und MCP-Identifikatoren sind in docs/PRODUCT_IDENTITY.md festgehalten.
Die erste Version bietet:
decision.evaluate: Fakten mitfirst,unique,collectoderpriority-Trefferrichtlinie auswerten;decision.validate: das Modell validieren und konservativ Duplikate, Überlappungen oder überlagerte Regeln nachweisen, wo unterstützt;constraint.check: einen vorgeschlagenen Kandidaten prüfen und Verstöße, fehlende Eingaben und konfigurierte Reparaturhinweise zurückgeben;constraint.check_approved: wenn vom Host konfiguriert, eine schreibgeschützte Prüfung gegen eine exakte genehmigte Regelsatz durchführen, den der Aufrufer nicht ersetzen oder zurückdatieren kann;einen gemeinsamen TypeScript-Kern, eine JSON-CLI und einen MCP-Server sowie ein Codex-Plugin.
Installation in Codex
codex plugin marketplace add tetracoralla/decision-table --ref main
codex plugin add decision-table@decision-tableStarten Sie nach der Installation eine neue Codex-Aufgabe, damit die Skill- und MCP-Tools aus dem installierten Plugin geladen werden. Es ist kein npm-Konto, npm-Paket oder Quellcode-Build erforderlich; das Plugin enthält einen vorgebauten MCP-Server und benötigt nur Node.js 20.19 oder höher auf PATH.
Das Repository-Root ist der Marktplatz und plugins/decision-table ist das installierbare Plugin. Siehe docs/INSTALLATION.md für Updates, Entfernung und Verifizierung.
Verwenden Sie gewöhnliche Anfragen wie:
„Validieren Sie diesen Entscheidungsregelsatz, bevor ich ihn verwende.“
„Bewerten Sie diesen Regelsatz mit diesen Fakten.“
„Prüfen Sie, ob diese vorgeschlagene Aktion diese Einschränkungen erfüllt.“
Decision Table wird von GitHub als Codex-Plugin verteilt. Das Node-Paket in diesem Repository ist privat und dient nur zum Erstellen, Testen und zur lokalen Bibliotheksentwicklung; es wird nicht auf npm veröffentlicht.
Aus dem Quellcode entwickeln
npm install
npm run checkFür die lokale Plugin-Entwicklung fügen Sie dieses Repository-Verzeichnis selbst als Marktplatz hinzu und validieren Sie das Quell-Plugin mit 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.jsonDie gesamte Ausgabe ist JSON. Verwenden Sie - anstelle eines Eingabepfads, um dieses eine Dokument von stdin zu lesen. Optionen, die für den ausgewählten Befehl nicht definiert sind, werden abgelehnt. Der Regelsatz, die Fakten und die Kandidatendokumente teilen sich ein kumulatives Limit von 256 KiB.
Für exaktes Content-Pinning übergeben Sie sowohl --expected-version als auch --expected-fingerprint <sha256>.
Genehmigte Prüfungen und Host-Durchsetzung
Inline-constraint.check ist beratend, da der Aufrufer den Regelsatz liefert. Für eine schreibgeschützte Analyse mit einer vom Host genehmigten Richtlinie binden Sie den Regelsatz, bevor Sie den MCP-Server starten:
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 });Der gebündelte stdio-Server stellt constraint.check_approved bereit, wenn sein Host DECISION_TABLE_APPROVED_CONSTRAINT_JSON auf dasselbe strikte Bindungsobjekt setzt. Der Agent kann die Richtlinie nicht ersetzen oder die Prüfung zurückdatieren, aber er liefert weiterhin Kandidat und Fakten, daher ist dieses schreibgeschützte MCP-Tool keine Ausführungsgrenze.
Für einen kontrollierten Nebeneffekt halten Sie die Kandidatenkonstruktion, das Laden vertrauenswürdiger Fakten, die Prüfung und die Ausführung in einem vom Host verwalteten Kontext:
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);Der Guard erstellt einen Snapshot der tatsächlichen Aktion, blockiert den Executor, sofern die Einschränkungen nicht gültig zurückgeben, und übergibt denselben eingefrorenen Snapshot an die Ausführung. Der vom Host verwaltete Kontext ist der Ort, an dem eine Transaktion oder Sperre flüchtige Fakten während des Nebeneffekts gültig halten muss. Der Guard ist eine Bibliotheksgrenze und ist absichtlich kein von Agenten aufrufbares MCP-Tool.
Regelsatzform
Bedingungen sind getaggte Daten, niemals ausführbare Zeichenfolgen:
{
"op": "compare",
"left": { "kind": "fact", "path": "amount" },
"comparator": "gte",
"right": { "kind": "literal", "value": "10000" }
}Dezimalwerte sind Zeichenfolgen. Fehlende Pfade erzeugen UNKNOWN; sie werden nicht zu false gezwungen. Datumszeiten erfordern einen echten ISO-Kalenderwert, expliziten Offset, Sekunden und höchstens Millisekundengenauigkeit. Siehe examples/ und docs/PRODUCT_MODEL.md für die vollständige Produktgrenze.
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