Three lines in the code you already ship
Node.js, Python, Go, Java or an MCP config — the gate drops in at the call site, not around your architecture. Copy the sample, keep your framework.
See your languageDecionis Presence proves the human; Decionis Protocol evaluates the action against policy before execution, returning a cryptographically verifiable ALLOW, ESCALATE, or BLOCK decision.
$ npm install @decionis/sdk @decionis/presence-nodeconst human = await presence.check(token, "refund.issue");
const run = await gate.enforceAndExecute(refund(human));
if (!run.executed) queueForApproval(run.decision);Browser sandbox · ephemeral WebAuthn credential + Ed25519 key · the liveness frame and everything else stay on this page. The ceremony saves a sandbox passkey on your device — delete it from your password manager any time. Full server-backed ceremony: presence.decionis.com/demo
Node.js, Python, Go, Java or an MCP config — the gate drops in at the call site, not around your architecture. Copy the sample, keep your framework.
See your languageNo verified decision, no execution: timeouts, invalid proof and an unreachable authority all deny. Every decision leaves a signed dossier you can verify offline, and rollout starts in read-only shadow mode.
Production behaviorGate MCP tool calls and agent actions outside the model's discretion. ESCALATE routes the action to a verified human through Presence before anything executes.
How the boundary worksPolicy usually lives across PDFs, markdown, Jira, Confluence, XML, transaction logs, SAP notes and uploads. The draft flow turns those sources into a reviewed, versioned Decionis artifact — and every synthesized rule is validated through the real rules compiler. Anything that can't become an executable predicate is returned as a review item, never a silently broken rule.
POST /v1/orgs/:orgId/policies/packs/draft
{
"sources": [{ "source_type": "upload", "label": "refund-authority-v3.pdf", … }],
"live_connector_ids": ["<jira_connector_uuid>"]
}
→ { "pack": { "rules": [ … ] }, "review": [ … ] }
// every rule validated by the rules compiler before it reaches youACME COMMERCE — REFUND AUTHORITY POLICY (excerpt, p.12)
4.2 Refunds at or below $500 may be issued automatically
by support tooling.
4.3 Refunds above $500 require named-approver sign-off
before execution.
4.4 Refunds above $10,000 are prohibited pending CFO
review this quarter.
4.5 Every refund decision must retain an auditable record
of the approving identity.Browser demo of the deterministic draft path on fixture documents · nothing leaves this page. Org-side drafting (LLM-assisted, same review model) validates every rule through the real rules compiler.
Your model still reasons. Your tools still execute. Decionis sits between intent and effect, evaluates a versioned policy snapshot, and emits portable proof of the exact decision.
Explore the full architectureExecute with a bound decision.
Step up through Presence.
Stop before side effects.
Every path emits a Decision Dossier: intent hash, policy version, reason codes, outcome and Ed25519 proof.
Latency, timeouts and fallback posture are part of the control—not implementation details to discover during an incident.
Use bound or strict enforcement so REJECT, REVIEW, ESCALATE, invalid proof, timeout, or an unreachable authority never calls the action callback.
no verified grant → no executionThe existing workflow continues while Decionis records the verdict it would have enforced. Promote policies only after reviewing real traffic and drift.
observe → compare → promoteSome host hooks own their timeout semantics. Keep the gate deadline inside the host deadline, or move enforcement to the API or network boundary you control.
timeout policy belongs in architectureWhen a policy returns ESCALATE, Presence evaluates behavior, device trust and liveness, then steps up the named human with passkey or out-of-band mobile approval before the action is released.
Record policy drift and would-be verdicts on real workflow traffic before enforcing anything inline.