Deliberatic is a specification in the ComputeDriven worldspecThat rung covers the protocol document at docs/spec/README.md, v0.1-draft — no line of Deliberatic has been written and nothing on this domain runs.the specification →
The question this site exists to answer

Can disagreement be preserved and governed rather than averaged away?

Most multi-agent systems settle a disagreement by taking a vote and throwing the losing position away. Deliberatic specifies the other option: positions are nodes in a graph, attacks and supports are edges in the formal tuple rather than conventions on top of it, acceptability is a degree that propagates until it converges, and a position that loses is kept — because being outvoted and being wrong are different facts. It is a document. Nothing on this domain executes any of it, and the page says so in every place it could be mistaken.

Where this stands, before anything else on the page

A specification with no implementation, and that is the whole of it.

Status
spec — A specification, and this page. The weighted bipolar argumentation framework, the two-phase consensus, the constitution DSL, the Merkle evidence chains and the reputation system are all written down in detail, and none of them have been implemented.
Last verified
2026-08-16
Source
docs/spec/README.md in this repository, v0.1-draft. Every section number cited on this page was checked to resolve in it on 2026-08-16.
Limit
This establishes that a document exists and that it addresses the dimensions named below. It does not establish that the semantics converge on any real graph, that the consensus protocol is correct, or that a single line of Deliberatic has ever run. A specification that covers a gap and a system that closes it are different objects.
Next rung
in_tree — Code in a repository that implements §2.2 graded semantics and passes a test. The transport bindings in §7 are specified for A2A, MCP and raw HTTP, so an implementation that is not ours would move this further still — that is the only thing that can.
Placement

What five protocols cannot express

Deliberatic is a specification. So is this section — it compares one document against another, and neither of them is a running system.

Can disagreement be preserved and governed rather than averaged away?

Source. Richard Kang and Yudho Diponegoro, Governance Gaps in Agent Interoperability Protocols: What MCP, A2A, and ACP Cannot Express, arXiv:2606.31498v1, 30 June 2026. This is a preprint. It has not been peer-reviewed, and its authors record that the “Partial” classification “involves judgment.” It scores five protocols against six governance dimensions: 2 points for Supported, 1 for Partial, 0 for Absent, over six dimensions — 12 possible. Read it and disagree with it; that is the point of citing it rather than summarising it.
MCP v1.1 — 1/12A2A v1.0.1 — 1/12ACP — 2/12ANP — 0/12ERC-8004 — 2/12
G1Membershippartial · best of five
“Protocol encodes admission, invitation, removal, and role assignment for community participants.”
Deliberatic does not address this. A round has a minimum quorum of 3, but the protocol has no admission, invitation or removal primitive — it assumes a cluster already exists. Membership is delegatic.com's subject, not this one.
spec §3.2 quorum rules · gap named, not closed
G2Deliberationpartial · ACP only
“Protocol encodes structured argument exchange with turn-taking, challenge, and response semantics.”
Positions are nodes in a weighted bipolar argumentation graph; attack (R⁻) and support (R⁺) are edges in the formal tuple rather than conventions on top of it. Each round elects a Moderator — the highest-reputation agent that submitted no position — which is where turn governance lives.
spec §2.1 DAF · §3.3 leader election
G3Votingabsent in all five
“Protocol encodes preference aggregation with quorum, rounds, and position resolution.”
Specified, and specified against majority voting: positions resolve by graded semantics — σ iterated to convergence — with a Raft-derived fast path when one position leads by more than τ and a PBFT-derived conflict path when it does not. The argument for that choice is further down this page, with its citation.
spec §2.2 graded semantics · §3.1 two-phase consensus · §3.2 quorum
G4Dissent preservationabsent in all five
“Protocol ensures minority positions are retained in decision outputs, not silently dropped.”
A losing position is not discarded: dissent records are hashed into the round's evidence tree, a dissenter later shown correct earns a 1.5× domain reputation bonus, and the constitution can carry the rule trigger: "vindicated_dissents >= 3", which opens a constitutional amendment vote. Being outvoted and being wrong are kept as separate facts.
spec §5.1 evidence chain · §6.1 dissent-weighted ELO · §4.1 constitution DSL
G5Human escalationabsent in all five
“Protocol defines conditions and mechanisms for routing decisions to human authority.”
The condition is written as a constitutional rule — human_impact == true → human_review == true — and a round in which every position is rejected escalates to human review over an A2A push notification. The paper's objection to routing a task to a human-backed agent is that it is routing rather than governance; a rule that fires on a property of the decision is the difference.
spec §4.1 normative constraints · §7.1 A2A binding
G6Audit / replaypartial · MCP, ERC-8004
“Protocol produces tamper-evident event logs enabling deterministic reconstruction of the decision process.”
Every round produces a Merkle tree over its metadata, positions, evidence and dissent records, and publishes the root with the verdict. Where the paper finds partial audit, it finds it inherited from the substrate — a blockchain, a session — rather than designed for decisions. This is designed for decisions, which is a claim about the design and not about any log that exists.
spec §5.1 Merkle-chained audit log · §5.2 verification
What the two documents together establish, exactly. A published gap analysis finds that no evaluated protocol encodes voting, dissent preservation or human escalation, and the Deliberatic specification defines all three. That is a comparison of one specification against another, and you can check it in an afternoon by reading both. It is not evidence that any of it works. No line of Deliberatic has been written. A specification that covers a gap and a system that closes it are different objects, and the distance between them is the whole of the work.
The core formalism

