From gangsta
Runs multi-agent adversarial debate for brainstorming architectural solutions post-reconnaissance: proposer suggests plan, devil's advocate critiques, synthesizer integrates don feedback; strict round limits.
npx claudepluginhub kucherenko/gangsta --plugin gangstaThis skill uses the workspace's default tool permissions.
The Grilling is a structured Multi-Agent Debate (MAD) protocol. Before any plan is set in stone, agents engage in adversarial brainstorming to explore solutions, test feasibility, and enumerate options exhaustively. The Don participates every round.
Orchestrates multi-agent debates with 2-5 dynamic agents in Challenge (select best variant), Strategy (deep analysis with proposals), or Critic (find weaknesses) modes. Triggers on debate, challenge, compare, critique prompts.
Convene parallel role-specialized agents to debate cross-domain technical decisions like architecture pivots, API surfaces, or codebase audits, producing a decision log.
Deploys 32 adversarial agents for parallel analysis to stress-test ideas, arguments, architectures; generates steelmans, counterarguments, and adversarial validation.
Share bugs, ideas, or general feedback.
The Grilling is a structured Multi-Agent Debate (MAD) protocol. Before any plan is set in stone, agents engage in adversarial brainstorming to explore solutions, test feasibility, and enumerate options exhaustively. The Don participates every round.
Invoked after the Don approves the Reconnaissance Dossier (Reconnaissance complete).
Autonomous Mode: When invoked under gangsta:autonomous-mode, see § Per-Phase Interaction Schemas → the-Grilling in that skill. Otherwise this skill operates as written.
| Limit | Value | Rule |
|---|---|---|
| Minimum rounds | 2 | No Premature Consensus — 1-round agreement is suspicious |
| Default maximum | 5 | Standard debate ceiling |
| Hard ceiling | 7 | Don can extend from 5 to 7 if debate is productive |
| Early exit | After round 2 | Don can declare consensus at any point after round 2 |
These limits are non-negotiable. If round 7 is reached without Nash Equilibrium, the debate ENDS and the Synthesizer produces a "Best Available Consensus."
Proposer (subagent) — Reads the Reconnaissance Dossier and proposes an architectural solution. The proposal must include:
Devils-Advocate (subagent) — Attacks in two layers:
Don — Asked for opinion, one question at a time:
Autonomous Mode: Do NOT ask the human Don. Invoke gangsta:don-proxy to provide the per-round position statement (agrees/disagrees with the attack, any additional concerns, any override of the proposal). Pass don-proxy's response to the Synthesizer as the Don's input for this round.
Otherwise (default Heist): Present the summary and concerns, then ask one question first: "Do you agree with the Devil's-Advocate's attack?" Wait for the answer. Then ask: "Any concerns they missed?" Wait. Then: "Do you want to override any part of the proposal?" Wait. Collect all answers before passing to the Synthesizer.
Synthesizer (subagent) — Incorporates:
Same cycle: Devils-Advocate attacks → Don weighs in → Synthesizer revises.
The Grilling ends when ANY of these is true:
Autonomous Mode: Do NOT ask the human Don. Invoke gangsta:don-proxy to decide: accept current consensus (auto-advance to the-Sit-Down), extend the debate up to 2 more rounds (bounded by the --rounds flag from /gangsta:heist), or reject the proposal (abort). Proceed based on don-proxy's decision without pausing for human input.
Otherwise (default Heist): Ask the Don:
"We've completed 5 rounds of The Grilling. [Summarize current state]. Do you want to:
- Accept the current consensus and proceed
- Extend the debate (up to 2 more rounds)
- Kill this proposal and start over"
If the hard ceiling is reached:
## Best Available Consensus
**Proposal:** <Final revised solution>
### Resolved Points
- <Points where all parties agree>
### Unresolved Objections
1. <Objection> — Risk: HIGH/MEDIUM/LOW — Mitigation: <if any>
2. ...
### Don's Decision Required
Accept this consensus (with documented risks), reject and restart, or table.
Every interaction with the Don asks one question at a time. Wait for the Don's answer before asking the next question.
This rule overrides any template or subagent output that bundles multiple questions into a single message. The orchestrating agent (the one running The Grilling) must:
When using the question tool to ask the Don, every option MUST have both fields as non-null strings:
label: string — concise display text, 1-5 words
description: string — explanation of what choosing this option means
description is NEVER null, undefined, or omitted. Even for obvious choices like "Yes" or "No", provide a description:
Bad: { label: "Yes" }
Bad: { label: "Yes", description: null }
Good: { label: "Yes", description: "I agree with the Devil's-Advocate's attack" }
Good: { label: "No", description: "I reject the attack — the proposal stands" }
Violating this schema causes the tool call to fail with a validation error.
This applies to:
Why: The Don gives better answers to one question than to three asked simultaneously. Bundled questions force mental juggling and produce lower-quality decisions.
If the Devils-Advocate repeats a previously-addressed objection:
If the Devils-Advocate's attacks are consistently weak or off-topic:
The Proposer, Devils-Advocate, and Synthesizer are dispatched as subagents using prompts in this directory:
proposer-prompt.md — Prompt template for the Proposerdevils-advocate-prompt.md — Prompt template for the Devils-Advocatesynthesizer-prompt.md — Prompt template for the SynthesizerWhen calling the Task tool to dispatch each subagent:
subagent_type to the named Gangsta agent — "proposer", "devils-advocate", or "synthesizer" as appropriate. Do NOT use "general" or "general-purpose" — these are not valid in a Gangsta installation.prompt parameterCRITICAL — Platform agent types: Valid subagent_type values in a Gangsta installation are the named custom agents: "associate", "soldier", "the-inspector", "proposer", "devils-advocate", "synthesizer". The built-in "general" and "explore" agents are disabled. Never use "general-purpose", "Task", "oracle", "fixer", "explorer", or "council" — these are never valid. See using-gangsta/references/opencode-tools.md for the complete platform mapping.
The Grilling does NOT produce a standalone transcript file. Instead, the orchestrating agent produces a Grilling Conclusions summary at the end of the debate. This summary is passed directly to the next phase (The Sit-Down) for inclusion in the Contract.
The Grilling Conclusions must contain:
The orchestrating agent holds this summary in context — it is NOT saved as a separate file.
---
heist: <heist-name>
phase: the-grilling
status: completed
timestamp: <ISO 8601>
next-action: Proceed to The Sit-Down
artifacts: []
note: Grilling Conclusions passed in-context to The Sit-Down for inclusion in the Contract
---