Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/aris-rebuttal/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | — | — |
| case-22 | ✗→✓ | ▲ Improved | — | — |
| case-15 | ✗→✓ | ▲ Improved | — | — |
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
Prepare and maintain a grounded, venue-compliant rebuttal for: $ARGUMENTS
This skill is optimized for:
This skill does not:
If the user already has new results, derivations, or approved commitments, the skill can incorporate them as user-confirmed evidence.
textWorkflow 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)
ICML — Default venue. Override if needed.TEXT_ONLY — v1 default.gpt-5.4 — Used via Codex MCP for internal stress-testing.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.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/> Override: /aris-rebuttal "paper/" — venue: NeurIPS, character limit: 5000
If venue rules or limit are missing, stop and ask before drafting.
Three hard gates — if any fails, do NOT finalize:
paper, review, user_confirmed_result, user_confirmed_derivation, or future_work. No source = blocked.already_done, approved_for_rebuttal, or future_work_only. Not approved = blocked.answered, deferred_intentionally, or needs_user_input. No issue disappears.rebuttal/REBUTTAL_STATE.md exists → resume from recorded phaserebuttal/, initialize all output documentsrebuttal/REVIEWS_RAW.md (verbatim)rebuttal/REBUTTAL_STATE.mdCreate 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 / otherseverity: critical / major / minorreviewer_stance: positive / swing / negative / unknownresponse_mode: direct_clarification / grounded_evidence / nearest_work_delta / assumption_hierarchy / narrow_concession / future_work_boundarystatus: open / answered / deferred / needs_user_inputCreate rebuttal/STRATEGY_PLAN.md.
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.
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):
/aris-experiment-bridge with the mini plan: /aris-experiment-bridge "rebuttal/REBUTTAL_EXPERIMENT_PLAN.md"
ISSUE_BOARD.md:user_confirmed_resultnarrow_concession or future_work_boundaryrebuttal/REBUTTAL_EXPERIMENTS.md for provenance tracking.Time guard: If estimated GPU-hours exceed rebuttal deadline, skip and flag for manual handling.
Create rebuttal/REBUTTAL_DRAFT_v1.md.
Structure:
Default reply pattern per issue:
Heuristics from 5 successful rebuttals:
Hard rules:
Also generate rebuttal/PASTE_READY.txt (plain text, exact character count).
Run all lints:
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 revisionSave full response to rebuttal/MCP_STRESS_TEST.md. If hard safety blocker → revise before finalizing.
Produce two outputs for different purposes:
rebuttal/PASTE_READY.txt — the strict versionrebuttal/REBUTTAL_DRAFT_rich.md — the extended version[OPTIONAL — cut if over limit] for sections that exceed the strict versionrebuttal/REBUTTAL_STATE.mdPASTE_READY.txt character count vs venue limitREBUTTAL_DRAFT_rich.md for review and manual editingWhen new reviewer comments arrive:
rebuttal/FOLLOWUP_LOG.md| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +23 percentage points is the difference between those two pass rates over the 19 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.