Attacks and supports are in the tuple, not in the etiquette.

The difference between an argumentation framework and a chat transcript is that one of them has edges. Deliberatic extends Dung's 1995 framework into a weighted bipolar system: every position carries an evidence weight and an author, every attack and every support is a directed edge, and acceptability is computed rather than declared.

Deliberatic Argumentation Framework — spec §2.1
DAF = ⟨ A, R⁻, R⁺, w:A[0,1], α:AAgents, C, ρ:Agentsℝ⁺A=arguments · R⁻=attacks · R⁺=supports · w=evidence weights · α=authorship · C=constitution · ρ=reputation (domain-aware, calibration-adjusted)
Graded semantics — spec §2.2
σ(a) = w(a) · ρ(α(a)) + Σ[sSup(a)] σ(s)·γ⁺ − Σ[tAtt(a)] σ(t)·γ⁻ Converges when max|σₙ(a) − σₙ₋₁(a)| < ε (Potyka 2019). Contraction requires γ⁺ + γ⁻ < 1.

Both expressions are quoted from the specification. Neither has been evaluated on a real graph by anything in this repository.

Why the obvious approach is not enough

Three gaps in multi-agent debate as it is practised.

These are the arguments the specification is a response to. They are other people's findings, cited so you can disagree with them rather than with us.

No formal semantics

Agents exchange natural-language opinions and opaque confidence scores. There is no structured way to compare, attack or support positions. When one agent says “87% confident” and another says “91%”, those numbers are unverifiable and incomparable.

Cited: Du et al. 2023 · Wu et al. 2025, “simple majority voting already achieves most performance gains”.

No fault tolerance

If one agent is compromised, hallucinating or adversarial, no mechanism detects it. Most frameworks use majority voting, which Wu et al. showed cannot exceed the accuracy of the strongest single agent — and over-confident agents actively degrade team output.

Cited: Wu et al. 2025, “MAD cannot exceed the accuracy of its strongest participant”.

No audit trail

Deployments in finance, healthcare and government require explainable decision chains. Current frameworks produce conversation logs, not verifiable evidence. When a regulator asks why the system decided what it decided, there is no proof.

Cited: AI governance market $309M → $4.8B by 2034 (Precedence Research). A market size is not a technical claim and is not offered as one.
The specification, in six layers

Each layer names the research it is derived from.

Nothing here is novel for its own sake. Every layer maps onto established work in argumentation theory, distributed consensus or agent communication, and the reference is printed beside it so the derivation can be checked.

Argumentationlayer 1 · §2.1–2.2

Weighted bipolar AF with graded semantics. Agent positions are nodes in a weighted bipolar argumentation graph. Attacks and supports form directed edges. Acceptability is computed by iterative propagation — σ(a) = w(a)·ρ(α(a), dom(a)) + Σ supports − Σ attacks — converging under contraction when γ⁺ + γ⁻ < 1. Degrees, not binary accept/reject.

