ACI family · member M · design + working PoC · .maci

MACI · Machine ACIMachine Artfully Crafted Intelligence · who said what, between agents

When agents talk — tool calls, multi-agent frameworks, orchestration pipelines — a proposal from Agent A, approved by Agent B, executed by Agent C arrives at the audit log as three undifferentiated JSON blobs. Nobody can reconstruct who proposed, who approved, whether the approval referenced that proposal, or what evidence informed it. MACI is a message envelope that carries role, authority level, and decision-chain references in every exchange — so the audit is the graph itself. The machine-facing member of the ACI family, twin to HACI.

the envelope

Every MACI message is one JSON object. refs points at the messages this one responds to — that is the whole trick: every message names its antecedents, so the conversation is a directed acyclic graph you can walk.

// one message in a .maci stream
{
  "maci": "0.1.0",
  "id": "m-0004",
  "ts": "2026-06-26T12:00:00Z",
  "from": "agent-beta",
  "role": "DECISION",
  "authority": "sovereign",    // sovereign · delegated · advisory · observer
  "content": "use work-stealing as agent-alpha proposed",
  "refs": ["m-0003", "m-0004"],  // the decision chain
  "status": "approved"      // pending · approved · rejected · executed · superseded
}

the eight speech acts

COMMANDHACI !authoritative instruction PROPOSALHACI a…advisory suggestion from an agent EVIDENCEHACI >observed fact, test result, measurement QUESTIONHACI ?request for information or decision CODEHACI ```an executable artifact DOCUMENTHACI A…narrative, context, documentation DECISIONnewapproves / rejects a prior message — must carry refs DELEGATEnewtransfers authority to another agent for a scope

Six map straight onto HACI's roles; two are new because machines need them. A DECISION isn't a new order — it's a response to a specific prior message ("yes, use work-stealing as proposed in m-0003"), which is why it must reference what it decides on. A DELEGATE creates a chain of custody: a human delegates to an orchestrator who delegates to workers.

the live decision chain

A realistic build: a human commands a scheduler, two agents propose and benchmark, the human decides and delegates, an agent writes the code under delegated authority, another verifies. Twelve messages — drawn as the DAG their refs describe.

ported verbatim from maci.py — same validation, same DAG

the validator — eight rules, no exceptions

V001 message IDs unique in scope  ·  V002 role ∈ the eight  ·  V003 authority ∈ {sovereign, delegated, advisory, observer}
V004 status valid  ·  V005 every DECISION has refs  ·  V006 a DECISION's status is approved | rejected
V007 every ref resolves to a real message  ·  V008 a DELEGATE names its scope  ·  plus: the refs graph must be acyclic
— run the conversation first, then try to add a message —

two skins, one conversation

A HACI document is a MACI stream wearing Markdown; a MACI stream is a HACI document wearing JSON. The mapping is exact for the six shared roles, and the conversion runs both ways — ! BUILD X{role:"COMMAND"}. The one thing HACI's line-adjacency only implies, MACI's refs make explicit. See the two brothers side by side, and convert live, at eskimo‑brothers ↗.

what this is. MACI v0.1 is a published design (maci-design.haci, itself written in HACI) plus a working proof-of-concept (maci.py — Message, Conversation, the eight validation rules, Kahn's-algorithm cycle detection, chain-walk, and the HACI↔MACI converter; both ship in this repo). Like HACI, it is a defensive publication under the Technical Disclosure Commons — prior art, not a patent — for a JSON message envelope that carries inline role attribution + authority levels + a decision-chain DAG for multi-agent provenance, and for the .maci stream format. The M member of the ACI family; DACI (distributed) is reserved.
honest line. the demo above runs the actual ported logic in your browser — the DAG, the stats, the cycle check, and every validator verdict are computed live, not canned.
MACI · v0.1 · .maci · 2026-06-26 David Lee Wise · Bridge-Burners LLC · the ACI namespace ↗