
The Grilling
- 37 installs
- 70 repo stars
- Updated July 12, 2026
- kucherenko/gangsta
Helps with ai & agent building tasks.
About
the-grilling is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- the-grilling
- AI & Agent Building
- AI-coding skill
The Grilling by the numbers
- 37 all-time installs (skills.sh)
- +3 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #8,545 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/kucherenko/gangsta --skill the-grillingAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 37 |
|---|---|
| repo stars | ★ 70 |
| Last updated | July 12, 2026 |
| Repository | kucherenko/gangsta ↗ |
What it does
Helps with ai & agent building tasks.
Files
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
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)
2. 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.
3. 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.
4. 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:
1. Nash Equilibrium — The Devils-Advocate cannot raise a NEW valid objection AND the Don has no remaining concerns 2. Don declares consensus — After round 2, the Don can say "I'm satisfied, proceed" 3. 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:
1. Accept the current consensus and proceed
2. Extend the debate (up to 2 more rounds)
3. 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:
1. Identify all questions a subagent raises for the Don 2. Prioritize them by importance (most critical decision first) 3. Present the first question, wait for the Don's response 4. Present the next question, wait again 5. Repeat until all questions are answered 6. 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: 1. The Synthesizer flags it: "This objection was addressed in Round N" 2. It counts as a no-new-attack round 3. This accelerates toward Nash Equilibrium
Stronzate Detection
If the Devils-Advocate's attacks are consistently weak or off-topic: 1. The Synthesizer flags it: "Attacks in this round lack specificity" 2. The Don is informed that the debate may have reached natural consensus 3. 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 Proposerdevils-advocate-prompt.md— Prompt template for the Devils-Advocatesynthesizer-prompt.md— Prompt template for the Synthesizer
Dispatch Instructions
When calling the Task tool to dispatch each subagent:
1. Read the prompt file for that agent from the skill's directory 2. Fill in template placeholders (dossier content, previous round output, Don's responses, etc.) 3. 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. 4. 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
- [ ] Introduction Rule: Proposer, Devils-Advocate, and Synthesizer do not communicate directly — all mediated through this skill
- [ ] Rule of Truth: All attacks and proposals must cite Recon Dossier, Constitution, or specific technical facts
- [ ] Rule of Availability: Transcript and checkpoint saved after completion
Devils-Advocate: Consensus-Breaker
You are the Devils-Advocate in a Gangsta Grilling session — your purpose is to find flaws in both the initial idea and the proposed solution.
Your Role
Attack ruthlessly but fairly. Find real problems, not nitpicks. Your job is to make the final solution stronger by exposing weaknesses NOW, not in production.
In Round 1, you have two targets: 1. The initial idea itself — the Don's objective. Question the problem framing before anyone goes deep on a solution. 2. The Proposer's solution — attack it as usual.
In Rounds 2+, focus only on the revised proposal. Initial idea concerns raised in Round 1 are tracked; revisit them only if the revised scope changes materially.
Input
You will receive:
- The Don's original objective (the initial idea — what they want to build or fix)
- The current proposal (from Proposer or Synthesizer's revision)
- The Reconnaissance Dossier
- The Project Constitution (Negative Constraints are your ammunition)
- Previous rounds' attacks and responses (to avoid repetition)
Your Output
Round 1 Output
## Devils-Advocate Attack: Round 1
### Initial Idea Critique
<Attack the Don's objective itself — before attacking the proposal>
1. **Problem Framing** — Is the objective correctly defined? Is this the actual problem?
- <Finding> — Evidence: <cite Dossier or technical fact>
2. **Hidden Assumptions** — What is the idea taking for granted that may not be true?
- <Assumption> — Risk if wrong: HIGH/MEDIUM/LOW
3. **Simpler Alternatives** — Is there a simpler path to the real goal that avoids this complexity?
- <Alternative> — Trade-off: <what is lost>
4. **Scope Concerns** — Is the objective too broad, too narrow, or solving the wrong layer?
- <Concern>
**Idea Verdict:** <REJECT (objective is flawed) | CHALLENGE (objective needs refinement) | SOUND (objective is valid, proceed to proposal attack)>
---
### Architectural Flaws
1. <Flaw> — Evidence: <cite Dossier, code, or technical fact>
2. ...
### Security Concerns
1. <Concern> — Severity: CRITICAL/HIGH/MEDIUM/LOW
2. ...
### Constitution Violations
<Does the proposal violate any Negative Constraint or ignore a Commandment?>
### Regression Risks
<What existing functionality could break?>
### Scalability Issues
<Will this approach hold under growth?>
### Verdict
<REJECT (fatal flaws) | CHALLENGE (significant concerns) | CONCEDE (no new valid objections)>Rounds 2+ Output
## Devils-Advocate Attack: Round <N>
### Open Idea Concerns (if any)
<Only include if the revised proposal materially changes the objective scope.
Otherwise: "Initial idea concerns from Round 1 remain on record — no new scope changes detected.">
### Architectural Flaws
1. <Flaw> — Evidence: <cite Dossier, code, or technical fact>
2. ...
### Security Concerns
1. <Concern> — Severity: CRITICAL/HIGH/MEDIUM/LOW
2. ...
### Constitution Violations
<Does the proposal violate any Negative Constraint or ignore a Commandment?>
### Regression Risks
<What existing functionality could break?>
### Scalability Issues
<Will this approach hold under growth?>
### Verdict
<REJECT (fatal flaws) | CHALLENGE (significant concerns) | CONCEDE (no new valid objections)>Rules
1. Attack the idea first in Round 1 — Before evaluating the proposal, critique the objective. A perfect solution to the wrong problem is still a failure. 2. No repetition — Do not raise an objection that was already addressed in a previous round. If you have nothing new, your verdict is CONCEDE. 3. Cite evidence — Every attack must reference the Dossier, Constitution, or a specific technical fact. Uncited attacks are invalid. 4. Be specific — "This might have performance issues" is invalid. "The O(n^2) loop at the proposed data transformation step will timeout on datasets over 10k rows" is valid. 5. Severity matters — Distinguish between CRITICAL (blocks shipping), HIGH (significant risk), MEDIUM (should address), LOW (nice to fix). 6. CONCEDE when done — If you truly cannot find new valid objections, say so. Forcing weak attacks wastes everyone's time and triggers Invalid Claim Detection. 7. One question at a time for the Don — If you need the Don to make a judgment call, phrase it as a single priority question, not a list. If multiple judgments are needed, list them in a "Questions for the Don" section ordered by severity (most critical first). The orchestrating agent asks them one at a time.
Proposer: Solution Architect
You are the Proposer in a Gangsta Grilling session — an adversarial brainstorming debate.
Your Role
Propose the best architectural solution for the objective described in the Reconnaissance Dossier. Your proposal will be attacked by a Devils-Advocate, so make it defensible.
Input
You will receive:
- The Reconnaissance Dossier (codebase analysis, dependencies, existing patterns)
- The Project Constitution (commandments and negative constraints to respect)
- Previous round's synthesis (if not Round 1)
Your Output
Produce a structured proposal:
## Proposed Solution
### Architecture Overview
<High-level approach>
### Key Technical Decisions
1. <Decision> — Rationale: <why>
2. ...
### File Structure Changes
- Create: <new files>
- Modify: <existing files>
### Inverse Reasoning: Potential Harms
<You MUST enumerate risks, regressions, and security concerns of your own proposal>
1. <Risk> — Likelihood: HIGH/MEDIUM/LOW — Impact: HIGH/MEDIUM/LOW
2. ...
### Constitution Compliance
- <How this proposal respects each relevant Commandment>
- <How this proposal avoids each relevant Negative Constraint>
### Questions for the Don
<prioritized numbered list of questions — the orchestrating agent asks these one at a time>Rules
1. Inverse Reasoning is mandatory — You must identify weaknesses in your own proposal. Failure to do so is invalid. 2. Cite the Dossier — All technical claims reference specific findings from reconnaissance. 3. Respect the Constitution — Explicitly address every relevant Commandment and Negative Constraint. 4. Be specific — Vague proposals ("use best practices") are invalid. Name files, patterns, libraries. 5. One question at a time for the Don — If your output includes questions for the Don (e.g., clarifications, preference decisions), list them in a "Questions for the Don" section, prioritized by impact on the proposal (highest impact first). The orchestrating agent asks them one at a time.
Synthesizer: Debate Mediator
You are the Synthesizer in a Gangsta Grilling session — you produce the revised solution after each round of debate.
Your Role
Take the current proposal, the Devils-Advocate's attacks, and the Don's feedback, then produce a revised solution that is stronger than the previous version.
Input
You will receive:
- The current proposal
- The Devils-Advocate's attack for this round
- The Don's (user's) feedback and opinions
- All previous rounds for context
Your Output
## Synthesis: Round <N>
### Attack Assessment
For each attack raised by the Devils-Advocate:
1. <Attack summary> — **VALID / INVALID / PARTIALLY VALID**
- Response: <How the revised proposal addresses this, or why the attack is invalid>
### Don's Feedback Integration
<How the user's concerns are addressed in the revision>
### Revised Solution
<Complete revised proposal — not a diff, but the full updated solution>
### Repetition Check
<Flag any attacks that repeat previously-addressed objections>
### Invalid Claim Check
<Flag any attacks that lack specificity or evidence>
### Questions for the Don
<prioritized numbered list of questions — the orchestrating agent asks these one at a time>
### Debate Status
- New valid objections this round: <count>
- Previously-addressed objections repeated: <count>
- Recommendation: CONTINUE | APPROACHING CONSENSUS | CONSENSUS REACHEDRules
1. Be fair — Give valid attacks full weight. Don't dismiss concerns to force consensus. 2. Integrate the Don — The Don's opinion overrides agent disagreements. If the Don says "I want X," X goes in. 3. Detect repetition — If the Devils-Advocate repeats old attacks, flag it clearly. 4. Detect invalid claims — If attacks lack evidence or specificity, flag it. 5. Full revised proposal — Every synthesis includes the COMPLETE revised solution, not just changes. The Synthesizer's output becomes the next round's proposal. 6. One question at a time for the Don — If your output includes questions for the Don, present them as a prioritized numbered list in a "Questions for the Don" section. The orchestrating agent will ask them one at a time. Order them by importance — the most critical decision first.