Workflow 4: Rebuttal
Prepare and maintain a grounded, venue-compliant rebuttal for: $ARGUMENTS
Scope
This skill is optimized for:
- ICML-style text-only rebuttal
- strict character limits
- multiple reviewers
- follow-up rounds after the initial rebuttal
- safe drafting with no fabrication, no overpromise, and full issue coverage
This skill does not:
- run new experiments automatically
- generate new theorem claims automatically
- edit or upload a revised PDF
- submit to OpenReview / CMT / HotCRP
If the user already has new results, derivations, or approved commitments, the skill can incorporate them as user-confirmed evidence.
Lifecycle Position
Workflow 1: idea-discovery
Workflow 1.5: experiment-bridge
Workflow 2: auto-review-loop (pre-submission)
Workflow 3: paper-writing
Workflow 4: rebuttal (post-submission external reviews)
Constants
- VENUE =
ICML — Default venue. Override if needed.
- RESPONSE_MODE =
TEXT_ONLY — v1 default.
- REVIEWER_MODEL =
gpt-5.4 — Used via Codex MCP for internal stress-testing.
- MAX_INTERNAL_DRAFT_ROUNDS = 2 — draft → lint → revise.
- MAX_STRESS_TEST_ROUNDS = 1 — One Codex MCP critique round.
- MAX_FOLLOWUP_ROUNDS = 3 — per reviewer thread.
- AUTO_EXPERIMENT = false — When
true, automatically invoke /aris-experiment-bridge to run supplementary experiments when the strategy plan identifies reviewer concerns that require new empirical evidence. When false (default), pause and present the evidence gap to the user for manual handling.
- QUICK_MODE = false — When
true, only run Phase 0-3 (parse reviews, atomize concerns, build strategy). Outputs ISSUE_BOARD.md + STRATEGY_PLAN.md and stops — no drafting, no stress test. Useful for quickly understanding what reviewers want before deciding how to respond.
- REBUTTAL_DIR =
rebuttal/
Override: /aris-rebuttal "paper/" — venue: NeurIPS, character limit: 5000
Required Inputs
- Paper source — PDF, LaTeX directory, or narrative summary
- Raw reviews — pasted text, markdown, or PDF with reviewer IDs
- Venue rules — venue name, character/word limit, text-only or revised PDF allowed
- Current stage — initial rebuttal or follow-up round
If venue rules or limit are missing, stop and ask before drafting.
Safety Model
Three hard gates — if any fails, do NOT finalize:
- Provenance gate — every factual statement maps to:
paper, review, user_confirmed_result, user_confirmed_derivation, or future_work. No source = blocked.
- Commitment gate — every promise maps to:
already_done, approved_for_rebuttal, or future_work_only. Not approved = blocked.
- Coverage gate — every reviewer concern ends in:
answered, deferred_intentionally, or needs_user_input. No issue disappears.
Workflow
Phase 0: Resume or Initialize
- If
rebuttal/REBUTTAL_STATE.md exists → resume from recorded phase
- Otherwise → create
rebuttal/, initialize all output documents
- Load paper, reviews, venue rules, any user-confirmed evidence
Phase 1: Validate Inputs and Normalize Reviews
- Validate venue rules are explicit
- Normalize all reviewer text into
rebuttal/REVIEWS_RAW.md (verbatim)
- Record metadata in
rebuttal/REBUTTAL_STATE.md
- If ambiguous, pause and ask
Phase 2: Atomize and Classify Reviewer Concerns
Create rebuttal/ISSUE_BOARD.md.
For each atomic concern:
issue_id (e.g., R1-C2)
reviewer, round, raw_anchor (short quote)
issue_type: assumptions / theorem_rigor / novelty / empirical_support / baseline_comparison / complexity / practical_significance / clarity / reproducibility / other
severity: critical / major / minor
reviewer_stance: positive / swing / negative / unknown
response_mode: direct_clarification / grounded_evidence / nearest_work_delta / assumption_hierarchy / narrow_concession / future_work_boundary
status: open / answered / deferred / needs_user_input
Phase 3: Build Strategy Plan
Create rebuttal/STRATEGY_PLAN.md.
- Identify 2-4 global themes resolving shared concerns
- Choose response mode per issue
- Build character budget (10-15% opener, 75-80% per-reviewer, 5-10% closing)
- Identify blocked claims (ungrounded or unapproved)
- If unresolved blockers → pause and present to user
QUICK_MODE exit: If QUICK_MODE = true, stop here. Present ISSUE_BOARD.md + STRATEGY_PLAN.md to the user and summarize: how many issues per reviewer, shared vs unique concerns, recommended priorities, and evidence gaps. The user can then decide to continue with full rebuttal (/aris-rebuttal — quick mode: false) or write manually.
Phase 3.5: Evidence Sprint (when AUTO_EXPERIMENT = true)
Skip entirely if AUTO_EXPERIMENT is false — instead, pause and present the evidence gaps to the user.
If the strategy plan identifies issues that require new empirical evidence (tagged response_mode: grounded_evidence with evidence_source: needs_experiment):
Generate a mini experiment plan from the reviewer concerns:
- What to run (ablation, baseline comparison, scale-up, condition check)
- Success criterion (what result would satisfy the reviewer)
- Estimated GPU-hours
Invoke /aris-experiment-bridge with the mini plan:
/aris-experiment-bridge "rebuttal/REBUTTAL_EXPERIMENT_PLAN.md"
Wait for results, then update ISSUE_BOARD.md:
- Tag completed experiments as
user_confirmed_result
- Update evidence source for relevant issue cards
If experiments fail or are inconclusive:
- Switch response mode to
narrow_concession or future_work_boundary
- Do NOT fabricate positive results
Save experiment results to rebuttal/REBUTTAL_EXPERIMENTS.md for provenance tracking.
Time guard: If estimated GPU-hours exceed rebuttal deadline, skip and flag for manual handling.
Phase 4: Draft Initial Rebuttal
Create rebuttal/REBUTTAL_DRAFT_v1.md.
Structure:
- Short opener — thank reviewers + 2-4 global resolutions
- Per-reviewer numbered responses — answer → evidence → implication
- Short closing — resolved / remaining / acceptance case
Default reply pattern per issue:
- Sentence 1: direct answer
- Sentence 2-4: grounded evidence
- Last sentence: implication for the paper
Heuristics from 5 successful rebuttals:
- Evidence > assertion
- Global narrative first, per-reviewer detail second
- Concrete numbers for counter-intuitive points
- Name closest prior work + exact delta for novelty disputes
- Concede narrowly when reviewer is right
- For theory: separate core vs technical assumptions
- Answer friendly reviewers too
Hard rules:
- NEVER invent experiments, numbers, derivations, citations, or links
- NEVER promise what user hasn't approved
- If no strong evidence exists, say less not more
Also generate rebuttal/PASTE_READY.txt (plain text, exact character count).
Phase 5: Safety Validation
Run all lints:
- Coverage — every issue maps to draft anchor
- Provenance — every factual sentence has source
- Commitment — promises are approved
- Tone — flag aggressive/submissive/evasive phrases
- Consistency — no contradictions across reviewer replies
- Limit — exact character count, compress if over (redundancy → friendly → opener → wording, never drop critical answers)
Phase 6: Codex MCP Stress Test
mcp__codex__codex:
config: {"model_reasoning_effort": "xhigh"}
prompt: |
Stress-test this rebuttal draft:
[raw reviews + issue board + draft + venue rules]
1. Unanswered or weakly answered concerns?
2. Unsupported factual statements?
3. Risky or unapproved promises?
4. Tone problems?
5. Paragraph most likely to backfire with meta-reviewer?
6. Minimal grounded fixes only. Do NOT invent evidence.
Verdict: safe to submit / needs revision
Save full response to rebuttal/MCP_STRESS_TEST.md. If hard safety blocker → revise before finalizing.
Phase 7: Finalize — Two Versions
Produce two outputs for different purposes:
rebuttal/PASTE_READY.txt — the strict version
- Plain text, exact character count, fits venue limit
- Ready to paste directly into OpenReview / CMT / HotCRP
- No markdown formatting, no extras
rebuttal/REBUTTAL_DRAFT_rich.md — the extended version
- Same structure but with more detail: fuller explanations, additional evidence, optional paragraphs
- Marked with
[OPTIONAL — cut if over limit] for sections that exceed the strict version
- Author can read this to understand the full reasoning, then manually decide what to keep/cut/rewrite
- Useful for follow-up rounds — the extra material is pre-written
Update rebuttal/REBUTTAL_STATE.md
Present to user:
PASTE_READY.txt character count vs venue limit
REBUTTAL_DRAFT_rich.md for review and manual editing
- Remaining risks + lines needing manual approval
Phase 8: Follow-Up Rounds
When new reviewer comments arrive:
- Append verbatim to
rebuttal/FOLLOWUP_LOG.md
- Link to existing issues or create new ones
- Draft delta reply only (not full rewrite)
- Re-run safety lints
- Use Codex MCP reply for continuity if useful
- Rules: escalate technically not rhetorically; concede if reviewer is correct; stop arguing if reviewer is immovable and no new evidence exists
Key Rules
- Large file handling: If Write fails, retry with Bash heredoc silently.
- Never fabricate. No invented evidence, numbers, derivations, citations, or links.
- Never overpromise. Only promise what user explicitly approved.
- Full coverage. Every reviewer concern tracked and accounted for.
- Preserve raw records. Reviews and MCP outputs stored verbatim.
- Global + per-reviewer structure. Shared concerns in opener.
- Answer friendly reviewers too. Reinforce supportive framing.
- Meta-reviewer closing. Summarize resolved/remaining/why accept.
- Evidence > rhetoric. Derivations and numbers over prose.
- Concede selectively. Narrow honest concessions > broad denials.
- Don't waste space on unwinnable arguments. Answer once, move on.
- Respect the limit. Character budget is a hard constraint.
- Resume cleanly. Continue from REBUTTAL_STATE.md on rerun.
- Anti-hallucination citations. Any reference added must go through DBLP → CrossRef → [VERIFY].
1---
2name: aris-rebuttal
3description: "Workflow 4: Submission rebuttal pipeline. Parses external reviews, enforces coverage and grounding, drafts a safe text-only rebuttal under venue limits, and manages follow-up rounds. Use when user says \"rebuttal\", \"reply to reviewers\", \"ICML rebuttal\", \"OpenReview response\", or wants to answer external reviews safely."
4argument-hint: "[paper-path-or-review-bundle]"
5allowed-tools: Bash(*), Read, Grep, Glob, Write, Edit, Agent, Skill, mcp__codex__codex, mcp__codex__codex-reply
6license: MIT
7metadata:
8 author: wanshuiyin/ARIS
9 version: "1.0.0"
10---
11
12# Workflow 4: Rebuttal
13
14Prepare and maintain a grounded, venue-compliant rebuttal for: **$ARGUMENTS**
15
16## Scope
17
18This skill is optimized for:
19- ICML-style **text-only rebuttal**
20- strict **character limits**
21- **multiple reviewers**
22- **follow-up rounds** after the initial rebuttal
23- safe drafting with **no fabrication**, **no overpromise**, and **full issue coverage**
24
25This skill does **not**:
26- run new experiments automatically
27- generate new theorem claims automatically
28- edit or upload a revised PDF
29- submit to OpenReview / CMT / HotCRP
30
31If the user already has new results, derivations, or approved commitments, the skill can incorporate them as **user-confirmed evidence**.
32
33## Lifecycle Position
34
35```text
36Workflow 1: idea-discovery
37Workflow 1.5: experiment-bridge
38Workflow 2: auto-review-loop (pre-submission)
39Workflow 3: paper-writing
40Workflow 4: rebuttal (post-submission external reviews)
41```
42
43## Constants
44
45- **VENUE = `ICML`** — Default venue. Override if needed.
46- **RESPONSE_MODE = `TEXT_ONLY`** — v1 default.
47- **REVIEWER_MODEL = `gpt-5.4`** — Used via Codex MCP for internal stress-testing.
48- **MAX_INTERNAL_DRAFT_ROUNDS = 2** — draft → lint → revise.
49- **MAX_STRESS_TEST_ROUNDS = 1** — One Codex MCP critique round.
50- **MAX_FOLLOWUP_ROUNDS = 3** — per reviewer thread.
51- **AUTO_EXPERIMENT = false** — When `true`, automatically invoke `/aris-experiment-bridge` to run supplementary experiments when the strategy plan identifies reviewer concerns that require new empirical evidence. When `false` (default), pause and present the evidence gap to the user for manual handling.
52- **QUICK_MODE = false** — When `true`, only run Phase 0-3 (parse reviews, atomize concerns, build strategy). Outputs `ISSUE_BOARD.md` + `STRATEGY_PLAN.md` and stops — no drafting, no stress test. Useful for quickly understanding what reviewers want before deciding how to respond.
53- **REBUTTAL_DIR = `rebuttal/`**
54
55> Override: `/aris-rebuttal "paper/" — venue: NeurIPS, character limit: 5000`
56
57## Required Inputs
58
591. **Paper source** — PDF, LaTeX directory, or narrative summary
602. **Raw reviews** — pasted text, markdown, or PDF with reviewer IDs
613. **Venue rules** — venue name, character/word limit, text-only or revised PDF allowed
624. **Current stage** — initial rebuttal or follow-up round
63
64If venue rules or limit are missing, **stop and ask** before drafting.
65
66## Safety Model
67
68Three hard gates — if any fails, do NOT finalize:
69
701. **Provenance gate** — every factual statement maps to: `paper`, `review`, `user_confirmed_result`, `user_confirmed_derivation`, or `future_work`. No source = blocked.
712. **Commitment gate** — every promise maps to: `already_done`, `approved_for_rebuttal`, or `future_work_only`. Not approved = blocked.
723. **Coverage gate** — every reviewer concern ends in: `answered`, `deferred_intentionally`, or `needs_user_input`. No issue disappears.
73
74## Workflow
75
76### Phase 0: Resume or Initialize
77
781. If `rebuttal/REBUTTAL_STATE.md` exists → resume from recorded phase
792. Otherwise → create `rebuttal/`, initialize all output documents
803. Load paper, reviews, venue rules, any user-confirmed evidence
81
82### Phase 1: Validate Inputs and Normalize Reviews
83
841. Validate venue rules are explicit
852. Normalize all reviewer text into `rebuttal/REVIEWS_RAW.md` (verbatim)
863. Record metadata in `rebuttal/REBUTTAL_STATE.md`
874. If ambiguous, pause and ask
88
89### Phase 2: Atomize and Classify Reviewer Concerns
90
91Create `rebuttal/ISSUE_BOARD.md`.
92
93For each atomic concern:
94- `issue_id` (e.g., R1-C2)
95- `reviewer`, `round`, `raw_anchor` (short quote)
96- `issue_type`: assumptions / theorem_rigor / novelty / empirical_support / baseline_comparison / complexity / practical_significance / clarity / reproducibility / other
97- `severity`: critical / major / minor
98- `reviewer_stance`: positive / swing / negative / unknown
99- `response_mode`: direct_clarification / grounded_evidence / nearest_work_delta / assumption_hierarchy / narrow_concession / future_work_boundary
100- `status`: open / answered / deferred / needs_user_input
101
102### Phase 3: Build Strategy Plan
103
104Create `rebuttal/STRATEGY_PLAN.md`.
105
1061. Identify 2-4 **global themes** resolving shared concerns
1072. Choose **response mode** per issue
1083. Build **character budget** (10-15% opener, 75-80% per-reviewer, 5-10% closing)
1094. Identify **blocked claims** (ungrounded or unapproved)
1105. If unresolved blockers → pause and present to user
111
112**QUICK_MODE exit**: If `QUICK_MODE = true`, stop here. Present `ISSUE_BOARD.md` + `STRATEGY_PLAN.md` to the user and summarize: how many issues per reviewer, shared vs unique concerns, recommended priorities, and evidence gaps. The user can then decide to continue with full rebuttal (`/aris-rebuttal — quick mode: false`) or write manually.
113
114### Phase 3.5: Evidence Sprint (when AUTO_EXPERIMENT = true)
115
116**Skip entirely if `AUTO_EXPERIMENT` is `false` — instead, pause and present the evidence gaps to the user.**
117
118If the strategy plan identifies issues that require new empirical evidence (tagged `response_mode: grounded_evidence` with `evidence_source: needs_experiment`):
119
1201. Generate a mini experiment plan from the reviewer concerns:
121 - What to run (ablation, baseline comparison, scale-up, condition check)
122 - Success criterion (what result would satisfy the reviewer)
123 - Estimated GPU-hours
124
1252. Invoke `/aris-experiment-bridge` with the mini plan:
126 ```
127 /aris-experiment-bridge "rebuttal/REBUTTAL_EXPERIMENT_PLAN.md"
128 ```
129
1303. Wait for results, then update `ISSUE_BOARD.md`:
131 - Tag completed experiments as `user_confirmed_result`
132 - Update evidence source for relevant issue cards
133
1344. If experiments fail or are inconclusive:
135 - Switch response mode to `narrow_concession` or `future_work_boundary`
136 - Do NOT fabricate positive results
137
1385. Save experiment results to `rebuttal/REBUTTAL_EXPERIMENTS.md` for provenance tracking.
139
140**Time guard**: If estimated GPU-hours exceed rebuttal deadline, skip and flag for manual handling.
141
142### Phase 4: Draft Initial Rebuttal
143
144Create `rebuttal/REBUTTAL_DRAFT_v1.md`.
145
146Structure:
1471. **Short opener** — thank reviewers + 2-4 global resolutions
1482. **Per-reviewer numbered responses** — answer → evidence → implication
1493. **Short closing** — resolved / remaining / acceptance case
150
151Default reply pattern per issue:
152- Sentence 1: direct answer
153- Sentence 2-4: grounded evidence
154- Last sentence: implication for the paper
155
156Heuristics from 5 successful rebuttals:
157- Evidence > assertion
158- Global narrative first, per-reviewer detail second
159- Concrete numbers for counter-intuitive points
160- Name closest prior work + exact delta for novelty disputes
161- Concede narrowly when reviewer is right
162- For theory: separate core vs technical assumptions
163- Answer friendly reviewers too
164
165Hard rules:
166- NEVER invent experiments, numbers, derivations, citations, or links
167- NEVER promise what user hasn't approved
168- If no strong evidence exists, say less not more
169
170Also generate `rebuttal/PASTE_READY.txt` (plain text, exact character count).
171
172### Phase 5: Safety Validation
173
174Run all lints:
1751. **Coverage** — every issue maps to draft anchor
1762. **Provenance** — every factual sentence has source
1773. **Commitment** — promises are approved
1784. **Tone** — flag aggressive/submissive/evasive phrases
1795. **Consistency** — no contradictions across reviewer replies
1806. **Limit** — exact character count, compress if over (redundancy → friendly → opener → wording, never drop critical answers)
181
182### Phase 6: Codex MCP Stress Test
183
184```
185mcp__codex__codex:
186 config: {"model_reasoning_effort": "xhigh"}
187 prompt: |
188 Stress-test this rebuttal draft:
189 [raw reviews + issue board + draft + venue rules]
190
191 1. Unanswered or weakly answered concerns?
192 2. Unsupported factual statements?
193 3. Risky or unapproved promises?
194 4. Tone problems?
195 5. Paragraph most likely to backfire with meta-reviewer?
196 6. Minimal grounded fixes only. Do NOT invent evidence.
197
198 Verdict: safe to submit / needs revision
199```
200
201Save full response to `rebuttal/MCP_STRESS_TEST.md`. If hard safety blocker → revise before finalizing.
202
203### Phase 7: Finalize — Two Versions
204
205Produce **two outputs** for different purposes:
206
2071. **`rebuttal/PASTE_READY.txt`** — the strict version
208 - Plain text, exact character count, fits venue limit
209 - Ready to paste directly into OpenReview / CMT / HotCRP
210 - No markdown formatting, no extras
211
2122. **`rebuttal/REBUTTAL_DRAFT_rich.md`** — the extended version
213 - Same structure but with **more detail**: fuller explanations, additional evidence, optional paragraphs
214 - Marked with `[OPTIONAL — cut if over limit]` for sections that exceed the strict version
215 - Author can read this to understand the full reasoning, then manually decide what to keep/cut/rewrite
216 - Useful for follow-up rounds — the extra material is pre-written
217
2183. Update `rebuttal/REBUTTAL_STATE.md`
2194. Present to user:
220 - `PASTE_READY.txt` character count vs venue limit
221 - `REBUTTAL_DRAFT_rich.md` for review and manual editing
222 - Remaining risks + lines needing manual approval
223
224### Phase 8: Follow-Up Rounds
225
226When new reviewer comments arrive:
227
2281. Append verbatim to `rebuttal/FOLLOWUP_LOG.md`
2292. Link to existing issues or create new ones
2303. Draft **delta reply only** (not full rewrite)
2314. Re-run safety lints
2325. Use Codex MCP reply for continuity if useful
2336. Rules: escalate technically not rhetorically; concede if reviewer is correct; stop arguing if reviewer is immovable and no new evidence exists
234
235## Key Rules
236
237- **Large file handling**: If Write fails, retry with Bash heredoc silently.
238- **Never fabricate.** No invented evidence, numbers, derivations, citations, or links.
239- **Never overpromise.** Only promise what user explicitly approved.
240- **Full coverage.** Every reviewer concern tracked and accounted for.
241- **Preserve raw records.** Reviews and MCP outputs stored verbatim.
242- **Global + per-reviewer structure.** Shared concerns in opener.
243- **Answer friendly reviewers too.** Reinforce supportive framing.
244- **Meta-reviewer closing.** Summarize resolved/remaining/why accept.
245- **Evidence > rhetoric.** Derivations and numbers over prose.
246- **Concede selectively.** Narrow honest concessions > broad denials.
247- **Don't waste space on unwinnable arguments.** Answer once, move on.
248- **Respect the limit.** Character budget is a hard constraint.
249- **Resume cleanly.** Continue from REBUTTAL_STATE.md on rerun.
250- **Anti-hallucination citations.** Any reference added must go through DBLP → CrossRef → [VERIFY].