← ClaudeAtlas

rivendell-councillisted

Multi-lens adversarial review — for major conclusions, architecture decisions, root-cause verdicts, or security judgments, dispatch the three opposition lenses (elf-archer, orc-saboteur, hobbit-gardener) in parallel to independently attack the conclusion; adopt it only if a majority survives. Triggers: "adversarial review", "多方抗辯", "抗辯", or any high-stakes judgment — irreversible operations, contract/schema changes, anything touching money or precision, architecture decisions, root-cause verdicts, production-affecting conclusions. Not for trivial edits or pure Q&A.
twjohnwu/tlor-orchestration · ★ 0 · AI & Automation · score 72
Install: claude install-skill twjohnwu/tlor-orchestration
# Rivendell Council (multi-lens adversarial review) > Named for the council at Rivendell that debated the Ring — and only then > dispatched the Fellowship. Debate first; act on what survives. > Ships with tlor-orchestration; the lenses are this plugin's `elf-archer`, > `orc-saboteur`, `hobbit-gardener` (pinned opus since v1.2.0). ## Purpose A single model checking its own conclusion systematically favors that conclusion. This flow prevents "sounds right but is wrong" verdicts by sending the conclusion to three independent sub-agents with different lenses, whose default stance is to overturn it. ## Steps 1. **Assemble the review package** — one self-contained statement: - the conclusion itself (one sentence) - the evidence it rests on (file:line, test output, measurements) - the blast radius (what changed, who depends on it) - If the subject is N independent findings (e.g. a review report's items): adjudicate each finding separately — never bundle them into one aggregate conclusion; bundling dilutes per-finding resolution. 2. **Dispatch all three lenses in ONE message** (Agent tool, subagent_type `elf-archer`, `orc-saboteur`, `hobbit-gardener` — parallel, never serial, never merged into a single agent). Each prompt = the review package verbatim + that lens's task. Model: the lenses are pinned `opus` in frontmatter — do NOT pass a `model: sonnet` downgrade inside this flow (the downgrade exists for routine convenings; adversarial r