Install
$ agentstack add skill-zooltd-skills-debate ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Debate: adversarial peer review across two CLIs
You are the author: the agent in the interactive session, proposing and defending. The other CLI is the reviewer, invoked headlessly once per round to attack. The user is the referee, who settles what the two of you cannot settle from evidence.
Identify which CLI you are and read the matching reference before the scope gate:
- You are Claude Code → the reviewer is Codex →
references/reviewer-codex.md - You are Codex → the reviewer is Claude Code →
references/reviewer-claude.md
Single writer. The author owns every intentional file and implementation change. The reviewer gathers its own evidence from the repository and the web, then returns its review on stdout. It runs unsandboxed with every permission check bypassed, so single-writer holds only as conduct carried in the reviewer prompt — and the reviewer never loads this skill, so every conduct rule travels inside your prompt, every round.
transcript.md is append-only: every move and every referee ruling is preserved verbatim.
0. Scope gate
Draft the scope from the conversation, then ask the referee for every value you cannot infer:
- Goal and observable success criteria
- Hard constraints
- Artifact: inline text, an exact file, or the exact command that reproduces the diff
- Author, reviewer, and round cap; propose 4 rounds when absent
- Codex Fast mode, when Codex is the reviewer: on for lower latency at higher credit
use, off for Standard mode
Present the whole scope in one message for the referee to confirm or correct, and present the whole revised scope again after any correction. While the gate is open, your next action is to wait. The gate passes when every applicable field holds a concrete value and the referee confirms that exact summary.
The round cap counts completed reviewer moves. Any extra reviewer call — a format retry, a diagnostic re-run — needs separate referee approval.
Then create the debate folder .debate/-/ in the target repo: topic.md holds the confirmed scope, and transcript.md starts with # Debate: .
This step is complete when both files exist and topic.md alone is enough to reproduce and judge the debate without the chat history.
The round
One round = your move, then the reviewer's. Number rounds from 1.
1. Author move
Append ## Round N — author () to transcript.md.
- Round 1: your proposal, or your defense of the existing artifact.
- Later rounds: take the reviewer's objections one at a time, by name. Answer each with
exactly one of revise (state precisely what changed), rebut (state why not, with evidence), or concede. When a revision changes code, regenerate the diff and say so in the move.
Reference unchanged content instead of restating it. In round 1 this move is complete when the proposal addresses every confirmed scope item; in later rounds, when every open objection carries exactly one named response.
2. Reviewer move
Fill - and ` into the template below, invoke the reviewer per your reference file, and append its reply verbatim under ## Round N — reviewer ()`. Keep the conduct rules and the verdict grammar intact — you judge by them in the next step.
You are the REVIEWER in an adversarial peer debate against another AI agent (the author).
A human referee settles what the two of you cannot.
Read .debate/-/topic.md and
.debate/-/transcript.md. You may read anything else in this repository.
Inspect and search files, review diffs, and run relevant checks or tests for evidence;
research on the web when repository evidence runs out. Return only your review and leave
every intentional file or implementation change to the author.
This is round . Address the author's latest move and name the earlier rounds you build on.
Conduct: steelman the author's strongest point before attacking it. Lead with the
strongest realistic failure mode and keep the objection list short and substantive.
Concede resolved objections by name. Write terse, decisive prose. Tag every objection
[critical], [major], or [minor].
If something only the human referee can decide is blocking you, name the exact question.
In round 1, the verdict is DISAGREE or NEEDS-USER.
End with exactly one line:
VERDICT: AGREE | DISAGREE | NEEDS-USER —
A reply without a VERDICT: line stops the round: ask the referee whether to spend one extra reviewer call on a format retry, or to finish as escalation. On approval, append "End with the single VERDICT line." to the original prompt, invoke once, and append that reply under ### Reviewer format retry. A second malformed reply finishes as escalation.
This move is complete when the transcript holds a reviewer reply with a valid verdict line, or the referee has directed escalation.
3. Judge the round
Read the verdict line and take exactly one branch:
- AGREE at N = 1 — non-binding. Open round 2 with an author move that names the
proposal's strongest remaining uncertainty and asks for a harder challenge.
- AGREE at N ≥ 2 — finish as consensus when neither side holds an open
[critical] or [major] objection. Otherwise open round N+1 with an author move that closes every open blocker.
- NEEDS-USER — or your own move needs a ruling → put the exact questions to the
referee in chat, append the answers verbatim under ### Referee ruling — round N, treat the ruling as binding, and open round N+1.
- DISAGREE → test for impasse: the top objection is substantively the one from
last round, and neither side brought a new revision or new evidence against it. On impasse, finish as escalation; otherwise open round N+1.
Any branch that would open a round past the cap finishes as escalation instead. Judge from the recorded verdict and the open blockers; conversational tone has no effect on the branch.
Finishing
Write verdict.md in the debate folder for the selected outcome:
- Consensus —
Status: CONSENSUS, the final agreed artifact or its path, what the
debate changed, and the [minor] items accepted as-is.
- Escalation —
Status: ESCALATED, then one block per contested point holding the
strongest author position, the strongest reviewer position, and the evidence or decision that would settle it. Record the positions actually argued or ruled by the referee; a middle ground neither side argued is not an outcome. Close with the concrete questions the referee must answer.
Tell the referee the outcome and the path to the debate folder. The debate is complete when verdict.md carries every field its outcome requires and the referee has that path.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: zooltd
- Source: zooltd/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.