Skip to content

v5.0.0 — Consensus Protocol & Deliberation Layer

Latest

Choose a tag to compare

@andrew-hernandez-paragon andrew-hernandez-paragon released this 13 May 06:02
· 10 commits to main since this release

Adds the deliberation primitive: a panel of lens-prompted architect agents writes positions on a topic, a synthesizer merges into a verdict (FOLLOW / ITERATE / ALTERNATIVE / NEED-MORE-INPUT), persisted as queryable graph nodes plus optional ADR. Major version bump reflects scope; every change is strictly additive.

Highlights

Three new preserved node types survive reparse:

  • `Deliberation { id, topic, projectIds[], mode, status, synthesisVerdict?, ts, ... }` — `projectIds` is an array; cross-project deliberations are first-class.
  • `Position { id, deliberationId, role, content, claims[], evidence[], counterArgs[], status: 'asserted' | 'abstained', ... }` — structured claim/evidence/counter-arg artifact (MetaGPT-style), guards against dominant-voice anchoring.
  • `Verdict { id, deliberationId, verdict, rationale, ts, recordedIn?, ... }`

Edges: `HAS_POSITION`, `RESULTED_IN`, `ABOUT`, `SCOPED_TO` (fans out for multi-project), `CITES` (cross-project safe via global unique node IDs). Future-proofing: `SUPERSEDES`, `CITED_BY`, `RESPONDS_TO`, `CONTRADICTS` defined but populated lazily.

Deliberation JSONL ingestor — new `src/ingestors/deliberate/` package + `ingest_deliberate_session` MCP tool (one-shot + watch modes). Watch mode debounces ~500ms and re-runs idempotent MERGEs.

ADR writer — `src/utils/adr-writer.ts` writes ADRs to `~/develop/decisions/NNNN-.md` only for `ALTERNATIVE` / `NEED-MORE-INPUT` verdicts. Keeps the decisions/ dir signal-dense.

`/deliberate` skill at `~/.claude/skills/deliberate/` — user-invokable. Spawns architect agent three times in parallel with pragmatist/perfectionist/operations lens prompts (anti-flip clauses per CAMEL findings; `ABSTAIN-NO-UNIQUE-POSITION` as a valid output), collects structured Positions, runs synth pass, persists.

Cursordiff deliberation viewer (separate cursordiff.nvim repo) — fs-watches the same `deliberation.jsonl`, renders a jury-dashboard floating window. `:CursorDiffDeliberation [id]` user command.

Why this matters

The deliberation layer closes a quality loop on the reasoning process, mirroring how v4.2.0's lineage closes it on agent output. Combined with v4.4.0's QueryOutcome, the substrate now captures user judgment on three independent axes (Decision / QueryOutcome / Verdict). Cross-project deliberations are first-class.

Breaking changes

None. Major bump reflects scope, not compatibility.

Deferred to follow-ups

  • Mandatory baseline comparison (single-agent four-lens self-critique vs multi-agent panel) — recommended evaluation work, not blocking ship.
  • Rounds mode (`--rounds N` back-and-forth dialogue) and auto-fire on architect-ALTERNATIVE — v2.

See `CHANGELOG.md` for full per-change detail.