Consensus
The consensus plugin uses provider-CLI-backed AI peers for five related
workflows: converging artifacts through peer deliberation, one bounded read-only
review, single-round panel responses with side-by-side attribution,
advisory takes that the host dispositions (one-shot by default, with bounded
follow-up rounds on request), and delegated tasks that the host verifies. It also packages observer and observer-collab, the
plugin-local forms of the standalone session observation skills. The peers are invoked through the generated consensus CLI; the
converging wrappers parse your document, run the peers through structured verdict
rounds, and write a markdown deliberation artifact with the final output,
resolution metadata, and a deliberation log.
The peer-workflow scope stays intentionally narrow: five converging skills, one panel skill, one review skill, one advisory skill, and one delegation skill. The plugin additionally ships two session-observation skills because observing and collaborating across providers belong with consensus behavior.
create— creates a new artifact from a brief withindependent_draft,parallel_synthesized, maximum agency, a deliberation log, and aconsensus-resolutionblock.decide— chooses between documented options withindependent_draft,parallel_synthesized, minimal agency, required decision headings, explicit## Dissent / Unresolved Disagreement, and aconsensus-resolutionblock.plan— turns a goal and inline constraints into a structured markdown plan withindependent_draft,parallel_synthesized, moderate agency, required## Steps,## Dependencies, and## Risksheadings, and aconsensus-resolutionblock.refine— refines a markdown draft by asking two peers to deliberate toward a converged artifact with an audit trail.evaluate— judges an artifact against a rubric, with unified findings, per-peer reasoning, and dissent preserved in the deliberation log.review— asks one independent reviewer to inspect a branch diff, selected files, or one document and writes validated OAT-compatible findings without applying them.panel— asks multiple provider-backed panelists the same question and writes side-by-side attributed responses while the host stays a neutral moderator.phone-a-friend— asks one other provider-backed peer for a structured advisory take, then leaves the host responsible for agreeing, applying, ignoring, or following up. It also ships standalone under the same name.delegate— hands one task to another provider: code changes run in a dedicated git worktree, questions and investigations run read-only, and the host verifies the diff before you decide what to keep. It also ships standalone asdelegate.observer— plugin-local form ofsession-observer.observer-collab— plugin-local form ofsession-observer-collab; it requires the observer workflow and accepts either supported installation identity.
For the deepest reference — operator-QA walkthroughs, exact commands, and example inputs — see the consensus plugin README.
Peers, not personas
Consensus invokes provider CLIs as separate processes, rather than assigning
several roles inside one conversation. The host remains responsible for acting
on results. Disagreement is preserved in the artifact and deliberation log:
an impasse is a valid result, decide includes a dissent section, and panel
does not synthesize its independently attributed responses.
For example, after installing the plugin in Claude Code:
/consensus:refine draft.md --goal "tighten the failure-handling section"
/consensus:panel --question "Should retries live in the client or gateway?" --panel-size 3The first seeks a refined artifact with an audit trail; the second gives you
separate perspectives to judge. Codex uses $consensus:refine and
$consensus:panel. Cursor's local plugin load uses the local skill names;
see Installation for the host-specific setup.
The wrapper emits JSONL status events while the generated CLI returns one JSON envelope per run and spawns the other providers' CLIs as separate OS processes. IMPASSE is checked before convergence; a declined convergence consults the escalation triggers. Every terminal outcome writes the artifact.
Scroll sideways to see the whole diagram.
SVG regenerated 2026-09-29
Who decides: refine, panel, phone-a-friend
The three shapes are not interchangeable. refine deliberates to convergence or a reported impasse, panel returns attributed takes and refuses to synthesize, and phone-a-friend returns an advisory take that the host must disposition, with bounded follow-up rounds with the same peer when you ask for them.
Mermaid updated 2026-09-28
The outcome determines who acts next:
- Refine produces a converged artifact or reports an impasse. An impasse comes back to you; resume with
--user-direction. Other escalation cases follow the agency policy. - Panel requires at least two successful responses. Panelists respond independently, and the host's instructions prohibit adding a synthesis, vote, or recommendation.
- Phone-a-friend returns a take, recommendation, risks, follow-up questions, and confidence from one provider turn. The host must state whether it agrees, disagrees, applies, ignores, or follows up on that advice. When you ask for follow-up rounds, the host continues the same peer within a small call budget and reports agreement on a named revision, an evidence gap, an impasse, or an exhausted budget.
Iteration modes
The shipped consensus skills support three iteration modes, selected with
--iteration:
alternating(default forrefine) — one peer revises and the other responds, turn by turn. Lowest cost: one peer call per round.parallel_revision(default forevaluate) — both peers revise the same input simultaneously each round, each critiquing its own and the peer's previous revision; the run converges on emergent agreement. Costs 2x peer calls per round.parallel_synthesized— parallel revision plus a per-round synthesis call that merges both revisions into the next round's shared input. Costs 2x peer calls plus one synthesis call per round.
Parallel modes disclose their per-round call multiplier in the run_started
JSONL event (calls_per_round) and report actual peer_calls /
synthesis_calls totals at completion.
Synthesizer, agency, and escalation
- Synthesizer — in
parallel_synthesizedmode, a synthesis call merges both peers' revisions each round. It defaults to the first configured peer's provider and can be overridden with--synthesizer <provider-id>. The synthesizer must be present in the provider inventory, and the flag is warned-and-ignored outsideparallel_synthesized. - Agency —
--agencycontrols who resolves a stuck section. Atminimalagency, unresolved peer disagreement is surfaced to the user rather than silently decided. - Escalation — when a parallel-mode section gets stuck (persistent
disagreement, oscillation, budget exhaustion, or near-done drift), the wrapper
emits an
escalation_requiredJSONL event routed by--agencyto the user or the host. A user decision re-enters with--user-direction; a host decision re-enters with--host-directionand records as an attributed orchestrator round.
See Configuration for saved defaults and peer selection, Provider setup for readiness and diagnostics, and Provider run controls for output and write policies. The per-skill pages describe their full command sets.
What is handed to a provider process
This is the local process boundary, not a network boundary. The wrapper reads
selected input and constructs a prompt payload, which every provider receives
on stdin. A JSON-mode run also supplies the schema, and the consensus submit
environment and instructions when the peer can run that command: not for Claude
scoped-grant or workspace-write runs, and not for read-only Cursor. A
--output text run supplies neither.
Transcript, observer, and run-state files are stored locally, but selected contents can enter the prompt. Provider subprocesses may also access files in their working directory under their own permission and sandbox settings; the wrapper's path guards do not confine those processes. Provider CLIs may transmit context to their services. Review those tools' configuration before sharing sensitive material. Returned structured payloads are schema-validated, but validation does not make their advice trustworthy or authorize following it.
Scroll sideways to see the whole diagram.
SVG regenerated 2026-11-12
Limitations
- The plugin ships
create,decide,plan,refine,evaluate,panel,phone-a-friend,delegate,review,observer, andobserver-collab. Phone, Review, and Delegate also have declared standalone forms; the two observer skills use their fullsession-*names standalone. The other six peer workflows are plugin-only. - Remaining consensus-family skills are future work:
consensus-research. - Three iteration modes ship (
alternating,parallel_revision,parallel_synthesized);parallel_revisionandparallel_synthesizeddisclose their per-round call multiplier (2x peer calls, plus 1 synthesis call for synthesized) and escalate stuck states through the agency-gated ladder. - The independent-draft cold-start strategy is exposed through
create,decide, andplan.refineandevaluateremain shared-input only. - Sections converge independently; whole-document harmonization and deliberation metrics / cost caps remain deferred.
- Verdict submission is best-effort by default: successful submit sidecars are preferred, then wrappers fall back to final-message parsing. Strict require-submission mode remains future work.
- Cursor is supported as a host runtime and as a first-floor peer when its local
CLI is authenticated. Treat
auth_requiredinventory/preflight results as a local setup issue, not a retryable consensus failure. - Codex public marketplace submission is not assumed; Git/local install is the v0.1 path.
- skills.sh listing should not be claimed until indexing has been verified after publication.
- Prompt injection inside input artifacts is mitigated by prompt framing, filtering, and schema validation where applicable, but peer CLIs may still produce structurally valid bad advice. Review the audit trail before publishing outputs.
- This plugin adds no telemetry. Configured provider CLIs may have their own behavior; review those tools separately.
Contents
Create, Plan & Decide
- Create —
createusage: brief inputs,independent_draftdefaults, output contract, and input handling. - Plan —
planusage: goal and inline constraints, moderate-agency defaults, required headings, and output contract. - Decide —
decideusage: options input, minimal-agency defaults, required headings, dissent surfacing, and output contract.
Improve & Assess
- Refine —
refineusage: sequential default, iteration modes, resume, escalation, and host-mediated parallel sections. - Evaluate —
evaluateusage: artifact-vs-rubric command, defaults, output contract, and guided rubric creation. - Review —
reviewusage: three bounded selectors, one read-only reviewer invocation, OAT-compatible artifacts, and detection limits.
Consult Peers
- Phone-a-friend —
phone-a-friendusage: advisory peer call, optional bounded follow-up, provider selection, and host disposition. - Panel —
panelusage: single-round multi-peer questions, panelist selection, JSONL status, output contract, and neutral moderation. - Delegate —
delegateusage: write or read-only mode, peer selection, worktree writes, host verification, and continuation.
Observe & Collaborate
- Observer — Read and watch a pinned peer session; also available standalone as
session-observer. - Collaborative Observer — Coordinate two sessions with explicit authority boundaries; also available standalone as
session-observer-collab.
Reference
- Configuration — Saved workflow defaults, peer selection, synthesizer, and agency.
- Provider setup — Inventory, readiness, diagnostics, provider programs, and authentication.
- Provider run controls — Output modes, retries, timeouts, process cleanup, and write policies.
Plugins
Choose Consensus for independent perspectives or Session for understanding work, next actions, continuity, coordination, and session evidence.
Create
Run the create skill to produce a new artifact from a brief with independent peer drafts, synthesis, a deliberation log, and resolution metadata.