Specification v0.1 · open · vendor-neutral

Playground

Build a mandate by clicking, then test what an agent may do. Everything runs in your browser – nothing is sent anywhere.Build a mandate by tapping and test it. Everything stays in your browser.

The playground needs JavaScript
Everything else on this site works without it. You can still read the example mandate below, or read the specification.

Example: voice assistant

Rules of the mandate “m-voice-assistant”

  • allow

    Any device: Voice assistant may read.

    r-read-all
  • allow

    Lights: Voice assistant may turn on, turn off or set.

    r-lights
  • allow

    Heating: Voice assistant may set temperature.

    r-climate
  • ask

    Locks: Voice assistant may unlock or open, but only after confirmation by user-1.

    r-locks
  • deny

    Cameras: Voice assistant may do nothing.

    r-no-cameras
  • deny

    Alarm: Voice assistant may not disarm.

    r-no-alarm
  • deny

    Everything else: deny (default)

Choose a mandate

Current request:

Rules

Everything else: deny (default)

The mandate then carries "enforce": false. Denied actions still run and are recorded as denied, after a confirmation if a matching rule asks; critical actions stay protected.

Order doesn’t matter – the strictest matching rule wins: denyaskallow

Simulate a request

Areas, device ID and marking

Household time zone Europe/Berlin, week of October 12, 2026.

Result

Decisions come from spec-ts, an independent TypeScript implementation that passes the conformance cases of specification v0.1.1.

Overview: what is allowed

  • not available

Click a cell to test it. Hover or focus shows the deciding rule. Arrow keys move between cells.Swipe sideways for all actions. Tap a cell to open it in “Test”.

Mandate as JSON

You can edit the JSON directly. Valid changes appear in the rules above.