DECISION CATALOG PROTOCOL · DRAFT 0.1

KNOW WHAT A
SYSTEM CAN DO
RIGHT NOW.

A live, revision-bound directory of legal decisions for machines and models. Providers own reality. RLCD chooses. Execution stays safe.

↓
PROVIDERS OWN REALITY

Surf knows the browser. Synesthesia knows the studio. Canvas knows the screen.

MODELS CHOOSE, NEVER INVENT

RLCD selects from finite actions observed and authorized by deterministic code.

EVERY CHOICE HAS A REVISION

State moves. Stale actions fail closed. Every applied decision returns a receipt.

A SMALL CONTRACT.
NO HIDDEN AUTHORITY.

DCP describes what a provider can decide and safely do against an exact observation. It does not define an agent loop, grant models executable selectors, or move authority out of the provider.

OPERATIONREQUIREMENTPURPOSE
GET /v1/decisionsMUST

Return a finite, state-derived catalog with provider and observation revisions.

POST /v1/decisions/planEXTENSION

Provider-specific local selection; intentionally outside the DCP 0.1 core contract.

POST /v1/decisions/executeSHOULD

Validate the expected revision, apply the action, and return a typed receipt.

/.well-known/dcpSHOULD

Advertise protocol versions, transports, endpoints, and provider identity.

DECISIONS
DIRECTORY

GET/v1/decisions?depth=2
REVISION8FD3:B21AFRESH FOR842msACTIONS66
01
SURF OWNS THIS BRANCH

browser

7 LEGAL ACTIONS
●browser.prepare↗
●browser.navigate↗
●browser.interact↗
02
SYNESTHESIA OWNS THIS BRANCH

studio

47 LEGAL ACTIONS
●studio.composition↗
●studio.inserts↗
●studio.midi↗
●studio.playback↗
●studio.recording↗
03
CANVAS OWNS THIS BRANCH

canvas

12 LEGAL ACTIONS
●canvas.recall↗
●canvas.place↗
●canvas.navigate↗

DECIDE WHILE
THE WORDS ARRIVE.

Incremental operation is part of DCP, not an implementation trick. Each evidence revision extends or supersedes prior evidence. Voice can revise per word; typed, vision, and sensor inputs use the same append-only chain.

r1OPENOBSERVE
r2AOBSERVE
r3BROWSERPREPARE browser.ensure
r4ANDOBSERVE
r5GOOBSERVE
r6TOOBSERVE
r7FPL.DEVCOMMIT browser.navigate
01OBSERVE

Accept a monotonic evidence revision and fresh provider catalogs.

02SPECULATE

Append a hypothesis referencing its parent decision and exact evidence.

03PREPARE

Only actions declared idempotent, reversible, and safe-before-final may run.

04COMMIT / CANCEL

Final evidence commits one valid action; superseded preparation is explicitly cancelled.

THE DECISION CHAIN

State accumulates as events—not an opaque model memory. Every decision names its parent, evidence revision, catalog revisions, phase, and resulting receipts.

  • Evidence revisions MUST increase monotonically.
  • A new decision MUST name the evidence it supersedes.
  • Catalog changes MUST invalidate selections from an older revision.
  • Finality MUST be explicit; confidence alone never commits a decision.
{
  "dcp_version": "0.1",
  "message_id": "msg_03",
  "session_id": "sess_91",
  "sequence": 3,
  "occurred_at": "2026-10-03T06:00:00Z",
  "type": "decision.proposed",
  "payload": {
    "decision_id": "dec_03",
    "parent_decision_id": "dec_02",
    "chain_id": "voice:neo:turn-91",
    "evidence_revision": 3,
    "catalogs": { "surf": "cat_104" },
    "selection": {
      "provider_id": "surf",
      "action_id": "browser.ensure",
      "arguments": {}
    }
  }
}

DISCOVER
WHAT IS LEGAL.

Depth changes representation, never authority. A cutoff node includes the exact bounded action IDs beneath it.

GET /v1/decisions?depth=2

{
  "dcp_version": "0.1",
  "provider": {
    "id": "synesthesia",
    "name": "Synesthesia",
    "instance": "https://studio.example/dcp"
  },
  "catalog_revision": "cat_022782",
  "state_revision": "state_619",
  "observed_at": "2026-10-03T06:00:00Z",
  "state": {
    "transport": "stopped",
    "recording": false
  },
  "actions": [{
    "id": "midi.disconnect.launchkey.piano",
    "domain": "midi",
    "phases": ["commit"],
    "safety": {
      "idempotent": true,
      "reversible": true,
      "requires_final": true,
      "confirmation_required": false
    }
  }]
}

WHO SPEAKS DCP?

Implementations are listed by the decisions they own. A listing is evidence of an inspectable catalog—not a certification of the underlying system.

GET
LISTED.

The directory is open to interoperable implementations. Listings are generated from a small manifest and verified against a live or fixture catalog.

  1. 01
    PUBLISH DISCOVERY

    Serve /.well-known/dcp with provider identity, supported protocol versions, and catalog endpoint.

  2. 02
    PROVIDE A FIXTURE

    Include one redacted catalog response and its deterministic revision test.

  3. 03
    DECLARE SEMANTICS

    Mark actions observe, prepare, or commit, including idempotency and reversibility.

  4. 04
    OPEN A LISTING PR

    Add a valid entry with exact version, profile, source, contact, fixture, conformance command, and verification status.

SUBMIT AN IMPLEMENTATION ↗

OBSERVE → CHOOSE → APPLY → PROVE

01CATALOG

Ask the provider what is legal against its current state.

02DECIDE

Give RLCD only the bounded options and live evidence.

03EXECUTE

Submit the exact selection with its expected revision.

04RECEIPT

Verify what changed—or learn precisely why it did not.

THE OPEN PROTOCOL FOR BOUNDED INTELLIGENCEBUILD A PROVIDER.
READ DCP 0.1 ↗