Skip to main content
Glama
tetracoralla

decision-table

by tetracoralla

Decision Table

Decision Table은 AI 에이전트를 위한 결정적(deterministic) 의사 결정 및 제약 조건 기본 요소(primitive)입니다. 범위가 제한된 비즈니스 판단을 모델 추론에서 꺼내 엄격하고 버전 관리되는 실행 가능한 IR로 옮깁니다.

제품 이름과 안정적인 패키지, CLI, 플러그인, Skill, MCP 식별자는 docs/PRODUCT_IDENTITY.md에 기록되어 있습니다.

첫 번째 릴리스는 다음을 제공합니다:

  • decision.evaluate: first, unique, collect 또는 priority 히트 정책으로 사실(facts)을 평가합니다.

  • decision.validate: 모델을 검증하고, 지원되는 경우 중복(duplicate), 중첩(overlap), 또는 가려진(shadowed) 규칙을 보수적으로 증명합니다.

  • constraint.check: 제안된 후보(candidate)를 검사하고 위반 사항, 누락된 입력, 구성된 복구 힌트를 반환합니다.

  • constraint.check_approved: 호스트가 구성한 경우, 호출자가 교체하거나 과거로 소급(backdate)할 수 없는 정확한 승인된 규칙 집합(ruleset)에 대해 읽기 전용 검사를 수행합니다.

  • 하나의 공유 TypeScript 코어, JSON CLI, MCP 서버 및 Codex 플러그인.

Codex에 설치

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

설치 후 새 Codex 작업(task)을 시작해야 설치된 플러그인에서 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입니다. 입력 경로 대신 -를 사용하면 해당 문서 하나를 stdin에서 읽습니다. 선택한 명령에 정의되지 않은 옵션은 거부됩니다. 규칙 집합, 사실 및 후보 문서는 함께 총 256 KiB 제한을 공유합니다.

콘텐츠를 정확히 고정하려면 --expected-version--expected-fingerprint <sha256>을 모두 전달하세요.

승인된 검사 및 호스트 적용

인라인 constraint.check는 호출자가 규칙 집합을 제공하므로 참고용(advisory)입니다. 호스트가 승인한 정책으로 읽기 전용 분석을 수행하려면 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 도구는 실행 경계가 아닙니다.

관리되는 부작용(side effect)을 위해서는 후보 구성, 신뢰할 수 있는 사실 로딩, 검사 및 실행을 호스트 소유 컨텍스트 안에 유지하세요:

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

가드(guard)는 실제 작업의 스냅샷을 생성하고, 제약 조건이 유효(valid)를 반환하지 않으면 실행기를 차단하며, 동일한 동결된 스냅샷을 실행에 전달합니다. 호스트 소유 컨텍스트는 트랜잭션 또는 잠금(lock)이 부작용이 지속되는 동안 휘발성 사실을 유효하게 유지해야 하는 곳입니다. 가드는 라이브러리 경계이며, 의도적으로 에이전트가 호출할 수 있는 MCP 도구가 아닙니다.

규칙 집합 형태

조건은 태그된 데이터이며, 실행 가능한 문자열이 아닙니다:

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

10진수 입력은 문자열입니다. 누락된 경로는 UNKNOWN을 생성하며 false로 강제 변환되지 않습니다. 날짜-시간(datetime)은 실제 ISO 달력 값, 명시적 오프셋, 초(seconds), 그리고 밀리초 단위를 넘지 않는 정밀도를 요구합니다. 전체 제품 경계에 대해서는 examples/docs/PRODUCT_MODEL.md를 참조하세요.

-
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