Agent skill

Revise

by Aperivue in Aperivue/medsci-skills

A skill your agent uses when a manuscript comes back with reviewer or editor comments.

MITAuto-check passedBusiness, Finance & HR

Install Revise

skills CLI
$ npx skills add Aperivue/medsci-skills --skill revise -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Aperivue/medsci-skills revise --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Aperivue/medsci-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/revise .claude/skills/revise && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
revise
GitHub stars
331
Token cost
~6.7k tokens
SKILL.md length
3,051 words
Files
14 (incl. scripts, references)
Skills in repo
54
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when a manuscript comes back with reviewer or editor comments.

  • Works in 8 steps: Parse and Number All Comments → Triage -- Flag External Actions Needed → 5: Revision Numerical Lineage Check… → …
  • A manuscript comes back with reviewer
  • SKILL.md covers Activation, Step 1: Parse and Number All…, Step 2: Triage -- Flag… and Step 2.5: Revision Numerical…, plus 9 more sections
  • Runs Python and Shell scripts from its folder; calls python3

What it does

Revise is an agent skill from Aperivue/medsci-skills. Use when a manuscript comes back with reviewer or editor comments. Numbers every comment, classifies it MAJOR/MINOR/REBUTTAL, drafts a point-by-point response with tracked manuscript changes, routes new analyses to /analyze-stats and writes the cover letter.

Its SKILL.md is about 6.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts and reference files (for example `references/r2r_voice.md`, `references/revision_values_schema.md` and `scripts/_quote_match.py`).

It sits in Business, Finance & HR, covering Resume and CV writing. The repository describes itself as: Agent Skills for medical research — literature search, reporting-guideline & citation checks, statistics, publication figures, submission. Works with Claude Code, Codex, Cursor &… The licence is MIT.

When your agent uses it

  • A manuscript comes back with reviewer
  • Editor comments

Example prompts

  • “/revise”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Parse and Number All Comments
  2. Triage -- Flag External Actions Needed
  3. 5: Revision Numerical Lineage Check (MANDATORY)
  4. Generate Response to Reviewers Document
  5. Response Formats by Comment Type
  6. Cover Letter to Editor
  7. Change Log
  8. Final Verification

What it can do on your machine