Dung 1995 · Amgoud & Cayrol 1998 · Potyka 2019 wBAF modular semantics
Consensuslayer 2 · §3.1

Adaptive two-phase, Raft → PBFT. A clear winner — gap above τ=0.15 — takes the Raft fast path: leader proposes, majority quorum commits. A close call takes the PBFT conflict path: Pre-Prepare → Prepare → Commit with 3f+1 Byzantine tolerance, and new evidence is admissible during Prepare.

Ongaro & Ousterhout 2014 (Raft) · Castro & Liskov 1999 (PBFT) · Zhu et al. 2025
Constitutionlayer 3 · §4.1–4.2

A normative DSL. Hard boundaries, whose violation is an instant rejection; soft preferences, which adjust acceptability by a stated delta; and amendment rules — three vindicated dissents open a constitutional review. A pre-commit validator checks every verdict against the constitution before it is emitted.

Anthropic Constitutional AI · OpenAI Deliberative Alignment · Public Constitutional AI (Abiri 2024)
Transportlayer 4 · §7.1–7.3

A2A and MCP, and neither is required. Deliberation rounds are A2A Tasks; positions are A2A Messages with structured Parts; verdicts emit as A2A Artifacts. It also specifies an MCP server with seven tools, and a raw JSON-RPC 2.0 / SSE binding for anything that speaks neither. Agent Cards advertise the deliberation/v1 skill.

A2A v0.3 · MCP November 2025 specification · AAIF, Linux Foundation
Evidencelayer 5 · §5.1–5.2

Merkle evidence chains. Each round produces a tree — Hash(positions) → Hash(challenges) → Hash(constitutional checks) → Hash(verdict) — and the root is published with the verdict, so any party can recompute it, trace the reasoning and audit compliance. Export is specified as JSON, PDF and OTEL spans.

Merkle 1979 · OpenTelemetry trace correlation · the append-only audit log pattern
Reputationlayer 6 · §6.1–6.3

Domain-aware ELO, discounted for calibration. ρ_new(a,d) = ρ_old(a,d) + K_d·(S − E_d), bounded to [800, 2400]. A vindicated dissenter takes a 1.5× K bonus, scoped to the domain. Weighting uses ρ(α(a), dom(a)) discounted for poor calibration, so rhetorical certainty cannot dominate.

Elo 1978 · Wu et al. 2025, “majority pressure suppresses independent correction”
Anatomy of a round

What the specification says happens when agents disagree.

The timings below are the specification's declared latency budget, in §3.2. They are a design target and not a measurement — nothing has been built to measure. They are printed because a budget that is never stated is a budget that is never missed.

T+0ms
tasks/send

The round opens

A task arrives over A2A. The engine opens a round with a topic, a constitution reference, a deadline of 30s and a quorum of 3. Every agent whose Agent Card advertises deliberation/v1 is invited. A Moderator is elected: the highest-reputation agent that submitted no position of its own.

T+50ms
submission

The graph is constructed

Each agent submits a Position — a structured argument with typed evidence: performance, resource, latency, schema. Positions become wBAF nodes whose initial weight is evidence strength multiplied by domain-aware, calibration-adjusted reputation. Agents may challenge(), adding an attack edge, or support(), adding a support edge.

T+120ms
semantics

Acceptability is computed

Iterative propagation of σ until the maximum change falls below ε=0.001 — the specification expects three to seven iterations. Every position ends with a continuous acceptability degree in [0,1] rather than a verdict.

T+140ms
constitution

Normative validation

The Constitution Interpreter checks every surviving position. A hard-boundary violation is an instant rejection; a soft preference adjusts acceptability by its stated delta. If every position is rejected, the round escalates to human review over an A2A push notification — that is the G5 mechanism, in the place it actually lives.

T+200ms
commit

Verdict and evidence chain

Gap above τ commits on the Raft fast path; a close call takes the PBFT conflict path with its new-evidence window. The winning position becomes the verdict, everything is hashed into the Merkle chain, dissents are recorded, reputations are updated, and the verdict is emitted as an A2A Artifact.

The shape of the interface

Written out so you can argue with it.

This is the interface the specification describes. There is no package that exports it — no npm install, no import that resolves. It is printed here because an interface nobody can read is an interface nobody can object to, and objections are the thing this page is asking for.

