AgenTroMatic is a specification in the ComputeDriven worldspecThat rung covers the specification at docs/spec/README.md, v0.2 — the quorum module, the seven-phase round and the reputation ledger are Elixir in a document, and none of it has run.the specification →
The question this site exists to answer

How should agents allocate contested work?

A task arrives and two agents both claim the same piece of it. Something has to settle that, and the usual answers are a wired graph somebody drew once or a load balancer that knows nothing about the work. AgenTroMatic specifies a third: agents bid, overlaps are detected, the contenders argue, peers vote, and a quorum policy chosen per capability decides what counts as settled. Five agent interoperability protocols were scored against six governance dimensions in June 2026 and voting came back absent in every one of them. Voting is what this specification is about. It is a specification. None of it has run.

Where this stands, before anything else on the page

A specification with no implementation, built on another one.

Status
spec — A specification, and this page. Capability bidding, overlap detection, negotiation, peer voting, leader election under Ra, quorum-validated execution and a reputation ledger are described in detail, and no line of any of it has been written. It is built on the Deliberatic protocol, which is also a specification.
Last verified
2026-08-16
Source
docs/spec/README.md in this repository, v0.2. Every section number cited on this page was checked to resolve in it on 2026-08-16, and the quorum module was counted rather than estimated — 21 lines, after an earlier draft said "forty" because forty sounded like the right size.
Limit
This establishes that a document exists and that it addresses the dimension the cited paper finds absent everywhere. It does not establish that a bid is well-calibrated, that a quorum rule survives an adversary, or that any of it runs. Nothing on this domain executes anything, and the worked trace below is an illustration from the specification rather than a recording of a system.
Next rung
in_tree — Code in a repository that implements the quorum module and passes a test against it. It is 21 lines and needs no cluster to try, which is the reason it is the thing this page asks for.
Placement

The dimension nobody encodes.

Five agent interoperability protocols were scored against six governance dimensions in June 2026. Voting came back absent in every one of them. Voting is what this specification is about.

How should agents allocate contested work?

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
The paper's own summary of the three columns below: “Voting, dissent preservation, and human escalation are absent across all five protocols.”
G3Votingabsent in all five
“Preference aggregation with quorum, rounds, and position resolution.”
The specification's quorum module resolves a round four ways — :majority, :unanimous, :weighted by reputation at a 0.7 threshold, and :human_in_the_loop — and a policy binds a different one per capability, so trade execution and reporting are not settled by the same rule.
spec §9 quorum policies · §3.1 the seven-phase round
G4Dissentpartial, and we say so
“Minority positions are retained in decision outputs, not silently dropped.”
A losing bidder survives twice: in the append-only deliberation trace, phase by phase, and in reputation, where an agent that dissented and turned out to be right takes a 1.5× bonus. But the trace has no first-class dissent field — dissent is recoverable from the phase record rather than named in it. The first-class version is Deliberatic's R⁻, and it is a different document. Claiming the dimension outright would have been the easy sentence and the wrong one.
spec §4.4 deliberation trace · §6 reputation
G5Human escalationabsent in all five
“Conditions and mechanisms for routing decisions to human authority.”
Both halves are written. The condition is a quorum policy that returns {:escalate, :requires_human_approval} instead of a verdict; the mechanism is an escalation target named in the policy, with a round cap. A headline on this page says no human routing is required — that is a claim about routine work, and the escalation path exists precisely because some work is not routine.
spec §9 :human_in_the_loop · §3.1 escalation
Two limits, stated in the same breath. First, none of this has run. The quorum module, the seven-phase round and the reputation ledger are Elixir in a specification document, not a package — the rung is spec, exactly as the band at the top of this page says, and a specification that covers a gap is not a system that closes it. Second, on G6 audit the trace is append-only but not tamper-evident: there is no hash chain in it, and the paper's definition asks for one. Merkle-chained evidence is specified next door at Deliberatic and is not implemented there either.
A round, worked through

What the specification says happens when two agents want the same thing.

This is the worked example from the specification. It is an illustration and not a recording — no system produced it, the agent names are invented for the example, and the confidences are figures in a document. The section header used to read “Live Deliberation Trace”, which was the one word on this page that could be read as a running system, and it is corrected here rather than left in place.

task_8f2a — “Analyze contract for financial risk exposure”illustrative · nothing produced this
phase 1 — capability bidding
  legal-analyst    0.87  "Indemnification clauses map to my training domain"
  finance-scorer   0.82  "Can quantify financial exposure from risk clauses"
  summarizer       0.91  "Executive summary is my core capability"
  data-extractor   0.34  "Low relevance — I'll abstain"

phase 2 — overlap detected
  sub-task "risk classification" claimed by Legal and Finance
  → negotiation required

phase 3 — negotiation
  Legal    "Risk classification requires understanding clause intent,
            not just numerical exposure. I should lead — Finance can score after."
  Finance  "Risk without quantification is just a label. The user asked
            about financial risk specifically."

phase 4 — peer vote
  summarizer      → Legal  "Classification should precede quantification"
  data-extractor  → Legal  "Clause semantics are the harder subtask"

phase 5 — consensus reached
  legal-analyst elected leader for "risk classification"
  finance-scorer → support role · summarizer → executive summary
  data-extractor abstained · Raft term #47
The deliberation loop

Seven phases, and no human routing in the routine ones.