Read from SKILL.md and the folder at commit 3b14ae2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 8 files in scripts/ (Python and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Revise loads about 6.7k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 66 tokens; SKILL.md has 3,051 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~66
When it runs · the whole SKILL.md, loaded when a task matches
~6.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Aperivue/medsci-skills at commit 3b14ae2, republished under its MIT licence (© Aperivue). 3,051 words, ~6,655 tokens.

Download SKILL.mdSave it as .claude/skills/revise/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
revise
description
Use when a manuscript comes back with reviewer or editor comments. Numbers every comment, classifies it MAJOR/MINOR/REBUTTAL, drafts a point-by-point response with tracked manuscript changes, routes new analyses to /analyze-stats and writes the cover letter.
metadata.triggers
revise paper, respond to reviewers, revision letter, reviewer comments, major revision, minor revision, resubmit, R1 revision, revision round, response…

Revision Skill -- Response to Peer Reviewers

Activation

When the user provides reviewer comments (pasted text, PDF, or file path) or asks to revise a manuscript, confirm before proceeding:

  1. The reviewer decision letter (pasted text or file path)
  2. The current manuscript file (manuscript/manuscript.md)
  3. The revision round number (default: R1)
  4. The journal name (affects cover letter format)

Step 1: Parse and Number All Comments

Read the full decision letter. Extract every discrete comment from every reviewer and the editor.

Numbering Convention
E-1, E-2, ...       <- Editor comments
R1-1, R1-2, ...     <- Reviewer 1 comments
R2-1, R2-2, ...     <- Reviewer 2 comments
R3-1, R3-2, ...     <- Reviewer 3 (if present)

If a reviewer groups multiple requests in one paragraph, split them into sub-items: R1-3a, R1-3b, R1-3c

Classification
TypeSymbolDefinition
MAJOR[MAJ]Requires new experiment, re-analysis, new figure/table, or substantial structural rewrite
MINOR[MIN]Requires text revision, clarification, formatting change, or additional citation
REBUTTAL[REB]Reviewer is factually incorrect, misunderstood the study, or requests something scientifically unjustified
5-Category Triage Strategy

Sort every comment into one of five categories; the category sets the response approach and informs (does not replace) the MAJ/MIN/REB classification.

CategoryReviewer is...ResponseTypical class
1. Simple Question (most common)asking for description, clarification, or minor dataAdd the requested text and point to its location; keep the reply shortMIN
2. Misunderstandingmisreading the design, population, or analysisNever say "you are wrong": apologise for the lack of clarity, re-explain, and revise the text so the next reader is not misledMIN or REB
3. Further Discussionraising context (a different health system or clinical practice)Acknowledge, explain your study context, add a brief Discussion note if appropriate; the full explanation can stay in the letterMIN (text change) or REB (disagree)
4. Additional Resultsrequesting a subgroup, sensitivity analysis, or additional metricRun it (Step 2), add results to the Supplement (main text if important), and say what was done and found; never ignore these requestsMAJ
5. Statistical Method Challengequestioning or asking to change the statistical methodJustify the method with references; if the suggestion is valid, run both analyses and show the results agreeMAJ

Say a statistician was consulted only if one was: a claim about who reviewed the work is a factual claim to the editor.

Answer careless or off-topic comments too, with the same professionalism. For an irrelevant comment, add a clarifying sentence to Methods or Discussion and say where; that shows effort without conceding a scientific point. For a factually incorrect comment, give referenced evidence framed as "We believe there may be a misunderstanding."

Unify terms before editing sentences. When several comments trace back to inconsistent terminology (rater / reader / operator; reference standard / reference set), first build a one-page term table — each term, its definition and where it may appear — apply it across the manuscript, then revise sentences; editing sentence by sentence leaves the same inconsistency elsewhere. Keep terms distinct when they name different things, and check that each statistical term is a standard one.

Output a classified comment list before generating responses:

E-1   [MIN]  Request to shorten abstract
R1-1  [MAJ]  Requires subgroup analysis by scanner type
R1-2  [MIN]  Clarify exclusion criteria rationale
R1-3  [REB]  Claims our sample size is underpowered (we disagree)
R2-1  [MAJ]  Requires additional figure showing calibration curve
R2-2  [MIN]  Add reference to [Author Year]

Gate: Present the classified comment list to the user. Confirm classifications (especially REBUTTAL vs MAJOR) before generating responses. A misclassified REBUTTAL generates a response that argues with a valid reviewer point.


Step 2: Triage -- Flag External Actions Needed

Before writing responses, flag the comments that need external work:

  • /analyze-stats: any MAJOR comment that needs new statistical analysis, a re-run of an existing analysis, an additional metric (calibration, NRI, ICC), or a sample size recalculation. A /self-review finding carrying requires_reanalysis: true (power/MDE re-simulation under the full model, first-visit / one-record-per-subject dedup, an extended- or reduced-adjustment over-adjustment sensitivity, optimism correction of calibration) is always routed here: a prose edit cannot answer it, so it must produce a committed script + CSV whose numbers are then fed back here.
  • /make-figures: any MAJOR comment that needs a new or revised figure (calibration plot, subgroup forest plot, Bland-Altman, new panel).

Output: "The following comments require statistical analysis before responses can be finalized: R1-1, R2-3. Run /analyze-stats with these tasks, then return to /revise."

If /analyze-stats or /make-figures is not installed, emit the same routing list as a checklist for the author to run manually (the named analysis or figure per comment) and hold those responses as BLOCKED — pending analysis/figure until the committed script + CSV (or figure file) returns. Reviewer-response numbers always trace to a produced artifact, never to a model estimate.


Step 2.5: Revision Numerical Lineage Check (MANDATORY)

A script written to satisfy a reviewer (a comparative arm, a subgroup, a sensitivity check) often hand-enters values copied by eye from the original paper's tables, bypassing the locked extraction CSV; the numbers are then consistent everywhere and wrong at the source. In one R1 revision a hand-typed Fisher matrix read an adjacent severity-grade column as the event count, and the script, manuscript, and Table all carried the same direction-reversed result.

When Step 2 flags any /analyze-stats re-run:

  1. Tag every new numerical claim with [VERIFY-CSV] as it is written into the revised manuscript, response letter, or new table. The tag comes off only at Step 7 (Final Verification), after an explicit CSV + primary-source back-check.

  2. New analysis scripts must read from the locked extraction CSV. Hand-typed matrix(), c(...), or data.frame(...) numerical inputs are PROHIBITED when a CSV row exists. If hand entry is truly unavoidable (e.g., comparative-arm subset not present in the CSV), the line MUST carry a comment citing the CSV coordinate AND the primary-source Table/Figure:

    r
    # source: data_extraction_final.csv row <N> (<first-author> <year>, <arm> only),
    #         verified against <primary source> Table <X>, page <P>
    fisher.test(matrix(c(0, 45, 1, 55), nrow = 2, byrow = FALSE))
  3. Comparative / arm-specific values must enter extraction_consensus_log.md as separate rows before the analysis script references them, so no new value skips the dual-extraction consensus layer.

  4. Revision-time numerical audit table — maintain it inside the response document draft and copy it into the final change log:

    New claim (response + manuscript location)Source script:lineCSV row/colPrimary source (Table/Fig, page)Match?
  5. Gate before Step 3 — do not generate response prose for a MAJOR comment whose new numbers have not yet cleared this check, because prose written around un-audited numbers is very hard to unwind after a mismatch is found.


Step 3: Generate Response to Reviewers Document

Output location: revision/R[N]/response_to_reviewers_R[N].md

Read ${CLAUDE_SKILL_DIR}/references/r2r_voice.md before drafting: before/after examples, three response skeletons (accept / partial-accept / polite-rebuttal), and a meta-phrase-to-natural conversion table.

Document Header
Response to Reviewers

Manuscript ID: [JOURNAL-XXXXX]
Manuscript Title: [Full title]
Authors: [Last name of first author] et al.
Revision Round: [R1 / R2 / R3]
Date: [YYYY-MM-DD]

We thank the Editor and reviewers for their careful reading of our manuscript
and their constructive comments. We have revised the manuscript accordingly
and provide a point-by-point response below. All changes are shown in the
revised manuscript with tracked changes (or highlighted in yellow).
Per-Comment Response Block
---

**Comment R[X]-[Y]** [MAJ/MIN/REB]

*Reviewer's comment:*
> [Exact text of the comment, quoted verbatim]

**Response:**

[Response text -- format by type below]

**Manuscript change:**
- Section: [Methods / Results / Discussion / etc.]
- Page [X], Line [Y] (in the revised manuscript)
- [Quote the new or changed sentence if short]

Step 4: Response Formats by Comment Type

  • MINOR: acknowledge, describe the change, and quote it: "The revised text now reads: '[new sentence].'"

  • MAJOR: acknowledgment -> new analysis -> key result -> location of changes. All new results MUST include the 95% CI and exact p-value. New text added to the Results section states findings only; interpretation belongs in the response letter or the Discussion.

    [Acknowledge; state the concern.]
    To address this, we [describe new analysis/experiment/rewrite].
    [Key result: metric = value (95% CI, lower-upper; P = exact value)]
    This finding [supports / strengthens / does not change] our original
    conclusion because [brief interpretation].
    We have added: [Table X / Figure X / Supplementary Table X] showing [content];
    Methods revised: Page X, Lines Y-Z; Results revised: Page X, Lines Y-Z.
  • REBUTTAL: polite but firm; open with acknowledgment, restate the reviewer's claim fairly, then give your position with evidence. Do not capitulate without scientific justification. Where it helps, add a clarifying sentence to the manuscript and quote it.

Cite only references verified via /search-lit with a confirmed DOI or PMID; mark any other as [UNVERIFIED - NEEDS MANUAL CHECK]. Never invent a clinical definition, diagnostic criterion, or guideline recommendation: flag an unconfirmed one with [VERIFY] and ask the user.

The acknowledgment lines in the skeletons are placeholders. Repeating one opener ("We thank the reviewer for this important suggestion.") down the letter is itself an AI-tell, so vary them.


Response-Letter Voice & AI-Tell Avoidance

A response letter is a reviewer-facing scientific argument, not an internal change log. The AI-tell patterns are defined once in humanize references/ai_patterns.md (patterns 22-24); references/r2r_voice.md carries the authoring guidance. The rules:

  1. Write the change and the science, not the editing mechanism. State what changed and why, and quote the new sentence. No version prefixes ("v2 adds..."), no "softened N phrases", no grep/verification language, no internal FIX codes, no bare "No further manuscript change" stubs. Describing a new analysis you ran ("we performed a sensitivity analysis and found X") is the science, not a tell.
  2. No § symbols, no internal draft line numbers. A revised-manuscript page/line, stated once as referring to the revised manuscript, is fine.
  3. Succinct and non-defensive, especially on R2+. A satisfied reviewer gets one sentence. No cross-reviewer lobbying ("Reviewers 2 and 3 also accepted this") and no defensive meta-comments ("we confirm this statement is unchanged and not softened"). Fold methodology disclosure (multiplicity, a SAP deviation) into the response to the comment it answers, never a separate front section, and never drop it. Split a multi-point reviewer paragraph into separate comments, each with its reviewer sentence quoted.
Mandatory pre-submission scan

Before circulating or uploading, run /humanize on both the response letter and the cover letter. The response-letter scan is patterns 22-24 plus 13 (em dash), 16 (filler), and 19 (§) in humanize references/ai_patterns.md. Hold the letter to the manuscript's classical-style bar (/write-paper references/section_guides/step7_1_classical_qc.md): zero § symbols, no (Methods §X) self-references, em dashes kept low, and the heading style the target journal actually publishes.

Response-claim verification gate (MANDATORY, deterministic)

The single source of truth is the revised manuscript, not the response prose. A letter that says "we added the sentence '…'" or "we now cite Tariq et al. [15]" must be verifiable in the body. Run the gate before sending:

bash
python3 ${CLAUDE_SKILL_DIR}/scripts/check_response_claims.py \
  --response revision/response_to_reviewers.md \
  --manuscript manuscript/manuscript.md --strict

Add --out qc/response_claims.json to write the verdicts to qc/response_claims.json.

RESPONSE_QUOTE_UNVERIFIED (a quoted added sentence absent from the body) and RESPONSE_CITATION_UNVERIFIED (an added citation whose token is nowhere in the body) are real discrepancies, since the gate ignores vague, paraphrased claims: either insert the promised edit or correct the response wording. RESPONSE_QUOTE_UNRESOLVED is minor and does not fail --strict: the quoted words are all present in order but separated by extraction debris (a reference column bled in from a two-column PDF, proof line numbers, a footnote marker, a hyphen split across a line). Look at it by eye; do not delete a quote because of this verdict — accurate quotes have nearly been deleted that way. When a body bracket holds only numbers (',' or ';' separated, ranges with the common dashes, '~', '--' or '---', spaces and pandoc's escaped \[5\] allowed), a numeric citation counts only as a whole element or inside a range: a claimed [5] is not satisfied by [15]. A bracket that mixes numbers and words ("[5, see also 8]", "[5, p. 12]") keeps the older prefix match, so "[15, p. 3]" still satisfies [5] there; check such citations by eye. The response letter is read as typed: a claim written in pandoc form ("[5]", "[5--7]") is not recognised as a citation claim and is not checked.

To check the numbers themselves, declare the audit table (Step 4) as revision_values.json (copy ${CLAUDE_SKILL_DIR}/templates/revision_values.json; schema in references/revision_values_schema.md) and add --values revision_values.json: a declared value missing from the paragraph or table row that holds its anchor is RESPONSE_VALUE_MISMATCH (major).

Known limits: without --values, quote CONTENT is not compared. A quote that differs from the body's sentence by a number (the letter says 0.92, the body 0.87) or by a negator ("not", added or dropped) is graded like extraction debris, minor RESPONSE_QUOTE_UNRESOLVED, and --strict passes; comparing the letter's numbers with the body's was withdrawn because both sides vary in format. --values checks declared numbers only, and a paragraph with superscripts or x10^n is RESPONSE_VALUE_NOT_ASSESSED. Read every UNRESOLVED quote by eye for a flipped finding. A citation claim passes when ANY of its cited tokens is in the body, so "we now cite [15] and [16]" passes with only [15] inserted; check multi-citation claims by eye. A claim is read as a citation claim only when its verb says so ("cite", "reference"): "We added the citation [15]" or "We have added a reference to X [15]" is not checked. Read any added citation by eye; reading past the verb was withdrawn ("reference standard" fired).

If a reviewer called the manuscript too long or too dense, prove the body got shorter. Answering a density comment point-by-point adds a sentence per point, so the revision that responds to "shorten this" comes back longer. This gate is arithmetic:

bash
python3 ${CLAUDE_SKILL_DIR}/scripts/check_density_complaint.py \
  --comments revision/decision_letter.md \
  --previous manuscript/manuscript_R0.md \
  --revised manuscript/manuscript.md --strict

DENSITY_COMPLAINT_UNADDRESSED fires only when the decision letter contains a density/length complaint AND the body word count (Introduction through Discussion, citation markers excluded) did not fall; with no complaint it stays silent. When it fires, cut or move detail to the supplement; do not defend the length by adding a paragraph that explains it.


Show full SKILL.md (1,055 more words)Show less

Step 5: Cover Letter to Editor

Output location: revision/R[N]/cover_letter_R[N].md

[Date]

Dear Dr. [Editor Name / "Editor-in-Chief"],

Thank you for the opportunity to revise our manuscript, "[Full title]"
(Manuscript ID: XXXX), submitted to [Journal Name]. We have carefully
reviewed the comments from the Editor and reviewers and have revised
the manuscript accordingly.

In brief, the principal changes in this revision are: [1) ..., 2) ...,
3) ...]. A point-by-point response to each comment is provided in the
accompanying Response to Reviewers document. Revised sections are
highlighted in yellow in the manuscript.

