Skip to content
Content
Skill

/paper-writer

Write academic papers (IMRaD structure) for conferences and journals, with mandatory anti-hallucination citation verification. Triggers (FR + EN) : "écris un paper", "article pour conférence", "rédige pour la conférence", "structure IMRaD", "soumission paper", "write a paper

From plugin
paper-trail
66 skills6 agents22 commands3 hooks

Claude Code

$ npx -y skills add roomi-fields/paper-trail --skill paper-writer --agent claude-code

SKILL.md

paper-writer.SKILL.md
name: paper-writer
description: >
  Write academic papers (IMRaD structure) for conferences and journals,
  with mandatory anti-hallucination citation verification. Triggers
  (FR + EN) : "écris un paper", "article pour conférence", "rédige pour
  la conférence", "structure IMRaD", "soumission paper", "write a paper
  on", "academic article", "/paper-trail:new-paper". Builds on existing
  SOTAs in the registry — does NOT invent references. Every citation
  passes through citation-receipts validation before being accepted in
  the final draft.

Skill : Paper Writer

Role

Write research articles in IMRaD structure (Introduction, Methods, Results, and Discussion) for conferences and journals, with every citation rigorously verified against the actual source.

Workflow

Like `sota-writer`, this skill enforces an **inverted workflow** : sources are built / verified **before** writing, not after. The difference with sota-writer is that paper-writer assumes the SOTA corpus already exists in the registry (it consumes audited SOTAs to build the Related Work section) and focuses on producing the IMRaD sections + their citations.

A. SOTA CONSUMPTION
   ├─ Identify the SOTAs in the vault relevant to the paper's topic
   ├─ Verify they're audited (no ref in candidate / blocked_human)
   └─ → corpus of refs in `sota_cited_confirmed` available

B. STRUCTURE
   ├─ Choose target venue (ISMIR, SMC, NeurIPS, ACL, etc.)
   ├─ Adapt IMRaD to venue conventions (page limit, abstract length)
   └─ Outline each section with bullet points

C. WRITE PER SECTION
   ├─ Methods & Results : new content from the user's research
   ├─ Related Work : draw from audited SOTAs, no new claims
   ├─ Each citation passes citation-receipts protocol
   └─ → draft with placeholder citations (e.g., \cite{author2020topic})

D. PRE-SUBMISSION AUDIT
   ├─ /paper-trail:audit-article <paper.tex> [--warn]
   ├─ Fix all INVALID and ADJUST citations
   ├─ Decide on UNVERIFIABLE (enable shadow libs or remove claim)
   └─ → submittable draft

Standard IMRaD structure

1. **Abstract** — 150–250 words 2. **Introduction** — context, problem, contribution 3. **Related Work** — based on existing SOTAs in the registry 4. **Methods** — formalism, algorithms, model 5. **Results** — experiments, evaluations 6. **Discussion** — interpretation, limitations 7. **Conclusion** — summary of contributions, future work 8. **References** — BibTeX

Venue adaptation

Common venue conventions to respect :

| Venue | Pages | Template | Notes | |---|---|---|---| | ISMIR | 6 | ISMIR LaTeX | Music information retrieval | | SMC | 8 | SMC template | Sound and music computing | | NeurIPS | 8 + appendix | NeurIPS LaTeX | Machine learning | | ACL | 8 | ACL LaTeX | Computational linguistics | | ICASSP | 4–5 | ICASSP LaTeX | Signal processing | | Generic journal | varies | Journal-specific | Refer to author guide |

For a non-standard venue, ask the user for the page limit, citation style (APA / IEEE / Chicago / ACM), and reference format (BibTeX, RIS, etc.).

Citation protocol — MANDATORY

Every citation in the paper MUST :

1. Resolve to a ref in the registry (`$RESEARCH_REGISTRY_PATH/refs/<slug>.md`) 2. The ref's state MUST be `sota_cited_confirmed` (audited as VRAI) 3. The specific claim being cited must pass `citation-receipts` (CONFIRMED or NUANCED verdict)

Failure modes :

  • Citation pointing to a ref in `candidate` or `blocked_human:*` →

blocked by the PreToolUse hook (`precheck_sota_wikilinks.py`)

  • Citation pointing to a ref in `retracted` → blocked, must be removed
  • Claim that doesn't match the source → flagged by `citation-receipts`

in `RECEIPTS.md`, must be corrected before submission

Workflow integration

Phase A — Identify source SOTAs

# Find SOTAs in the vault related to the paper's topic
# Use the configured adapter
python -c "
from adapters import get_adapter
adapter = get_adapter()
for sota_path in adapter.find_sotas():
    # filter by topic
    ...
"

For each relevant SOTA, verify it's audited :

python -m pipeline doctor --severity error
# Should report 0 violations on the refs cited by the source SOTAs

Phase B — Draft

Use the chosen LaTeX or markdown template. Write the structure first (section headers, bullet outline), then fill in section by section. For Related Work, **copy + adapt** content from the audited SOTAs — don't paraphrase from memory.

Phase C — Cite

For each `\cite{slug}` (LaTeX) or `[[slug]]` (Markdown) added :

1. Verify the ref exists in registry 2. Verify the ref state is `sota_cited_confirmed` 3. Verify the specific claim via `citation-receipts` skill (read the PDF section, match verb, verify verbatim quotes) 4. Update the ref's `cited_in[]` to record this paper + section

Phase D — Pre-submission audit

/paper-trail:audit-article <paper.tex>

Reviews each citation, produces `RECEIPTS.md`. Iterate until all citations are VALID.

/paper-trail:audit-article <paper.tex> --warn

Same audit + inserts inline warnings in `.tex.bak` for INVALID / ADJUST / UNVERIFIABLE citations.

What this skill does NOT do

  • **Doesn't invent references** — only consumes from the audited

registry

  • **Doesn't download PDFs** — that's `pdf-cascade`
  • **Doesn't decide ref existence** — that's `sota-auditor`
  • **Doesn't verify each citation's claim individually** — that's

`citation-receipts` (downstream)

  • **Doesn't bypass the PreToolUse hook** — if the hook blocks the

write, the citation must be fixed first

  • **Doesn't write Related Work from memory** — copies + adapts from

audited SOTAs only

Conventions

  • **Language** : as specified by user / venue (English default)
  • **Citation style** : as specified by venue (BibTeX keys = slug of

the ref file, e.g., `\cite{shannon_1948_mathematical}`)

  • **Wikilinks (Markdown drafts)** : `[[shannon_1948_mathematical]]` —

the adapter renders to the appropriate format at compile time

  • **Refer
Read more
@roomi-fields
Ships withpaper-trail

Anti-hallucination plugin for academic research in Claude Code. Create literature reviews and papers guaranteed without fabricated citations.

66 skills6 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
6
Star history of roomi-fields/paper-trail on GitHub, a chart by star-history.com

Other skills on paper-trail.

pdf-cascade

pdf-cascade

Acquire PDFs for bibliographic references via a strict 8-source cascade (Crossref OA → arXiv → OpenAlex → Unpaywall → HAL → CORE…

registry-doctor

registry-doctor

Audit the bibliography registry for consistency via 19 mechanical invariants (I1-I19) covering state validity, slug uniqueness,…

sota-auditor

sota-auditor

Final authority on the truthfulness of references cited in State-of-the-Art reviews and academic papers. Activate this skill…

sota-writer

sota-writer

Write structured State-of-the-Art (SOTA) reviews / literature reviews for academic research projects with **zero hallucinated…

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli12d33k
@iofficeai@iofficeaiInstall Skill

Questions about paper-writer.

Which coding agents can use paper-writer?
paper-writer installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.