Every task triggers the full cycle. There is no hard-coded assignment anywhere in the specification: the agents organise themselves against each task, and the escalation path in §9 is what happens when they cannot.

1

Broadcast

The task arrives over A2A and is sent to every agent in the cluster. spec §3.1

2

Bid

Each agent self-assesses: confidence, reasoning, claimed sub-tasks, cost. A bid is a structure, not a number on its own.

3

Detect

The engine identifies where two or more agents have bid on the same sub-task with high confidence. That overlap is the contest this whole document is about.

4

Negotiate

The competing agents argue their case and peers evaluate and cast votes. The argument is retained, which is what separates this from a blind auction.

5

Elect

Winners become leaders, runners-up take support roles, and a Raft term is assigned through Ra. spec §5.2 Ra state machine

6

Execute

Agents work via A2A tasks and results are committed only when the quorum policy validates them. spec §9

7

Learn

Bid accuracy is tracked against outcome and capability scores adjust, so an agent that consistently over-bids loses weight. spec §6 reputation

The load-bearing 21 lines

Four ways to settle a round, and one of them refuses.

This is the whole quorum module as the specification states it. It is 21 lines — counted, after an earlier draft of this section said “forty” because forty sounded like the right size. It needs no cluster to try, which is why it is the thing this page asks you to implement.

AgenTroMatic.Quorum — spec §9a document, not a package
defmodule AgenTroMatic.Quorum do
  @doc "Validates results against quorum policy."
  def validate(results, :majority) do
    approvals = Enum.count(results, & &1.approved)
    if approvals > length(results) / 2, do: :ok, else: {:escalate, :no_majority}
  end

  def validate(results, :unanimous) do
    if Enum.all?(results, & &1.approved), do: :ok, else: {:escalate, :not_unanimous}
  end

  def validate(results, :weighted) do
    weighted_sum = Enum.sum(for r <- results, r.approved, do: r.voter_reputation)
    total_weight = Enum.sum(for r <- results, do: r.voter_reputation)
    if weighted_sum / total_weight >= 0.7, do: :ok, else: {:escalate, :below_threshold}
  end

  def validate(_results, :human_in_the_loop) do
    {:escalate, :requires_human_approval}
  end
end

A domain template binds a different rule per capability. In the specification's financial-services example the default is :weighted, risk_assessment is :unanimous, trade_execution is :human_in_the_loop, and reporting is :majority — with an escalation target and a round cap alongside. That last clause is G5 in the place it actually lives: a rule that returns an escalation instead of a verdict.

What it is arguing against

Static routing is the wrong abstraction.

When agent capabilities overlap and evolve, a hard-wired graph breaks and nobody notices until the output is wrong. These are the four comparisons the specification makes, stated as positions rather than as results — none of them has been benchmarked, by us or by anyone.

What the alternatives do

  • Static orchestration — CrewAI, LangGraph: you wire the graph once
  • Load balancers — route by availability
  • Auction systems — Contract Net Protocol: blind bidding
  • A2A Agent Cards — say what an agent claims it can do

What this specifies instead

  • Agents negotiate the graph on every task
  • Routing by capability fit, argument, and track record
  • Visible deliberation — agents argue, peers evaluate, reasoning is logged
  • Reputation records what an agent actually did well, which is a different claim
The rest of the specification

Six components, none of them written.

The Deliberatic protocol

Formal argumentation semantics (Dung, Potyka), weighted bipolar attack and support graphs, constitutional guardrails and Merkle-chained evidence logs. The decision science behind every bid.

Also a specification. deliberatic.com says so on its own front page.

Reputation

Per-capability scores, bid calibration tracking, peer endorsements and trend detection. Over-confident agents lose weight; quiet performers gain it.

Specified in: §6 reputation system

The Observatory

Watch a deliberation as it happens; click any output to see the full trace of who bid, who argued and how it resolved; replay it with a changed input.

Specified in: §8 Observatory. Not built, and the screenshots that would show it do not exist.

A2A native

All inter-agent communication travels over A2A, and Agent Cards are extended with reputation metadata and bid history.

Specified in: §7 A2A integration

Quorum policies

Per-step consensus — majority, unanimous, weighted, human-in-the-loop — with domain templates for finance, legal and healthcare.

Specified in: §9, and printed in full above.

Constitutional governance

Deliberatic constitutions define hard boundaries and soft preferences; vindicated dissent is tracked and can trigger an amendment vote. The deliberation trace is intended to be the compliance artifact.

Limit: the trace is append-only and carries no hash chain, so it is not yet tamper-evident.
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 launch date and an email box used to stand here. The date was Q2 2026 and it passed; the box was wired to nothing at all, so every address typed into it went straight to the floor. Both are gone rather than quietly refreshed to a later quarter.

That paragraph is frozen. The publication gate re-extracts it from this page on every run and compares its SHA-256 against a digest taken at the commit before this redesign; a single changed character refuses the build. A footer mailto: also went in this revision — Cloudflare was rewriting it at the edge for obfuscation, which is the entire reason the served page measured 159 bytes larger than the file in this repository.

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 specification — a quorum rule a real adversary walks straight through, an allocation an honest bidder can game, or a number on this page you think is wrong.

This box is not that one, and the paragraph above is unedited. It is frozen by digest and describes what used to stand here; that is still true of the old one. 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. Ruled 2026-08-17: the same endpoint computedriven.com uses. The publication gate still refuses any address link anywhere on this page.