Skip to content
Agentmart
Submit a tool

referee-response

Draft an R&R response letter to a journal decision, sectioned by Senior Editor, Associate Editor, and each reviewer, and check a finished letter before…

Skill by bobbyZhong10

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/bobbyzhong10-referee-response

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Draft an R&R response letter to a journal decision, sectioned by Senior Editor, Associate Editor, and each reviewer, and check a finished letter before resubmission. TRIGGER on "respond to the referees", "draft the R&R response", "write the R2R", "address the reviewer comments", "respond to the AE", "continue the R2R", "check the R2R letter", or when the user pastes reviewer comments or a decision letter.

Use cases: documents, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/referee-response

What's inside

Skill name
referee-response
Description
Draft an R&R response letter to a journal decision, sectioned by Senior Editor, Associate Editor, and each reviewer, and check a finished letter before resubmission. TRIGGER on "respond to the referees", "draft the R&R response", "write the R2R", "address the reviewer comments", "respond to the AE", "continue the R2R", "check the R2R letter", or when the user pastes reviewer comments or a decision letter.
License
MIT
Instructions
214 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Referee response letter

This file is the canonical Empirical Workflow Kit implementation. Runtime views
defined in `workflow.manifest.yaml` link here; edit only the canonical tree.

Adapted from `ericluo04/claude-academic-workflow` at commit `8958cc246e65cdf7c36604f397a1c1719b7e2c14`; see `THIRD_PARTY_NOTICES.md`.

The editor reads this letter with the manuscript open. A pin that says a change is in Section 4
when it is not gets caught immediately, and the cost of that is much higher than the cost of an
honest TODO. So the letter may only say what the manuscript actually says. Step 3 is the point of
this skill: a verification pass sitting between classifying the comments and writing any prose.

The `--five-q` so-what gate on pushback paragraphs is adapted from
[aspi6246/Claude-Code-Presentation](https://github.com/aspi6246/Claude-Code-Presentation).

## Arguments

- `continue`: extend a partial `R2R_R<n>.tex` already in the project instead of starting fresh.
- `from-email`: input is a pasted decision email (Outlook export, forwarded thread).
- `@path/to/letter.pdf`: the decision letter as a file (`.pdf`, `.txt`, `.docx`, `.md`).
- `--five-q`: opt-in stress test on pushback paragraphs (see below). Combines with the others.

With no argument, the comments are pasted in the message body.

## Finding the project

Read `runtime-profile.yaml` and search its configured manuscript roots. Match the user's wording
against directory names; ask once if two fit. Then read what is
actually there:

- manuscript: identified by content, the `.tex` containing `\documentclass` or `\begin{document}`
  (usually `main*.tex`, or `doc.tex` in older projects). Follow every `\input`, `\include`, and
  `\subfile` to get the rest, since sections, tables, and the preamble usually live in separate
  files.
- prior rounds: `R2R_*.tex`, if any
- bibliography: `*.bib`

Ignore any file whose name contains `conflicted copy`; Dropbox leaves those behind and they are
stale. Never commit or push, Dropbox syncs the directory.

## Reading the decision letter

Use the PDF text command configured in `runtime-profile.yaml`. When `EWF_PDF_HELPER` is bound, run
`$EWF_PDF_HELPER text letter.pdf`. Do not assume a platform-specific PDF utility.

If that returns almost nothing the letter is a scan (`pdfread.py pages letter.pdf` says so). Then
rasterize it, `$EWF_PDF_HELPER png letter.pdf --dpi 200 --out /tmp/letter`, and
Read the PNGs. Read it if you genuinely can.
If any passage is illegible, stop and ask for a text version of that passage. Never reconstruct
what a reviewer probably wrote.

A `.docx` letter uses the configured `docx_text_command`. If none is available, request a PDF or
plain-text export instead of guessing at the content.

## Reading the prior round

If `R2R_*.tex` files exist, read the highest-numbered one for continuity of substance only: what
was promised to whom, which positions were already taken, which changes were already claimed. You
are not matching its writing style, and nothing about its phrasing constrains this letter. Write
the new one in clear academic prose using your own formatting judgment.

Two things to carry forward. When a reviewer re-raises a point that was pushed back on last round,
reuse and refine the earlier position; do not restart the argument, and flag
`% TODO (user): prior round said X, do we still hold that line?` before contradicting it. And any
change promised last round gets checked in step 3 like every other claim.

## Step 1. Parse into role-keyed comments

Extract comment text verbatim into:

```
[ { role: "Senior Editor",    comments: ["<verbatim>", ...] },
  { role: "Associate Editor", comments: [...] },
  { role: "Reviewer 1",       comments: [...] },
  { role: "Reviewer 2",       comments: [...] } ]
```

If the source is not labeled by role, ask once to confirm the assignment. If the comments are not
numbered in the source, preserve the source's own structure (paragraphs, bullets) rather than
imposing numbering the user never received. Use internal ids like R1.3 for the chat report.

## Step 2. Classify every comment

First adjudicate each material allegation under
`../empirical-workflow/references/operational-quality-loop.md`: confirmed, partly
confirmed, mistaken, or unverified pending evidence. Record the original output
or manuscript version/location and affected claim in the existing response
matrix (or link its review finding). Preserve both correct and incorrect parts;
do not accept a premise merely because a referee or several roles repeated it.
Then classify the underlying issue: calculation, design, unsupported inference,
expression, or intrinsic data limitation. Select a remedy using
`../empirical-workflow/references/operational-quality-loop.md`, then choose the
reply strategy below. A request for more robustness or caveats does not itself
establish that either fixes the problem. Verify the change and its effect on the
claim; check for new repetition, unnecessary numbers, claim drift, and length.
Do not claim a repair merely because text was added.

| Strategy | When | Shape of the reply |
|---|---|---|
| Done. | SE or AE gave an explicit instruction with a single-action fix (typo, format, missing citation, word swap) | The word "Done." then a location pin, nothing else |
| Substantive change | Reviewer asked for an analysis, robustness check, added discussion, or model revision, and it is genuinely in the paper | Acknowledge, state what changed, pin the location, quote the new text |
| Partial change | Reviewer asked for X and the paper does a scoped version of X | Acknowledge, describe the scope, pin it, say briefly why scoped |
| Polite disagreement | The reviewer's premise is mistaken or contradicted by a more authoritative source | State the reasoning, cite the authority with a short inline quote, close by inviting the editor's discretion |
| Deferred | Out of scope, a separate paper, or needs data collection beyond the R&R window | Acknowledge, say why deferred, point to where the paper flags it if it does |
| Needs user input | Cannot be classified without the user's substantive judgment | `% TODO (user): <one-sentence question>` and nothing asserted |

"Done." never applies to a substantive comment. Every comment gets its own reply, including ones
that look redundant.

## Step 3. Verify every pin against the manuscript

Verify every pin before drafting the corresponding response. Record the manuscript file, section,
line or stable anchor, exact version identifier, and verification time in the response matrix.

For every comment classified Substantive or Partial, before writing the response paragraph:

1. Open the manuscript at the location you intend to pin, following `\input`, `\include`, and
   `\subfile` files as needed.
2. Read the text there.

From bobbyZhong10/empirical-workflow-kit, MIT.

More from bobbyZhong10/empirical-workflow-kit

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 5, 2026 (24 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from bobbyZhong10

Cite this page

referee-response skill. Agent Mart. https://agentmart.dev/skills/bobbyzhong10-referee-response (last updated 2026-10-24)