From tl
Spawns three agents to propose solutions optimized for different quality attributes, then synthesizes trade-offs for architectural decisions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tl:consensus <design problem or architectural decision><design problem or architectural decision>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are running the **Consensus** workflow -- a multi-perspective synthesis pattern that surfaces design trade-offs by having three independent agents solve the same problem optimized for different quality attributes. Design problem: **$ARGUMENTS**
You are running the Consensus workflow -- a multi-perspective synthesis pattern that surfaces design trade-offs by having three independent agents solve the same problem optimized for different quality attributes. Design problem: $ARGUMENTS
Consensus works in 5 phases (with an optional debate round):
Frame the problem (same starting point for all agents)
-> Select 3 optimization lenses (adaptive based on problem type)
-> Solicit 3 perspectives (one per lens)
-> [OPTIONAL] Debate round (cross-proposal challenge)
-> Synthesize (agreements = high confidence, tensions = actual trade-offs)
-> Present report with recommendation
-> Record decision for future context
If $ARGUMENTS is empty, ask the user one clarifying question to understand the decision being made. If $ARGUMENTS is vague (e.g., "improve performance"), ask for specifics: which component, what metric, what constraints?
Otherwise, proceed immediately.
Use Glob and Read to understand the relevant codebase areas -- what exists today, what constraints apply, and what similar decisions look like. Spend just enough time to write a clear problem statement, not exhaustive analysis.
Draft a structured problem statement that will be given to all three agents identically:
## Problem Statement
**What needs to be decided**: [the core question being answered]
**Current state**: [brief description of what exists today, if anything]
**Constraints**:
- [technical constraint, e.g., "must integrate with existing EventBus"]
- [performance constraint, e.g., "sub-100ms latency required"]
- [compatibility constraint, e.g., "cannot break public API"]
- [resource constraint, e.g., "team has limited frontend expertise"]
**Success criteria**: [what "solved" looks like -- concrete and testable]
**Relevant files/areas**:
- [file or directory path with brief description]
- [file or directory path with brief description]
Critical: All three agents receive this exact same problem statement. The only difference between agents is their optimization lens (see Phase 2).
Choose the 3 lenses that will produce the most productive tension for this specific problem. Use the lens palette below:
Lens Palette:
Selection criteria: Pick 3 lenses that will disagree productively -- never select two that optimize for the same underlying value. Match lenses to the problem's constraints (e.g., performance requirements → include Performance, security concerns → include Security). Default to Simplicity/Performance/Maintainability when the problem doesn't strongly suggest alternatives.
Present the selection to the user in one line per lens:
Selected lenses:
- [Lens 1]: [1-sentence description from palette]
- [Lens 2]: [1-sentence description from palette]
- [Lens 3]: [1-sentence description from palette]
Do not proceed to Phase 2 until lens selection is complete.
Use the Task tool to spawn three background agents with subagent_type: "general-purpose" and run_in_background: true. Give each agent the same problem statement, but different optimization instructions based on the lenses selected in Phase 1d.
Agent Prompt Template (instantiate once per selected lens):
You are the [Lens Name] Advocate. Your job is to propose a solution to the problem below that maximizes [lens name].
Optimization lens: [Lens description from palette]. [Lens-specific guidance -- see table below]
[Problem Statement from Phase 1]
Follow the investigation protocol and report requirements from the Agent Preamble (fan-out-protocol rule).
Your deliverables:
- Proposed approach (concrete, not abstract -- describe exactly what you would do)
- Key design decisions and why
- Trade-offs you're accepting (what you're giving up by optimizing for [lens name])
- Files you would touch (specific paths and what changes)
- Estimated complexity (simple / moderate / complex)
Lens-Specific Guidance (add to agent prompt based on selected lens):
| Lens | What to Look For |
|---|---|
| Simplicity | Fewer moving parts, fewer abstractions, less indirection. Prefer boring technology. Ask: "What's the least complex way to solve this?" |
| Performance | Maximize runtime performance, resource efficiency, and scalability. Minimize latency, memory usage, and computational overhead. Ask: "What's the fastest/most efficient way to solve this?" |
| Maintainability | Optimize for long-term code health, testability, and extensibility. Optimize for code that will be easy to debug, evolve, and onboard new developers to a year from now. Ask: "What will be easiest to understand and change over time?" |
| Security | Minimize attack surface, validate all inputs, assume breach, defense in depth. Ask: "What could go wrong and how do we prevent it?" |
| Velocity | Minimize ceremony, reduce coordination overhead, use off-the-shelf solutions. Ask: "What's the fastest path to shipping a working solution?" |
| Consistency | Follow existing patterns, maintain architectural coherence, reduce surprises for future developers. Ask: "What would a developer familiar with this codebase expect?" |
| Resilience | Handle failures gracefully, degrade predictably, design for recovery. Ask: "What happens when this fails and how do we recover?" |
| Usability | Reduce cognitive load, minimize friction, optimize for intuitive workflows. Ask: "How do we make this obvious and easy to use?" |
Allow all three agents to complete. Do not proceed until all three have returned their proposals.
Gate: All three proposals are present — one per lens. If an agent returned an error or empty result, re-dispatch that agent before continuing. Do not synthesize with fewer than three proposals.
After collecting all three initial proposals, ask the user if they want to run a debate round:
Run debate round? (adds cost but surfaces deeper trade-offs)
Debate round: Each advocate will see anonymized summaries of the other proposals and can revise their approach or challenge competing ideas. This adds 3 more agent dispatches but often reveals trade-offs that isolated analysis misses.
Y/N?
If the user declines, skip directly to Phase 3.
If the user approves:
Summarize each proposal using neutral labels (A/B/C) with approach, complexity, and key decisions. Strip all lens-identifying language ("to maximize simplicity", "for better performance", etc.) so advocates respond to IDEAS, not known biases.
Dispatch three NEW background agents (one per original lens). Each agent receives:
Debate Agent Prompt Template:
You are the [Lens Name] Advocate revisiting your proposal after seeing competing approaches.
Your original proposal: [Full original proposal text]
Competing proposals (anonymized): [Proposal A/B/C summaries -- excluding the agent's own proposal]
Original problem statement: [Problem Statement from Phase 1]
Your task:
- What you'd revise: After seeing the alternatives, what would you change about your original proposal? Be specific. If nothing, say why your approach still holds.
- Weaknesses you see: What concerns or risks do you identify in the competing proposals? What are they missing or getting wrong?
- Potential hybrid: Is there a way to combine ideas from multiple proposals that would be superior to any single approach?
Be concrete and constructive. The goal is productive disagreement, not point-scoring.
Allow all three debate agents to complete. Do not proceed until all three have returned their responses.
Read all three agent reports, extracting each proposal's core approach, key decisions, trade-offs, files touched, and complexity. If the debate round ran, also note revisions, cross-proposal critiques, hybrid suggestions, and points of convergence.
Find areas where all three agents agree -- these are high-confidence recommendations. Look for convergence on data structures, core files, integration points, or approaches to avoid. If the debate round ran, convergence that emerged during debate (not present in initial proposals) is particularly strong signal.
List each agreement with its implication:
### Agreements (HIGH CONFIDENCE)
- **All three agents propose [X]**: This is very likely the right choice.
- **All three avoid [Y]**: Strong signal that [Y] is the wrong approach.
- **All three touch [file path]**: This file is central to the solution.
Gate: Each listed agreement is independently proposed by all three agents — not derived from one proposal that the others passively did not contradict. If an apparent agreement is actually one proposal that the others didn't address, reclassify it as a majority position or an uncontested assumption, not a confirmed agreement.
Find areas where agents disagree or propose conflicting approaches. These are the actual design tensions.
For each tension, articulate what the trade-off is. If debate ran, incorporate critiques and revisions into the tension analysis:
### Tension: [Brief title]
**[Lens 1] says**: [approach] because [reason]
- **After debate**: [revision made, if any, or "stood firm because..."]
- **Critiques raised**: [concerns about competing proposals]
**[Lens 2] says**: [approach] because [reason]
- **After debate**: [revision made, if any, or "stood firm because..."]
- **Critiques raised**: [concerns about competing proposals]
**[Lens 3] says**: [approach] because [reason]
- **After debate**: [revision made, if any, or "stood firm because..."]
- **Critiques raised**: [concerns about competing proposals]
**The actual trade-off**: [what you gain and lose with each choice, incorporating debate insights]
If debate ran: Pay attention to revisions that narrow the design space -- when advocates adjust their positions, the remaining disagreement is more precisely defined.
Find cases where 2 of 3 agents agree and note the dissenting opinion. If debate ran, check whether the majority strengthened or weakened.
Propose which approach best fits the situation. Weight advocates by how strongly constraints align with their lens. Agreements override individual preferences. When lenses conflict, explicit requirements trump aspirational qualities.
Present the synthesis in pipe format so downstream skills (/spec, /critique, /tracer) can consume the decision:
## Consensus Report: [Problem Title]
**Source**: /consensus
**Input**: [problem from $ARGUMENTS]
**Pipeline**: (none — working from direct input)
### Items (N)
[Items are agreements, tensions, and the recommendation — each as a typed entry]
1. **AGREEMENT: [point of consensus]** — [implication and why it matters]
- type: agreement
- confidence: CONFIRMED
- lenses: all three
2. **AGREEMENT: [point of consensus]** — [implication]
- type: agreement
- confidence: CONFIRMED
- lenses: all three
3. **TENSION: [title]** — [what the trade-off is]
- type: tension
- positions: [Lens 1]: [approach] / [Lens 2]: [approach] / [Lens 3]: [approach]
- confidence: LIKELY
4. **TENSION: [title]** — [what the trade-off is]
- type: tension
- positions: [Lens 1]: [approach] / [Lens 2]: [approach] / [Lens 3]: [approach]
- confidence: LIKELY
5. **RECOMMENDATION: [chosen approach]** — [rationale in one line]
- type: recommendation
- based-on: [lens name or "hybrid"]
- accepting: [key trade-offs]
- confidence: CONFIRMED | LIKELY
[... agreements first, then tensions, then recommendation last]
### Proposals
**[Lens 1] Advocate**:
- Initial approach: [1-2 sentence summary]
- Complexity: [simple/moderate/complex]
- Key trade-offs: [what's sacrificed]
- **If debate ran**: [revisions made or "held firm"]
**[Lens 2] Advocate**:
- Initial approach: [1-2 sentence summary]
- Complexity: [simple/moderate/complex]
- Key trade-offs: [what's sacrificed]
- **If debate ran**: [revisions made or "held firm"]
**[Lens 3] Advocate**:
- Initial approach: [1-2 sentence summary]
- Complexity: [simple/moderate/complex]
- Key trade-offs: [what's sacrificed]
- **If debate ran**: [revisions made or "held firm"]
### Next Steps
1. [immediate next action -- usually "decide on unresolved tensions" or "proceed to /spec"]
2. [second action]
3. [third action]
### Summary
[One paragraph: the problem, the chosen approach, key agreements that drove the decision, trade-offs being accepted, and what the user needs to decide next.]
If there are tensions where no clear winner exists based on constraints, use AskUserQuestion to get human input:
We have a design tension that requires your decision:
[Present the tension with trade-offs]
Which approach do you prefer, or should we explore a hybrid?
Do not proceed past this point until the user resolves critical tensions.
Capture the decision in your task tracker so future sessions have context. Create a task with:
Recommend the appropriate next skill based on complexity: direct task creation for straightforward work, /spec for detailed planning, or /tracer for incremental exploration.
/spec or /tracer for execution.npx claudepluginhub tyevans/tackline --plugin tacklineBrainstorms complex architectural decisions by launching parallel agents from diverse perspectives (pragmatist, security, performance) and synthesizes unified optimal solutions.
Deliberates complex architectural, technology, or design decisions where options are not yet well-defined. Assembles stakeholder perspectives to surface convergence and tension without forcing premature choice.
Evaluates decisions via stance rotation (neutral, advocate, critic perspectives), synthesizes confidence-rated recommendation with next steps. For architectural choices, tech options, build-vs-buy, tradeoffs.