Skip to main content
Glama
tetracoralla

decision-table

by tetracoralla

Tabla de Decisión

Tabla de Decisión es una primitiva determinista de decisión y restricción para agentes de IA. Mueve los juicios de negocio acotados fuera del razonamiento del modelo y hacia un IR estricto, versionado y ejecutable.

El nombre del producto, así como los identificadores estables del paquete, CLI, plugin, Skill y MCP, quedan registrados en docs/PRODUCT_IDENTITY.md.

La primera versión proporciona:

  • decision.evaluate: evalúa hechos con política de acierto first, unique, collect o priority;

  • decision.validate: valida el modelo y prueba de forma conservadora la existencia de reglas duplicadas, superpuestas u ocultas cuando es compatible;

  • constraint.check: comprueba un candidato propuesto y devuelve violaciones, entradas faltantes y sugerencias de reparación configuradas;

  • constraint.check_approved: cuando el host lo configura, realiza una comprobación de solo lectura contra un conjunto de reglas aprobado exacto que el llamador no puede reemplazar ni retrodatar;

  • un núcleo TypeScript compartido, un CLI JSON y un servidor MCP junto con el plugin de Codex.

Instalar en Codex

codex plugin marketplace add tetracoralla/decision-table --ref main
codex plugin add decision-table@decision-table

Inicia una nueva tarea de Codex después de la instalación para que las herramientas de Skill y MCP se carguen desde el plugin instalado. No se requiere cuenta de npm, paquete npm ni compilación desde el código fuente; el plugin contiene un servidor MCP precompilado y solo necesita Node.js 20.19 o posterior en PATH.

La raíz del repositorio es el marketplace y plugins/decision-table es el plugin instalable. Consulta docs/INSTALLATION.md para actualizaciones, eliminación y verificación.

Usa solicitudes ordinarias como:

  • "Valida este conjunto de reglas de decisión antes de usarlo".

  • "Evalúa este conjunto de reglas con estos hechos".

  • "Comprueba si esta acción propuesta satisface estas restricciones".

Tabla de Decisión se distribuye desde GitHub como un plugin de Codex. El paquete Node en este repositorio es privado y existe únicamente para compilar, probar y desarrollar la biblioteca localmente; no se publica en npm.

Desarrollar desde el código fuente

npm install
npm run check

Para el desarrollo local del plugin, añade este directorio del repositorio como marketplace y valida el plugin fuente con 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

Toda la salida es JSON. Usa - en lugar de una ruta de entrada para leer ese documento desde stdin. Las opciones no definidas para el comando seleccionado se rechazan. El conjunto de reglas, los hechos y los documentos candidatos comparten un único límite acumulado de 256 KiB.

Para fijar contenido exacto, pasa tanto --expected-version como --expected-fingerprint <sha256>.

Comprobaciones aprobadas y aplicación por el host

La constraint.check en línea es consultiva porque el llamador proporciona el conjunto de reglas. Para un análisis de solo lectura con una política aprobada por el host, vincula el conjunto de reglas antes de iniciar el servidor 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 });

El servidor stdio incluido expone constraint.check_approved cuando su host establece DECISION_TABLE_APPROVED_CONSTRAINT_JSON con el mismo objeto de vinculación estricto. El Agente no puede reemplazar la política ni retrodatar la comprobación, pero aún así proporciona candidatos y hechos, por lo que esta herramienta MCP de solo lectura no es un límite de ejecución.

Para un efecto secundario gobernado, mantén la construcción del candidato, la carga de hechos confiables, la comprobación y la ejecución dentro de un contexto propiedad del host:

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);

El guardia captura la acción real, bloquea al ejecutor a menos que las restricciones devuelvan válido, y pasa esa misma instantánea congelada a la ejecución. El contexto propiedad del host es donde una transacción o bloqueo debe mantener los hechos volátiles válidos durante el efecto secundario. El guardia es un límite de biblioteca e intencionalmente no es una herramienta MCP invocable por el Agente.

Forma del conjunto de reglas

Las condiciones son datos etiquetados, nunca cadenas ejecutables:

{
  "op": "compare",
  "left": { "kind": "fact", "path": "amount" },
  "comparator": "gte",
  "right": { "kind": "literal", "value": "10000" }
}

Las entradas decimales son cadenas. Las rutas faltantes producen UNKNOWN; no se fuerzan a false. Las fechas y horas requieren un calendario ISO real, desplazamiento explícito, segundos y no más de precisión de milisegundos. Consulta examples/ y docs/PRODUCT_MODEL.md para conocer el límite completo del producto.

-
license - not tested
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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