| name | the-grilling |
| description | Use when adversarial brainstorming is needed after reconnaissance — runs a multi-agent debate with proposer, devils-advocate, and synthesizer subagents, with the don participating each round, bounded by hard round limits to prevent infinite loops |
The Grilling: Adversarial Brainstorming
Overview
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.
Trigger
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.
Round Limits (HARD RULES)
| 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."
The Protocol
Round 1
-
Proposer (subagent) — Reads the Reconnaissance Dossier and proposes an architectural solution. The proposal must include:
- Architecture overview
- Key technical decisions with rationale
- File structure changes
- Potential risks (Inverse Reasoning requirement)
-
Devils-Advocate (subagent) — Attacks in two layers:
- Initial Idea Critique — Challenge the Don's objective itself: problem framing, hidden assumptions, simpler alternatives, scope concerns. Renders an Idea Verdict before touching the proposal.
- Proposal Attack — Find architectural flaws, identify security gaps, check against Constitution Negative Constraints, enumerate potential regressions, assess scalability concerns.
-
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:
- Valid attacks from the Devils-Advocate
- Don's feedback and concerns
- Defends valid elements of the original proposal
- Produces a revised solution
Rounds 2..N
Same cycle: Devils-Advocate attacks → Don weighs in → Synthesizer revises.
Termination Conditions
The Grilling ends when ANY of these is true:
- Nash Equilibrium — The Devils-Advocate cannot raise a NEW valid objection AND the Don has no remaining concerns
- Don declares consensus — After round 2, the Don can say "I'm satisfied, proceed"
- Round limit reached — At round 5 (or 7 if extended), the Synthesizer produces Best Available Consensus
At Round 5 (Default Maximum)
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"
Best Available Consensus (Forced Termination)
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.
Don Interrogation Protocol (HARD RULE)
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:
- Identify all questions a subagent raises for the Don
- Prioritize them by importance (most critical decision first)
- Present the first question, wait for the Don's response
- Present the next question, wait again
- Repeat until all questions are answered
- Collect all Don responses and pass them to the next subagent as a batch
Question Tool Schema (HARD RULE)
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:
- Round 1 and 2..N Step 3 (Don weighs in)
- The Round 5 extension decision (remains a single choice — one decision, not multiple questions)
- Any questions the Synthesizer or Proposer raise for the Don
Why: The Don gives better answers to one question than to three asked simultaneously. Bundled questions force mental juggling and produce lower-quality decisions.
Repetition Detection
If the Devils-Advocate repeats a previously-addressed objection:
- The Synthesizer flags it: "This objection was addressed in Round N"
- It counts as a no-new-attack round
- This accelerates toward Nash Equilibrium
Stronzate Detection
If the Devils-Advocate's attacks are consistently weak or off-topic:
- The Synthesizer flags it: "Attacks in this round lack specificity"
- The Don is informed that the debate may have reached natural consensus
- The Don can declare early exit
Subagent Prompts
The Proposer, Devils-Advocate, and Synthesizer are dispatched as subagents using prompts in this directory:
proposer-prompt.md — Prompt template for the Proposer
devils-advocate-prompt.md — Prompt template for the Devils-Advocate
synthesizer-prompt.md — Prompt template for the Synthesizer
Dispatch Instructions
When calling the Task tool to dispatch each subagent:
- Read the prompt file for that agent from the skill's directory
- Fill in template placeholders (dossier content, previous round output, Don's responses, etc.)
- Set
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.
- Include the full filled prompt as the
prompt parameter
CRITICAL — 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.
Output
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:
- Key Decisions: Each architectural/design decision reached, with rationale
- Rejected Alternatives: Each option that was considered and discarded, with the reason
- Unresolved Objections: Any risks acknowledged but accepted (from Best Available Consensus)
- Termination Reason: Nash Equilibrium / Don declared / Round limit
The orchestrating agent holds this summary in context — it is NOT saved as a separate file.
Checkpoint
---
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
---
Omerta Compliance