a deliberation roundillustrative — no package exports this
// Open a deliberation round over A2A
const round = await deliberatic.open({
  topic: "Which agent handles user onboarding?",
  constitution: "cluster://production-alpha",
  deadline: "30s",
  quorum: 3,
  transport: "a2a",        // or "mcp", "http"
  consensus: "adaptive"    // raft fast-path, pbft conflict-path
});

// A position becomes a node in the wBAF graph
await round.submit({
  agent: "onboarding-specialist",
  position: {
    claim: "Domain context yields better accuracy on this task",
    evidence: [
      { type: "performance", value: 0.94, n: 1847 },
      { type: "resource",    tokens: 1200, latency_ms: 340 }
    ]
  }
});

// A challenge adds an attack edge — R⁻ in the tuple
await round.challenge({
  agent: "general-agent",
  target: "onboarding-specialist",
  grounds: "resource_efficiency"
});

// Resolve: graded semantics, constitutional check, consensus
const verdict = await round.resolve();
// { winner, acceptability, consensus_path, dissents, evidence_chain }
a constitutionspec §4.1 — the normative DSL
# Normative constraints for one agent cluster
hard_boundaries:              # violation is an instant rejection
  - rule: "token_budget <= task.allocated"
  - rule: "pii_access == false || consent.explicit"
  - rule: "irreversible → quorum >= supermajority"

soft_preferences:             # adjust σ(a) by a stated delta
  - rule: "minimize(resource_cost)"
    delta: 0.08
    when: "task.stakes < 'medium'"

consensus:
  fast_path: "raft"
  conflict_path: "pbft"
  escalation_threshold: 0.15   # τ: gap below this takes the conflict path

dissent:
  record: true
  vindication_bonus: 1.5       # ELO K multiplier, domain-scoped
  amendment_trigger: 3         # vindications that open a review
Two specifications, one boundary

Deliberatic decides. AgenTroMatic allocates.

The two are separate documents on purpose, and the boundary between them is the useful part. Both are at rung spec. Neither has an implementation, and a diagram that draws them as connected components would be drawing two things that do not exist and a wire that does not carry anything.

Deliberatic — the decision

  • Weighted bipolar AF — Dung, extended by Potyka's graded semantics
  • Adaptive consensus — Raft fast path, PBFT conflict path
  • A constitutional DSL — hard boundaries, soft preferences, amendments
  • Merkle evidence chains — a root published with every verdict
  • Domain-aware reputation, discounted for calibration
  • Dissent is first-classR⁻ is in the tuple

AgenTroMatic — the allocation

  • Capability bidding — agents self-assess against a task
  • Overlap detection — where two bids claim the same sub-task
  • Quorum policies — majority, unanimous, weighted, human-in-the-loop
  • Leader election under Ra (Raft), with support roles for the rest
  • A reputation ledger that tracks bid calibration
  • Dissent is recoverable, not named — and its page says so
What you can do here

Three things, and none of them is running it.

The rung is spec. A specification has nothing to run, so this page does not offer a button that pretends otherwise — that rule is enforced by the publication gate, which refuses to emit a page whose calls to action its rung has not earned.

Retraction — what used to stand here

A waitlist button. It was wired to nothing: it changed its own label to “Added ✓” and discarded the address, under a note promising you could unsubscribe from a list that never existed. A control that reports success it did not achieve is worse than one that plainly does not work, so it is gone rather than repaired. There is no engine to download and no waitlist to join, and there is nowhere on this page that suggests otherwise.

Tell us where this specification is wrong

Nothing here has run, so the most useful thing a visitor can send is a hole in the formalism — a quorum rule an adversary walks through, a semantics that does not do what §4 says it does, a number on this page you think is wrong.

This box is not that one. The retraction above is about a control that reported success it had not achieved. This is a plain <form action method="POST"> posting to formspree.io when you press Send, so it delivers with scripting switched off entirely; the script that upgrades it to an inline reply prints “sent” only after the endpoint returns a 2xx, and prints what went wrong otherwise. That is the whole difference and it is the only difference worth claiming. Ruled 2026-08-17: the same endpoint computedriven.com uses. It is not a list and there is still nothing to be added to.