We believe the revised manuscript addresses all concerns raised in the
review and is now suitable for publication in [Journal Name].

Sincerely,

[First Author Name], MD/PhD
[Institution]
[Email]
On behalf of all authors
R1 vs R2+ cover-letter protocol

The template above is the R1 convention: a standalone editor cover letter (200-400 words).

On an R2+ round (second revision onward), do not write a separate cover letter. The greeting and the brief change summary go in the head of the response-to-reviewers letter; a standalone letter restating that summary reads as redundant boilerplate. If an earlier round produced a cover_letter_R1.md, move it to _superseded/, exclude it from the R2+ package, and reuse the response-letter head verbatim in any portal "cover letter" field. (Exception: a journal that requires a separate cover letter at every round — then keep the head summary and the cover letter from duplicating each other.)

Response-letter head (R2+) — placed at the top of response_to_reviewers_R[N].md, before the point-by-point:

Dear Dr. [Editor Name / "Editor-in-Chief"],

Thank you for the opportunity to revise our manuscript once more. In brief, this
revision [1-2 sentence summary of the principal changes — e.g., "adds the requested
subgroup analysis and tempers the three comparisons the reviewers flagged as
over-stated"].

[If applicable: one sentence on a companion paper, a re-analysis, or a verification
the editor requested.]

All quotations below are from the revised manuscript. A point-by-point response to each
comment follows.

Sincerely,
[First Author Name], on behalf of all authors

Keep the head to these parts; everything else is point-by-point.


Step 6: Change Log

Output location: revision/R[N]/change_log_R[N].md

CommentTypeChange MadeSectionPageLines
R1-1MAJAdded subgroup analysis by scanner typeResults 4.3, Table 312234-251
R1-2MINClarified exclusion criteria for motion artifactMethods 2.26112-115

Step 7: Final Verification

After all responses are drafted, check:

  • Every reviewer comment has a response (none skipped, even trivial ones or ones addressed elsewhere)
  • Every MAJOR comment has the actual new data or analysis and a manuscript change with location, not just agreement
  • Every change the letter promises was actually made in the manuscript
  • Every REBUTTAL is backed by cited evidence or clear scientific reasoning
  • All new statistics include 95% CI and exact p-values
  • Page/line number references match the revised manuscript (not the original)
  • Figures and tables renumbered if new items were inserted; all new figures/tables are referenced in the response letter
  • Voice rules hold: no §, no internal draft line numbers ("(line 43)"), no editing-mechanism narration, varied openers; (R2+) satisfied reviewers get ≤1-2 sentences, no cross-reviewer lobbying; multi-point paragraphs split; methodology disclosure folded into the relevant response
  • Response letter AND cover letter ran through /humanize (patterns 22-24 triage hits reviewed; confirmed instances = 0; § = 0 hard)
  • (R2+) No separate cover letter — the editor greeting and "in brief" summary are folded into the response-letter head
  • Cover letter is addressed to the correct editor
  • Response letter length within the Word Count Guidance below
  • If the letter was compressed or converted after drafting (a page limit, a co-author's LaTeX version), each response still carries the evidence it relied on and answers what was asked — diff the evidence item by item, not the word count (e.g. a statistical result line, citation markers, units and abbreviations, a rater's stated credentials); evidence the paper itself needs goes into the manuscript or Supplement with an exact pointer in the response, evidence that only answers the reviewer stays in the letter in condensed form, and redundant explanation can simply go
  • The marked manuscript passed the round-trip gate (below) — not merely "tracked changes are on"
The marked manuscript is gated, not eyeballed

The journal wants the revised paper with tracked changes against the version the reviewers saw (R0 — not the previous round). Produce it with Word's Compare, which /sync-submission drives from the command line, and verify it by round trip: accepting every revision must reproduce the revised manuscript exactly, and rejecting every revision must reproduce the original. A spot-check that "sentence X appears as an insertion" passes even when Compare has dropped a paragraph or attributed half the changes to another author.

bash
python3 <medsci-skills>/skills/sync-submission/scripts/check_marked_manuscript.py \
  --marked revision/R1/manuscript_marked.docx \
  --original submission/R0/manuscript.docx \
  --revised revision/R1/manuscript_clean.docx \
  --author "Submitting Author" --strict

See /sync-submission Phase 10 for the build step and for why the check must be move-aware (w:moveFrom / w:moveTo are not w:ins / w:del).


Revision Round File Structure

RoundFolderFiles
R1revision/R1/response_to_reviewers_R1.md, cover_letter_R1.md, change_log_R1.md
R2revision/R2/response_to_reviewers_R2.md, cover_letter_R2.md, change_log_R2.md

Also write the current round's letter and change log to revision/response_to_reviewers.md and revision/change_log.md, the paths the claim gate and /sync-submission read.

Revised manuscript: manuscript/manuscript.md; keep the version the reviewers saw as manuscript/manuscript_R0.md (the density gate compares the two).

For R2+, acknowledge whether R1 concerns were fully resolved. If a reviewer raises a new concern at R2, note: "This comment was not raised in the first review round; we address it as follows."


Word Count Guidance

  • Response letter total: no target. It is the per-comment responses below plus the quoted reviewer comments, so a short decision letter gets a short reply
  • Cover letter: 200-400 words (R1 only; on R2+ there is no separate cover letter — see Step 5)
  • MINOR response: 50-150 words
  • MAJOR response: 150-400 words
  • REBUTTAL response: 200-500 words
  • Headroom is not a target. When the manuscript sits under a journal cap, do not propose filling the remaining words, and do not write a word count or cap into the manuscript body unless the journal or a reviewer asks for it there.
  • R2+ rounds run leaner. Most R1 concerns are already resolved, so the letter is shorter and a satisfied reviewer's response is 1-2 sentences. Do not pad an R2+ reply to reach the R1 range.

Gates

GateSeverityTriggerAction on fail
Comment classification (MAJOR / MINOR / REBUTTAL)ENFORCEDcomment unclassified or classification disputedask user; do not silently default
Step 2.5 [VERIFY-CSV] tagging on revision-introduced numbersENFORCEDnew numerical claim added without [VERIFY-CSV] tagtag automatically; HALT until CSV cross-check completes
Reference re-render after revisions touching citationsENFORCEDany new [@bibkey] added in R1+route to /manage-refs for a re-render before R1 submission
/verify-refs --strict post-revisionENFORCEDsubmission_safe: false (any FABRICATED or MISMATCH row, or a non-empty duplicate_findings[]), or any UNVERIFIED row (--strict exits 1 on those too)HALT R1 submission
New analysis coordinationENFORCEDreviewer asks for new analysisroute to /analyze-stats (and /make-figures if figure changes); never hand-write new numbers
Body word count vs journal cap (revision-inflation trap)ENFORCED after every revise passresolving majors pushes the body over the target journal's word limitrun python3 "${CLAUDE_SKILL_DIR}/../sync-submission/scripts/check_wordcount_cap.py" (--journal-profile or --limit; prefer the rendered DOCX count); WORDCOUNT_OVER_CAP blocks submission — relocate methods/sensitivity detail to the Supplement, do not silently exceed
Cover letter to editorENFORCED at R1 submissionR1 missing editor cover letterblock submission
R2+ cover-letter handlingENFORCED at R2+ submissionstandalone cover letter present on an R2+ round (not folded into the response-letter head)move it to _superseded/; fold the summary into the head
Response-letter voice / AI-tellENFORCED before submissionediting-mechanism narration, internal draft line refs, §, tooling leak, or repeated openers in response/cover letterrun /humanize (patterns 22-24 as triage; § = 0 hard); resolve confirmed tells before submission

© Aperivue, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 13 other files (scripts, references) in skills/revise of Aperivue/medsci-skills.

  • SKILL.md
  • references/r2r_voice.md
  • references/revision_values_schema.md
  • scripts/_quote_match.py
  • scripts/check_density_complaint.py
  • scripts/check_response_claims.py
  • scripts/density_complaint_challenge/fixture/decision_letter.md
  • scripts/density_complaint_challenge/fixture/v20_longer.md
  • scripts/density_complaint_challenge/fixture/v21_shorter.md
  • scripts/density_complaint_challenge/fixture/v_prev.md
  • scripts/density_complaint_challenge/verify.sh
  • skill.yml
  • templates/revision_values.json
  • tests/test_response_claims.sh

Open the folder on GitHubat commit 3b14ae2

Compare with similar skills

Revise next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Revise compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Revise this skillAperivue/medsci-skills331—~6.7kAutomated safety check: PassMIT
Submission Guidebrycewang-stanford/Auto-Empirical-Research-Skills4.5k—~3.6kAutomated safety check: PassCustom licence
Medical Cv Resume Builderaipoch/medical-research-skills2k—~1.8kAutomated safety check: PassMIT
Scholar Journaljoshzyj/open-scholar-skill168—~15kAutomated safety check: PassCustom licence
Mksc Submissionfranklee16/academic-research-skills2231 repos~1kAutomated safety check: PassNone
Ectj Submissionfranklee16/academic-research-skills2231 repos~417Automated safety check: PassNone

Similar skills

  • Submission Guide

    brycewang-stanford/Auto-Empirical-Research-Skills

    This skill covers academic journal submission, referee responses, and revision management.

    4.5k GitHub stars~3.6k tokensUpdated 4 days ago
    Business, Finance & HRAuto-check passed
  • Medical Cv Resume Builder

    aipoch/medical-research-skills

    Use medical cv resume builder for academic writing workflows that need structured execution, explicit assumptions, and clear output boundaries.

    2k GitHub stars~1.8k tokensUpdated 22 days ago
    Business, Finance & HRAuto-check passed
  • Scholar Journal

    joshzyj/open-scholar-skill

    Format, select, and prepare a manuscript for journal submission.

    168 GitHub stars~15k tokensUpdated 21 days ago
    Business, Finance & HRAuto-check passed
  • Mksc Submission

    franklee16/academic-research-skills

    A skill your agent uses when preparing to submit a Marketing Science manuscript through ScholarOne — blinding for double-anonymous review, choosing the track (regular / Frontiers / Database /…

    223 GitHub starsUsed in 1 repo~1k tokens
    Business, Finance & HRAuto-check passed
  • Ectj Submission

    franklee16/academic-research-skills

    A skill your agent uses when running the final The Econometrics Journal pre-submission check for Editorial Express, RES/OUP template compliance, 20-page printed-paper norm, 150-word summary…

    223 GitHub starsUsed in 1 repo~417 tokens
    Business, Finance & HRAuto-check passed
  • Ppsych Submission

    brycewang-stanford/Awesome-Journal-Skills

    A skill your agent uses when running the final submission preflight for a Perspectives on Psychological Science (PoPS) manuscript via the ScholarOne/Manuscript Central portal —…

    1.2k GitHub stars~1.3k tokensUpdated 12 days ago
    Business, Finance & HRAuto-check passed

More from Aperivue/medsci-skills

All 54 skills in this repo
  • Obsidian Paper Vault

    Aperivue/medsci-skills

    A skill your agent uses when turning a folder of research PDFs into Obsidian notes, even if Obsidian is not named.

    331 GitHub stars~1.6k tokensUpdated 4 days ago
    Auto-check passed
  • Clean Data

    Aperivue/medsci-skills

    A skill your agent uses when a clinical CSV/Excel dataset needs profiling and cleaning before analysis (missing values, outliers, duplicates, type mismatches).

    331 GitHub stars~2k tokensUpdated 4 days ago
    Auto-check passed
  • Design Study

    Aperivue/medsci-skills

    A skill your agent uses when checking a radiology or medical AI study design before drafting or submission.

    331 GitHub stars~3.9k tokensUpdated 4 days ago
    Auto-check passed
  • Fill Icmje Coi

    Aperivue/medsci-skills

    A skill your agent uses when each author needs an ICMJE Conflict of Interest disclosure form (coidisclosure.docx) for submission.

    331 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Fill Protocol

    Aperivue/medsci-skills

    A skill your agent uses when an institutional Word form (.doc/.docx IRB protocol, ethics application, grant template) must be filled without breaking its styles, tables, fonts or page layout.

    331 GitHub stars~1.7k tokensUpdated 4 days ago
    Auto-check passed
  • Find Cohort Gap

    Aperivue/medsci-skills

    A skill your agent uses when looking for research topics a longitudinal cohort database can answer (NHIS, UK Biobank, an institutional EMR or registry).

    331 GitHub stars~2.9k tokensUpdated 4 days ago
    Auto-check passed

Questions about Revise

What does Revise do?

A skill your agent uses when a manuscript comes back with reviewer or editor comments. Revise is an agent skill from Aperivue/medsci-skills. Use when a manuscript comes back with reviewer or editor comments.

When should I use Revise?

Revise fits situations like: A manuscript comes back with reviewer; editor comments.

How do I install Revise in Claude Code?

Run `npx skills add Aperivue/medsci-skills --skill revise -a claude-code`. Or copy the skill folder (skills/revise in Aperivue/medsci-skills) into .claude/skills/revise in your project. Claude Code loads it when a task matches its description.

How do I install Revise in Codex?

Run `npx skills add Aperivue/medsci-skills --skill revise -a codex`. Or copy the skill folder (skills/revise in Aperivue/medsci-skills) into .agents/skills/revise in your project. Codex loads it when a task matches its description.

Can I use Revise in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Aperivue/medsci-skills --skill revise -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/revise, .gemini/skills/revise, .github/skills/revise and .opencode/skills/revise in your project.

What does Revise need to run?

Going by SKILL.md and its folder, Revise needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3; A Bash shell.

Does Revise access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Revise safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Revise use?

Revise is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Revise use?

About 6.7k tokens (SKILL.md is roughly 27k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.3k tokens, read only when the agent opens those files.

What are the alternatives to Revise?

Skills that share tags, products or a category with Revise: Submission Guide (brycewang-stanford/Auto-Empirical-Research-Skills, 4.5k stars), Medical Cv Resume Builder (aipoch/medical-research-skills, 2k stars), Scholar Journal (joshzyj/open-scholar-skill, 168 stars) and Mksc Submission (franklee16/academic-research-skills, 223 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Revise?

Aperivue (a GitHub organization) maintains it in Aperivue/medsci-skills, which has 331 GitHub stars. The repository holds 54 skills in this directory. The repository was last updated on October 5, 2026.

Source: Aperivue/medsci-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.