# Respond To Referees

Generate a structured response-to-referees document from a referee report and the...

- Repository: https://github.com/pedrohcgs/claude-code-my-workflow (1676 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-09-27
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add pedrohcgs/claude-code-my-workflow --skill respond-to-referees -g -a claude-code -y`
Codex: `npx skills add pedrohcgs/claude-code-my-workflow --skill respond-to-referees -g -a codex -y`
Cursor: `npx skills add pedrohcgs/claude-code-my-workflow --skill respond-to-referees -g -a cursor -y`
Gemini CLI: `npx skills add pedrohcgs/claude-code-my-workflow --skill respond-to-referees -g -a gemini-cli -y`

## Description

Generate a structured response-to-referees document from a referee report and the revised manuscript. Maps each referee comment to the specific revision, classifies coverage (addressed / partially / deferred / disagreement), and drafts polite but firm responses. Use during the R&R (revise-and-resubmit) stage of paper revision.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Respond to Referees

Produce a complete response-to-referees document by cross-referencing the referee report against the revised manuscript. Classify every concern, draft a courteous response for each, and flag anything unaddressed before submission.

## Inputs

- `$0`, path to the referee report
- `$1`, path to the revised manuscript

Supported formats and how to read them. In the commands below, `FILE` stands for the input path being converted, either `$0` (referee report) or `$1` (revised manuscript). Always use `mktemp` for the temp file (not a predictable `/tmp/...` name) so paths with spaces and concurrent runs don't collide, and so untrusted `FILE` paths can't clobber other temp files via symlink races.

| Format | How to extract text |
| --- | --- |
| `.tex`, `.qmd`, `.md`, `.txt` | Read directly with the `Read` tool. |
| `.pdf` | `TMP=$(mktemp -d)/input.txt && pdftotext "FILE" "$TMP"` (poppler-utils). Grep `"$TMP"`. |
| `.docx` | `TMP=$(mktemp -d)/input.txt && pandoc "FILE" -t plain -o "$TMP"` (or `docx2txt "FILE" "$TMP"`). Grep `"$TMP"`. |
| `.html` | `TMP=$(mktemp -d)/input.txt && pandoc "FILE" -t plain -o "$TMP"`. Grep `"$TMP"`. |

If a required tool is missing or extraction fails, ask the user to provide a plain-text version (`.txt` or `.md`) and stop. A scanned or partly scanned PDF extracts with exit 0 and blank pages, so also compare `pdfinfo "FILE" | grep Pages` with the pages that returned text (`awk 'BEGIN{RS="\f"} NF{n++} END{print n+0}' "$TMP"`); read any blank pages directly with Read, or ask for a text version, and if you go on without them, say which pages were not read. When you are done, delete the extracted copy (`rm -rf "$(dirname "$TMP")"`): it is a plaintext copy of the document.

## Workflow

### Step 0: Convert Inputs to Plain Text

The rest: https://github.com/pedrohcgs/claude-code-my-workflow/blob/HEAD/.claude/skills/respond-to-referees/SKILL.md
