GULF AGENT COMPLIANCE LAYER

Nothing crosseswithout a ruling.

لا شيء يعبر دون حكم

DABT.EXE

NDMO-TOP-SECRET-DENY

DENY

refused before execution

A human hand and a machine hand reach toward each other across a gap and do not touch. A window between them shows the current decision.

Does Saudi regulation permit this action, on this content, right now? Dabt answers before the call executes — and again before the result reaches your model.

SEE A CALL GET STOPPED READ THE MAP

PDPL · NDMO · NCA ECC-2:2024 · SAMA CSF

01THE NAME

In Arabic, ضبط is the act of pointing a text — adding the dots that collapse it to exactly one reading. Remove a dot and the word becomes another word. A dot is the difference between meaning and noise, which is why this page is built out of them.

02FOUR OUTCOMES. NO SCORES.

There is not one gradient above the footer. A dot is on or off, a rule fires or it does not, and no model sits anywhere in the decision path.

03TWO GATES, ONE ENGINE

Data Retrieval Gate

Evaluates a payload before it reaches a model. Detection, classification, policy, obligations, redaction and a bilingual audit record, in that order.

Agent Action Gate

Evaluates an MCP tool call before it executes, and its result before that result is disclosed. Tool semantics come from a validated manifest, not from name heuristics.

The request leg is the only place a side effect can be prevented. The response leg cannot unwind a write that already ran, but it can still stop a live credential reaching the model — so a refusal there says explicitly that the side effect stands.

04A REFUSAL, IN FULL

agent → tools/call provision_database region=eu-west-1

dabt-proxy → POST /v1/action/evaluate

[DENY] refused — the call never reached the upstream server

ruleNDMO-TOP-SECRET-DENY

articleNDMO §4.3 — Top Secret

map0.1.0-research-grounded

مرفوض قبل التنفيذ — نقل بيانات خارج المملكة

Run it yourself with python proxy/demo/run_demo.py. The gate runs as a real subprocess in front of a fixture MCP server.

05WHY IT IS REPRODUCIBLE

06WHAT DABT DOES NOT DO

Every rule carries requires_legal_review: true. A mapping marked needs_verification cannot issue a terminal DENY — it degrades to REVIEW.

07CURRENT COVERAGE

A transparent inventory of the rules actually implemented, not a claim of complete regulatory coverage. Control references are at subdomain granularity and marked needs_verification; no leaf control ID is asserted as verified.

CURRENT COVERAGE — 0.1.0-research-grounded
RuleReferenceOutcomeMap confidence
NDMO-TOP-SECRET-DENY NDMO §4.3, Top Secret DENY verified rule
PDPL-ART6-4-SENSITIVE-LEGITIMATE-INTEREST PDPL Art. 6(4) DENY verified rule
PDPL-ART15-6-SENSITIVE-DISCLOSURE PDPL Art. 15(6) DENY verified rule
PDPL-ART23-HEALTH-DATA-RESTRICTION PDPL Art. 23(1) REVIEW verified rule
PDPL-ART24-CREDIT-DATA-CONSENT PDPL Art. 24(1) REVIEW inferred rule
PDPL-ART29-2C-CROSSBORDER-MINIMISATION PDPL Art. 29(2)(c) ALLOW_WITH_REDACTION verified rule
PDPL-ART15-5-ANONYMISED-DISCLOSURE PDPL Art. 15(5) ALLOW_WITH_REDACTION verified rule
PDPL-ART11-3-MINIMISATION PDPL Art. 11(3) ALLOW_WITH_REDACTION verified rule
NDMO-SECRET-RESTRICTED-ACCESS NDMO §4.2, Principle 6 ALLOW_WITH_REDACTION verified rule
NDMO-PUBLIC-ALLOW NDMO §4.3, Public ALLOW verified rule

map 0.1.0-research-grounded

08GET IT

Install and test

pip install -e ./dabt_python -e ./proxy
python proxy/demo/run_demo.py

Attach an agent

"acme-gated": {
  "command": "dabt-proxy",
  "args": ["gate",
    "--server-id", "acme",
    "--manifest", "/etc/dabt/acme.yaml",
    "--upstream-http", "https://mcp.acme.example/mcp"]
}

Licence

Dual-licensed. GNU AGPL-3.0 by default, and a commercial licence for organisations that cannot accept the AGPL's network source-disclosure obligation.

Commercial licensing — abdulazizaldhamri@gmail.com