A Claude Code skill that encodes a research-paper writing methodology: a five-stage pipeline, section-by-section rhetorical moves, a style audit that runs on every edit, an independent red-team, and a figure-synthesis workflow for non-data figures.
$ npx -y skills add SNL-UCSB/paper-writing-skill --agent claude-code
What's inside
A Claude Code skill that encodes a research-paper writing methodology: a five-stage pipeline, section-by-section rhetorical moves, a style audit that runs on every edit, an independent red-team, and a figure-synthesis workflow for non-data figures. The rules are empirical โ distilled from forensic analysis of real paper revisions (7,600+ Overleaf edits, 100+ tex versions, 5 peer-review cycles across systems and ML venues). See DESIGN.md for the rationale and evidence behind each rule.
It offloads the scaffolding โ section structure, cross-section coherence, page-limit compression, voice consistency, figure generation โ so the writer keeps the hard parts: what the paper claims, whether the evidence supports it, and how to position the work.
Who it's for: PhD students and researchers writing conference or journal papers. Tuned for systems/networking (SIGCOMM, NSDI, CoNEXT, IMC) and ML (NeurIPS, ICLR, ICML); adaptable to any field (see Customize).
git clone https://github.com/SNL-UCSB/paper-writing-skill.git
cd paper-writing-skill
./setup # installs to ~/.claude/skills/paper-writing/
Then, in your paper's directory: run claude, and type /paper-writing. If a project_context.md
exists, Claude loads it and continues; if not, it runs a structured brainstorming session (34
questions across 6 phases) to create one.
Requires Claude Code installed and signed in (https://docs.claude.com).
Three layers: a fixed pipeline, customizable rules (defaults provided), and a per-paper project context.
The pipeline (five stages):
project_context.md (the binding
contract for every later session).The style audit. Every tex edit passes a mandatory gate. The style layer is three files, split by mechanism:
| File | Role |
|---|---|
author_profile/gate_mechanical.md | The single grep gate (M1โM18): em-dashes, antithesis, filler/pompous/fancy words, passive voice (zero tolerance), wordiness, term-drift. Runs on every edit. |
author_profile/gate_semantic.md | The single reader-judgment gate (S1โS31): define-before-use, followability, coherence, consistency, rigor/grounding, honest positioning, figures, closure. Runs in the red-team/loop pass. |
author_profile/craft_reference.md | How to write (the positive layer): sentence-level style and three registers (base/terse, conceptual/position, warm/narrative). |
The red-team. After the author's audit, an independent reviewer that did not write the text
re-runs the greps and applies the semantic gate with a fresh-reader lens, returning findings โ not a
yes/no. Run it iteratively via /loop (loop_mode.md), which keeps a disk-backed ledger and stops
itself when every section is clean. See red_team_protocol.md.
Figure synthesis (figure_synthesis_guide.md). A three-mode workflow (spec โ generate โ
critique) for non-data figures โ architecture diagrams, pipeline flows, concept illustrations โ with
venue-specific styling. Data figures (plots) go through the separate /viz skill.
/loop red-team cycle.paper-writing-skill/
โโโ SKILL.md # Main skill file (Claude reads this)
โโโ brainstorming_guide.md # 34 questions across 6 phases
โโโ figure_synthesis_guide.md # Non-data figure workflow
โโโ red_team_protocol.md # Independent, evidence-gated review
โโโ loop_mode.md # Resumable /loop audit-and-fix
โโโ setup # One-command installer
โโโ DESIGN.md # Rationale + evidence behind the rules
โโโ author_profile/ # Editorial rules (defaults, customizable)
โ โโโ editorial_principles.md # 14 principles with evidence
โ โโโ craft_reference.md # how to write (three registers)
โ โโโ gate_mechanical.md # the grep gate (M1โM18)
โ โโโ gate_semantic.md # the reader-judgment gate (S1โS31)
โ โโโ compression_patterns.md # 7 compression operations
โ โโโ rhetorical_moves.md # cross-section move sequences
โ โโโ intervention_types.md # 7 advisor intervention types
โโโ writing_checklists/ # Post-draft structural checklists
โโโ section_rhetorical_moves/ # Per-section move sequences + examples
โโโ figure_templates/ # Venue styles, prompts, TikZ skeletons
โโโ examples/ # project_context template + a real example
The rules, checklists, and move guides also work without Claude Code โ print them for a lab workshop, or use the checklists for self-review before sending a draft to an advisor.
Defaults ship for systems/networking and ML venues. Edit files in author_profile/:
craft_reference.md โ sentence-length targets, tone, and the three registers.gate_mechanical.md / gate_semantic.md โ add or relax specific checks (keep the term-drift
list current per paper).editorial_principles.md โ add or reprioritize principles (keep introduction-twice and
named-over-vague; they are venue-agnostic).compression_patterns.md, section_rhetorical_moves/, figure_templates/ โ tune
compression intensity, add move examples from your field, adjust figure styling per venue.For advisors: fork the repo, encode your standards in author_profile/, and have students clone
your fork โ they get your group's conventions immediately. Students can further customize; the
pipeline stays consistent.
/paper-writing not recognized โ re-run ./setup; check ls ~/.claude/skills/paper-writing/SKILL.md./paper-writing explicitly at the start; the skill only
activates when invoked.project_context.md and invoke /paper-writing again../setup again after git pull.Always edit files in this repo, not in ~/.claude/skills/; ./setup copies them into place.
MIT. If you use this in your research workflow, cite:
@misc{paper-writing-skill,
author = {Gupta, Arpit},
title = {paper-writing-skill: A Claude Code skill for research paper writing},
year = {2026},
publisher = {GitHub},
url = {https://github.com/SNL-UCSB/paper-writing-skill}
}
.DS_Store .gitignore author_profile/ compression_patterns.md craft_reference.md editorial_principles.md gate_mechanical.md gate_semantic.md intervention_types.md rhetorical_moves.md brainstorming_guide.md CHANGELOG.md CLAUDE.md DESIGN.md examples/ netburst_project_context.md project_context.md figure_synthesis_guide.md figure_templates/ figure_spec_template.md prompt_templates.md tikz_skeletons.md venue_styles.md LICENSE loop_mode.md README.md red_team_protocol.md section_rhetorical_moves/ design.md evaluation.md introduction.md related_work.md setup SKILL.md writing_checklists/ design_questions.md evaluation_questions.md intro_questions.md related_work_questions.md
FAQ
paper-writing-skill is a Claude Code plugin with 1 hand-picked skill for writing work, indexed on Flowy. Install it with the command on its page. It includes paper-writing-skill. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.