agentleFS
bordenetbordenet/superpowers-plus/skills/engineering/debate/skill.md

debate

Skill8 starsChanged 6 months agoMITView on GitHub

Compare significant design approaches before implementation: generate three real options, use a compact matrix and separated hostile review, test edge cases, and converge in two to three rounds. Not for brainstorming, implementation, or code review.

26 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use handoff, commit and 2 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • MicrosoftSkill

    handoff

    Compact the current conversation into a handoff document for another agent to pick up.

    Also in 5 projects that use this

  • SentrySkill

    commit

    Create commit messages following Sentry conventions. Use when committing code changes, writing commit messages, or formatting git history. Follows conventional commits with Sentry-specific issue references.

    Also in 3 projects that use this

  • GoogleSkill

    grill-me

    A relentless interview to sharpen a plan or design.

    Also in 3 projects that use this

  • SentrySkill

    skill-creator

    Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 19 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use before committing to a non-trivial architecture, data model, integration, or other significant design choice.

    line 61
  2. Distinctive:

    Do not use after implementation has begun, for bug fixing, or for initial idea exploration.

    line 63
  3. Distinctive:

    Verify fixes landed: every claimed resolution must be visible in the updated artifact.

    line 78
  4. Distinctive:

    Keep each review answer to one sentence and each later round delta-only.

    line 79
  5. Distinctive:

    Never claim convergence after the initial review.

    line 80

“Common” is measured: kept by at least 6 in 10 of the 19 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
skill.md

Reference index

Load only the sections required by the process. Preflight, comparison, and hostile review are mandatory; the remaining sections are on demand.

NeedRead this reference section
Before every debatePreflight routing
Mandatory before building the matrixComparison protocol
Before adversarial reviewHostile review protocol
When an output example is neededOutput and example
When choosing a neighboring workflowCompanion skills

Design Triad

Wrong skill? Idea exploration -> brainstorming. Requirements validation -> requirements-validation. Implementation planning -> plan-and-execute.

Announce at start: "I'm using the debate skill to evaluate design options."

When to use

Use before committing to a non-trivial architecture, data model, integration, or other significant design choice. Also use when the user asks for design alternatives or a comparison.

Do not use after implementation has begun, for bug fixing, or for initial idea exploration.

Mandatory process

  1. Preflight. Load Preflight routing before every debate. Choose a route within 30 seconds; unresolved high-stakes inputs go to the user.
  2. Generate. Produce a minimum three genuinely distinct, implementable options. Include status quo or a time-boxed spike as a real comparison anchor. If only one option emerges, invoke think-twice.
  3. Compare. Load Comparison protocol before building the matrix. Use all six criteria, no more than five words per cell. Recommend in two or three sentences. A recommendation is not completion.
  4. Review. Author and reviewer must be separate. Load Hostile review protocol; use one separated reviewer for reversible work and at least two for irreversible or high-blast-radius work. Do NOT invoke progressive-harsh-review or quantitative-decision-gate as the reviewer because both can route back to debate.
  5. Probe edge cases. List no more than ten failure modes, boundaries, tests, or defensive integration points surfaced by review.
  6. Iterate. Run review -> fix -> verify the fix in the artifact -> re-review. Complete a minimum two full review rounds and no more than three. Exit only when a round finds no new material issue. If three rounds completed without convergence, escalate to thinking-orchestrator with the unresolved findings rather than continuing to iterate. Do NOT continue beyond 3 rounds.

Hard gates

  • Three options must be genuinely different, not superficial variations or two straw men around a preferred answer.
  • A separated reviewer must test the chosen option and the integrity of the option set.
  • Verify fixes landed: every claimed resolution must be visible in the updated artifact.
  • Keep each review answer to one sentence and each later round delta-only.
  • Never claim convergence after the initial review.

Failure Modes

FailureFix
Only one option ever generatedInvoke think-twice; never proceed with fewer than three genuinely distinct options
Reviewer is the same pass/agent as the authorDispatch a fresh sub-agent, or make an explicit role switch that discards the author's reasoning and starts fresh from the artifact text
Three rounds completed without convergenceEscalate to thinking-orchestrator with the unresolved findings — do not keep iterating past round 3
A rejected option is a straw man, not one a competent engineer would proposeReplace it once and rerun comparison; the next review becomes round one
A claimed fix was never verified in the updated artifactRe-read the artifact directly — a fix summary is not evidence the fix landed
Convergence claimed after only one review roundNever claim convergence after the initial review; a minimum of two full rounds is a hard gate, not a suggestion

Rationalizations to reject

ExcuseRequired response
There is only one wayInvoke think-twice.
Other options are obviously wrongExplain the loss in the matrix.
This is too simpleTest the assumptions anyway.
Review found nothingAnswer every hostile-review question.
There is no timeCompare now to avoid rework.
The recommendation is doneComplete review, edge cases, and iteration.
I reviewed my own designSeparate author and reviewer.
I documented the resolutionVerify it landed in the artifact.

Output

Return a compact inline decision record containing: decision and rationale; options considered; rejected options and reasons; edge-case catalog; review findings and resolutions; open risks. Write under docs/superpowers/specs/ only when explicitly requested.

Reference loading

Load only the named section. Preflight routing is mandatory before Step 1, Comparison protocol before Step 3, and Hostile review protocol before Step 4. Load the output example only when needed. When an installed copy is found (any of .claude/.codex/.agents), loading requires the separately-provisioned ~/.codex/superpowers-plus checkout -- an install missing that shared dependency gets a loud section-loader missing failure, not silent wrong content.

<!-- kernel-split-reference-loader:start -->
_ks_ref=""
_ks_loader=""
for _candidate in \
  "$HOME/.claude/skills/sp-debate/reference.md" \
  "$HOME/.codex/skills/sp-debate/reference.md" \
  "$HOME/.agents/skills/sp-debate/reference.md"
do
  if [ -r "$_candidate" ]; then _ks_ref="$_candidate"; break; fi
done
if [ -n "$_ks_ref" ]; then
  _ks_loader="$HOME/.codex/superpowers-plus/tools/section-loader.sh"
else
  _project_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
  _source_dir="$_project_root/skills/engineering/debate"
  if [ -n "$_project_root" ] && [ -r "$_source_dir/skill.md" ] && \
     [ -r "$_source_dir/reference.md" ] && \
     [ -r "$_project_root/tools/section-loader.sh" ]; then
    _ks_ref="$_source_dir/reference.md"
    _ks_loader="$_project_root/tools/section-loader.sh"
  fi
fi
[ -r "$_ks_ref" ] || { printf 'reference missing\n' >&2; exit 1; }
[ -r "$_ks_loader" ] || { printf 'section-loader missing\n' >&2; exit 1; }
# Replace <section heading> below with one of the exact strings from
# the Reference index table above before running.
_section='<section heading>'
bash "$_ks_loader" "$_ks_ref" "$_section" \
  || { printf 'section not found: %s\n' "$_section" >&2; exit 1; }
<!-- kernel-split-reference-loader:end -->

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.