Paper drafting
Draft new academic prose: paper outlines and the text of individual sections. Triggers: draft outline, write section, draft paper, outline paper, write introduction, write methods, write results, write discussion, write abstract, write conclusion, write the caption for this figure, suggest wording for this paragraph.From its SKILL.md
npx -y skills add sokolmarek/researcher --skill paper-draftingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.7 KB, as published. Nobody here has run it
Paper Drafting
Structured academic writing skill covering full-paper outlines and individual section drafting with cross-referencing, terminology consistency, and journal-aware formatting.
Prerequisites
Before drafting, gather the following context:
- Manuscript config: Read
manuscript/config.yamlfor title, authors, target journal, citation style, output format, and word limits. - Style profile: If
style-profile.yamlexists in the project root, load it and apply the author's learned voice (sentence length, hedging patterns, vocabulary level, active/passive ratio). See the writing-style-analysis skill. - Bibliography: Read
manuscript/references/library.bibto know which citations are available. Never cite a key that does not exist in the bib file. - Existing sections: Read any already-drafted
.tex(or.md) section files so new content maintains consistency in terminology, notation, and cross-references. - Figures and tables: Scan
manuscript/figures/andmanuscript/tables/to know which assets exist for referencing.
Modes of Operation
Outline Mode
Triggered by: "draft outline", "outline the paper", "create paper structure"
Produce a structured outline document (manuscript/outline.md) containing:
- Section headers matching the target structure (IMRaD, review, conference, or custom).
- Key arguments per section -- 3-5 bullet points describing what each section must convey.
- Word allocation per section, summing to the journal's total word limit. Default allocation when no journal limit is specified:
- Abstract: 250 words
- Introduction: 15% of body
- Methods: 25% of body
- Results: 25% of body
- Discussion: 25% of body
- Conclusion: 10% of body
- Figure/table placement notes -- which figures or tables appear in which section, with draft captions.
- Citation anchors -- key references to cite in each section, drawn from
library.bib.
Ask the user to confirm or adjust the outline before proceeding to section drafting.
Section Drafting Mode
Triggered by: "write section", "draft introduction", "write methods", etc.
Draft one section at a time. Each section follows its own structural conventions below. Always output a .tex file (or .md if Word mode) into the manuscript/ directory.
Section-Specific Conventions
Abstract
- Detect whether the target journal requires structured (Background, Methods, Results, Conclusions) or unstructured format. Default to structured.
- Structured abstract: write each subsection as a single concise paragraph. Total length per
config.yamllimit or 250 words. - Unstructured abstract: single paragraph covering background, purpose, methods, key findings, and significance.
- Do not introduce abbreviations that are not used in the abstract itself.
- Do not cite references in the abstract unless the journal explicitly requires it.
Introduction
Follow the funnel structure:
- Broad context -- establish the research area and its importance (1-2 paragraphs).
- Narrowing focus -- review relevant prior work, progressively narrowing to the specific problem (2-3 paragraphs). Cite heavily from
library.bib. - Gap statement -- clearly identify what is missing, unknown, or unresolved. Use explicit language: "However, ...", "Despite this progress, ...", "No prior work has ...".
- Contribution statement -- state what this paper does to address the gap. Be specific: "In this paper, we propose / demonstrate / analyze ...".
- Paper organization (optional) -- brief roadmap of remaining sections. Include only if the journal convention or paper length warrants it.
Methods
- Write for reproducibility. Another researcher should be able to replicate the study from this section alone.
- Use subsections liberally: Study Design, Participants/Data, Materials/Tools, Procedure, Analysis, Evaluation Metrics.
- Include all hyperparameters, software versions, hardware specs, and random seeds where applicable.
- Reference algorithms formally: "We use Algorithm~\ref{alg:name}" with corresponding
algorithm2eoralgorithmicxenvironments. - Reference figures showing experimental setup: "The pipeline is illustrated in Figure~\ref{fig:pipeline}".
- Use past tense for completed work, present tense for established truths.
Results
- Lead with the most important finding. Do not bury key results.
- Structure around research questions or hypotheses, not around tables/figures.
- Reference every figure and table: "Table~\ref{tab:main_results} shows ...", "As shown in Figure~\ref{fig:comparison}, ...".
- Report exact numbers with appropriate precision. Never round in a way that loses meaning.
- Include effect sizes, confidence intervals, and p-values where relevant.
- Do not interpret results here -- save interpretation for Discussion.
- Use past tense for describing findings.
Discussion
Follow this structure:
- Key findings summary -- restate main results without repeating numbers verbatim (1 paragraph).
- Interpretation -- explain what the results mean in context of the research question (1-2 paragraphs).
- Comparison with literature -- relate findings to prior work cited in the Introduction. Agree, disagree, or extend (2-3 paragraphs). Cite from
library.bib. - Limitations -- honestly acknowledge weaknesses in methodology, data, or generalizability (1 paragraph).
- Implications -- practical or theoretical implications of the findings (1 paragraph).
- Future work -- concrete next steps, not vague hand-waving (1 paragraph). May be merged into Conclusion if the journal prefers.
Conclusion
- Summarize the paper's contribution in 1-2 paragraphs. Do not introduce new information.
- Restate the problem, approach, and key findings at a higher level of abstraction than the Abstract.
- End with a forward-looking statement about impact or next steps.
- Keep concise: typically 150-300 words.
Cross-Referencing System
Maintain consistent \label and \ref usage throughout all sections:
- Figures:
\label{fig:<short-name>}-- referenced asFigure~\ref{fig:<short-name>} - Tables:
\label{tab:<short-name>}-- referenced asTable~\ref{tab:<short-name>} - Equations:
\label{eq:<short-name>}-- referenced asEquation~\ref{eq:<short-name>}or(\ref{eq:<short-name>}) - Sections:
\label{sec:<short-name>}-- referenced asSection~\ref{sec:<short-name>} - Algorithms:
\label{alg:<short-name>}-- referenced asAlgorithm~\ref{alg:<short-name>}
After drafting any section, scan all existing sections for broken or orphaned references and report them.
Terminology Tracker
Maintain a running terminology map to enforce consistency across sections:
- On first use of a technical term, record it and its definition.
- On subsequent uses, verify the same term is used (no unannounced synonyms).
- Track acronyms: define on first use in the body text (e.g., "convolutional neural network (CNN)"), then use the acronym thereafter. Redefine in the Abstract only if used there.
- If the user changes a term mid-draft, propagate the change to all previously drafted sections and report what was updated.
Store the map in manuscript/terminology.yaml with the format:
terms:
- term: "convolutional neural network"
acronym: "CNN"
defined_in: "introduction.tex"
first_use_line: 12
Iterative Refinement
When the user asks to revise or improve an already-drafted section:
- Read the current section file.
- Identify what specifically needs to change (user instruction, review feedback, or self-assessment).
- Present a summary of planned changes before rewriting.
- Rewrite the section in place, preserving all valid
\labeltags and cross-references. - After rewriting, re-run the cross-reference and terminology checks.
Journal Adaptation
When a target journal is specified in config.yaml:
- Enforce the journal's word limits per section (query the journal-formatting skill if limits are unknown).
- Follow the journal's required section structure (some journals require Data Availability, Author Contributions, etc.).
- Match the journal's heading style (numbered vs. unnumbered, capitalization).
- Adapt citation density to journal norms (e.g., Nature papers cite fewer references in the introduction than review journals).
Output Format
Each drafted section is saved as a standalone .tex file (LaTeX mode) or .md file (Word mode) in the manuscript/ directory. The file must:
- Begin with a section heading:
\section{Section Title}with a\label{sec:name}. - Contain only the section body -- no
\documentclass, no preamble, no\begin{document}. - Use
\input{}compatible structure somain.texcan include it directly. - End with a blank line for clean concatenation.
After writing, report:
- Word count for the section.
- Number of citations used.
- Number of cross-references (figures, tables, equations).
- Any warnings (broken references, missing citations, terminology inconsistencies).
Integrity Checks
After every drafting operation, verify:
- No fabricated citations. Every
\cite{key}must exist inlibrary.bib. - No unsupported claims. Flag any factual assertion that lacks a citation and is not common knowledge.
- No orphaned references. Every
\ref{label}must have a corresponding\label{label}somewhere in the manuscript. - Word count compliance. Warn if the section exceeds its allocated word budget.
Report the integrity check results to the user after each section is drafted.
Integrity constraints
- Never fabricate citations: every reference must come from an actual retrieval (API, MCP, or user-provided source); if a citation cannot be verified, flag it, do not invent a DOI, author list, venue, or year.
- Never invent data: only user-provided or actually computed numbers appear as results; anything illustrative is labeled "(synthetic, for demonstration)".
- Refuse to present as valid output: a likely-fabricated or unresolvable citation, a data claim with no traceable source, or a retracted source (unless the user explicitly cites it as retracted).
- Compile-check all LaTeX by running
scripts/latex-compile.py(orlatex-compile.shon POSIX) before delivery; it uses whichever TeX engine is installed (tectonic recommended by default, or latexmk / pdflatex from TeX Live, MiKTeX, or MacTeX).
Canonical copy: references/integrity-constraints.md.