.claude/skills/decide/SKILL.md
Three-agent adversarial debate protocol for strategic decisions. Two advocates steelman opposing positions while a moderator identifies risks and synthesizes a binding consensus. Use when choosing between alternatives, evaluating tradeoffs, or making high-stakes decisions.
npx skillsauth add dirien/yet-another-agent-harness decideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a structured three-agent debate to reach consensus on a strategic decision. Two advocates steelman opposing positions while a moderator asks hard questions, identifies risks, and synthesizes the binding consensus.
Why this works: adversarial structure surfaces arguments brainstorming misses. Evidence-grounded research prevents epistemic closure. Forced concessions in Round 2 prevent entrenchment. The moderator writes the binding consensus after hearing both sides.
Before running the debate, verify the input contains a genuine decision with at least two distinguishable options or courses of action.
If the input is a factual question, explanation request, or single-option statement, respond directly instead: "This protocol works best when choosing between alternatives. Could you rephrase with the options you're weighing, or ask me directly?"
When in doubt, proceed — err on the side of running the debate.
Read project documentation and context files to understand the decision space. Common sources include README, architecture docs, product docs, recent git history, and any files the user referenced.
From the decision topic, formulate two clear, opposing positions:
If the topic naturally implies two sides (e.g., "gRPC vs REST"), use those directly. If the topic is open-ended (e.g., "pricing strategy"), research the space and formulate the two strongest opposing approaches.
Extract hard constraints from the user's message or project docs: budget limits, timeline requirements, team size, technical constraints, business requirements, non-negotiable values.
Generate the debate brief before proceeding. Evaluate against three conditions:
If all conditions pass, present the brief and proceed to Phase 1:
Decision: [one-line summary]
Position A: [name] — [one-sentence description]
Position B: [name] — [one-sentence description]
Constraints: [list any hard constraints]
Launching Round 1...
If any condition fails, present the brief and ask the user whether to reframe or proceed as-is.
Launch three agents in parallel. Each agent runs independently and cannot read the others' output.
Compose agent prompts following
references/debate-prompts.md — Round 1 section.
After all three agents complete, present to the user:
Then immediately proceed to Round 2.
Launch three agents in parallel. Each agent receives a summary of the other agents' arguments and must respond.
Compose agent prompts following
references/debate-prompts.md — Round 2 section.
Show the user:
Ask the user if they want to save the consensus. Determine the appropriate file based on the decision type:
biz.mdARCHITECTURE.md or ADR-NNN.mdPRODUCT.mdtools
Implements advanced TypeScript type systems, creates custom type guards, utility types, and branded types, and configures tRPC for end-to-end type safety. Use when building TypeScript applications requiring advanced generics, conditional or mapped types, discriminated unions, monorepo setup, or full-stack type safety with tRPC.
development
Use when challenging ideas, plans, decisions, or proposals using structured critical reasoning. Invoke to play devil's advocate, run a pre-mortem, red team, or audit evidence and assumptions.
development
Systematic technical debt analysis across architecture, testing, documentation, and infrastructure. Investigates the codebase, scores findings by impact and effort, and generates a prioritized TECH_DEBT.md remediation plan. Delegates to specialized skills for code quality (scout) and linting (lint-fix). Use when assessing overall project health, planning cleanup sprints, or onboarding to an unfamiliar codebase.
testing
Install and configure Tailscale across platforms. Detects OS, distro, and environment (including WSL2 and containers). Verifies existing installations, performs platform-appropriate install, and guides initial connection. Use when setting up Tailscale on a new machine, onboarding a server to a tailnet, or verifying an existing install.