Confidential · © 2026 Space-O Technologies Inc. · Prepared exclusively for DMA. Please do not copy, save or share.

Part A · How DMA AI works

A.4The rule engine

Built in the POC
No.
A.4
Relates to DMA's book
Decision Book p.7, p.8
Part
A · the foundation

What this part does · Decision Book p.7, p.8

DMA's book lets the AI act on its own by default, inside DMA-approved guardrails, and hands a deal to Josh on seven defined conditions: a new deal-size tier, non-standard terms, a payment problem, a request for a person, low confidence, a refund or cancellation, or no approved precedent.

Why DMA needs it: The limits are only real if code enforces them. A rule the AI is merely asked to follow can be talked around; a rule checked in code can't.

How we do it

  • Before any consequential action (a CRM change, an email, a booking, a price, a handoff), the tool asks the rule engine. It answers ALLOW, HOLD (a person must decide) or DENY, with the reasons, and the answer is logged.
  • The rules are DMA's settings, in plain words on the Rules page: which CRM fields the AI may write and how, which actions each worker may take, the email send limits, automatic pauses on bounces or complaints, the claims check, and the seven escalation triggers with who handles each.
  • Every rule is versioned. Changing one takes two people: one proposes it (and can test it against recent real decisions first), a different person approves it, and only then does it become active. Any version can be restored.
  • Escalations go to the person on DMA's roster for that trigger, with a backup and a response time. The AI stops on that thread until a person takes it.

The flow

It plays on its own while it's on screen; hover or use the controls to pause or step through.

Tool callan action is about tohappenActive rulesDMA's approved settingsRule enginechecks in codeALLOWgoes aheadHOLDa person decidesDENYrefused, with the reasonDecision logwhat, why, which rule
Step 1 of 4

An action is about to happen

A tool is called: create a lead, send an email, hand a chat to a person.

  • AI
  • Stored data
  • Routing
  • Screen
  • Person
  • Rule in code

Where the data goes

The same six stages on every page. Nothing reaches Nutshell except through the write gate.

  1. 1A tool call

    Source

    Any consequential action from any worker.

  2. 2Sync

    Copies Nutshell changes into the bridge database

    Nutshell changes can re-trigger rules (for example a field changed by a person).

  3. 3Bridge database

    A copy of the CRM data, plus what the AI works out

    Holds the rules and their versions, and every decision.

  4. 4AI

    Claude models, only through DMA's own gateway

    The AI doesn't decide whether it may act; the engine does.

  5. 5Write gate

    The only way back into Nutshell: checked, approved when needed, sent once

    The write gate asks the engine again before anything is written.

  6. 6Nutshell

    The system of record

    Only allowed, approved changes reach it.

The tables behind it

Drawn from the POC's database catalogue: structure only, no data.

ctrl.policy_rulesPKiduuidrule_keytextversionintegerkindtextstatustextIDapproval_iduuidapproved_bytexteffective_fromtimestamp+ 13 more columnsctrl.decision_logPKiduuidPKoccurred_attimestampIDagent_version_iduuidIDrun_iduuidtooltextIDconversation_iduuidpolicy_resulttexttriggertextreason_codesjsonb+ 19 more columnsctrl.escalationsPKiduuidtriggertexturgencytextIDconversation_iduuidstatetextassigneetextsla_due_attimestampIDrun_iduuidIDdecision_iduuid+ 24 more columnsctrl.rosterPKtriggertextPKprioritysmallintdisplay_nametexttimeout_minutesinteger+ 6 more columns

PK primary keyFK reference the database enforces (solid line)ID reference kept by id (dashed line)

TableWhat it holdsColumns
ctrl.policy_rulesDMA's rules, one row per version: what it says, who proposed it and who approved it.21
ctrl.decision_logEvery decision: allow, hold or refuse, the reasons and the trigger.28
ctrl.escalationsCases handed to a person: the trigger, who has it, and the deadline.33
ctrl.rosterWho takes each escalation trigger, the backup and the response time.10
How the tables connect (7)
ColumnPoints toKept by
ctrl.policy_rules.approval_idctrl.approvalsThe application (by id)
ctrl.decision_log.agent_version_idagent.agent_versionsThe application (by id)
ctrl.decision_log.run_idagent.runsThe application (by id)
ctrl.decision_log.conversation_idconv.conversationsThe application (by id)
ctrl.escalations.conversation_idconv.conversationsThe application (by id)
ctrl.escalations.run_idagent.runsThe application (by id)
ctrl.escalations.decision_idctrl.decision_logThe application (by id)

Worked example

Synthetic demo data: every name, business and number is made up.

A visitor asks for a person: the rule engine at work

1 / 5

What you see

1.DMA's rules, in plain words

The Rules page shows every active rule as a sentence, with search.

localhost:13301/rules
Rules: DMA's settings, each as a plain sentence.
Callout 2

What happens in the system

  • Bridge databasectrl.policy_rules

    Each rule is a version with its author and approver; only the active version is used.

Right-hand values come from a real run of the POC on September 25, 2026 (trace tr_muh5to4nxpbl16icb50m, tr_muh5to7f1f7s5ex202akt…). Rows marked “sample” are illustrative.

The rules active in the prototype, by kind, and what they cover.

DMA's rules today

Kind of ruleActiveWhat it decides
CRM field permissions26For each Nutshell field: may the AI write it, on its own or only with approval, and only if nobody changed it since
Escalation triggers9DMA's seven triggers, plus a hostile message and a legal threat, each with its person and urgency
Action allowlists7Which actions each tool server may take, and at what autonomy
Automatic pauses2Pause sending when bounces or complaints pass a threshold
Send limits1Daily email cap, per-inbox limits, sending hours, the undo window
Claims check1No prices, promises or unsourced numbers in anything the AI writes
Classification, approval links2How incoming text is classified; how one-tap email approval links behave

One rule, as a person reads it (escalation trigger 4)

Rule
The prospect asks for a person
Decision
HOLD: the AI stops on this threadRegardless of the deal's stage or value, as DMA's book says.
Goes to
Josh, with a backup if he doesn't respond in time
Changing it
Proposed by one person, approved by another, then active

In the running POC

localhost:13301/rules
Rules: DMA's settings, each as a plain sentence.

1 / 5Rules: DMA's settings, each as a plain sentence.

  1. 1Search the rules.
  2. 2One rule, its kind and status.

Dashboard · Govern → Rules. Captured from the running POC on September 25, 2026; synthetic data.

See it live

Opens the exact screen in the running POC, in a new tab.

OpenWhereWhat to try
RulesDMA AI dashboardEvery rule in plain words, its version and history.
Escalation rosterDMA AI dashboardWho takes each trigger, and the backup.
EscalationsDMA AI dashboardOpen cases, their briefs and deadlines.

Status

Built in the POC

Built in the POC. This capability runs in the POC today, on synthetic data, end to end.

A.4 The rule engine · DMA AI proof