Add /adjudicate command: debate low-priority backlog to a verdict

Parked P2/P3 technical items accumulate faster than I can judge their
necessity. /adjudicate runs a grounded per-item debate (investigator →
build/drop advocates → judge) over a repo's ROADMAP and routes each to
DROP / DO / ESCALATE, so I ratify decisions instead of researching them.

Recommend-only in v1; verdict autonomy is gated by blast radius, not
priority. ROADMAP-only input — nudges /triage rather than reading the
raw inbox.
This commit is contained in:
Keysat
2026-06-17 22:42:32 -05:00
parent 23b83f5a4c
commit 46298e047f
4 changed files with 184 additions and 4 deletions
+31
View File
@@ -214,3 +214,34 @@ Qdrant, and it hosts matrix-bridge); **don't hardcode a model — query the Spar
gateway** for the live one (daily driver Qwen3.6, hot-swappable); networking reduced to LAN /
WireGuard / StartTunnel (Proton VPN + Tor were legacy, dropped). UNVERIFIED banner replaced
with a "verified 2026-06-15" note; decision steps 4 and 6 aligned. Commit `ee5c8bb`.
## 10. `adjudicate` — debate low-priority backlog items to a verdict ✅ BUILT (2026-06-17)
Built and live: `guides/adjudicate.md` + `adapters/claude/commands/adjudicate.md` (the
`/adjudicate` command). Solves backlog clutter the owner can't easily judge: low-priority
(P2/P3) technical/backend items that may be necessary or may be bells-and-whistles, and that
he shouldn't spend expertise on *because* they're low priority. Run inside a repo, it
adjudicates that repo's ROADMAP items via a grounded debate and routes each to a verdict the
owner ratifies instead of researching.
- **Pipeline (per item):** investigator (read-only — does the problem exist? already handled?
what would it touch? + blast-radius classification) → build-advocate ∥ drop-advocate (argue
from the investigator's findings, not speculation) → judge (rubric = `how-i-work.md` + repo
`AGENTS.md`; **biased to DROP on ties / low confidence**, since these are already low-priority).
- **Three verdicts:** **DROP** (the only autonomously-applied call — ratified in one batch, owner
needn't understand the tech), **DO** (worth it + LOW blast radius → annotated with a ready plan,
recommend-only, not executed), **ESCALATE** (worth it but HIGH blast radius / low confidence /
an epic → balanced brief for the owner's call).
- **Autonomy is gated by blast radius, not priority** — HIGH = touches data/auth/money/external
surface or changes observable behavior (unclear ⇒ HIGH). It may auto-recommend *dropping* a HIGH
item but never *doing* one.
- **ROADMAP-only input.** Nudges the owner to `/triage` first if untriaged inbox items exist for
the repo, but never reads raw inbox items into the debate (that's `/triage`'s routing job —
duplicating it invites drift). Two gates: confirm the item set before fan-out (cost control),
then approve the batch of ROADMAP edits. The ROADMAP diff + commit message is the audit trail
(no separate report file).
**Remaining options:** (a) **v2 — narrow auto-execution** of the safe "DO + LOW blast radius +
reversible + test-covered" class, once the owner has watched it make calls and trusts the verdicts
(deliberately deferred — recommend-only first to build trust); (b) a thin `/triage`-then-`/adjudicate`
combo if the two-command chaining friction proves real (YAGNI for now).