Skip to content
Research
Skill

/paper-covert

Converts the final Markdown manuscript from `paper-draft` / `paper-review-loop` into a submission package for the target venue — modular LaTeX (one file per section), compiled PDF, and Word `.docx`. Venue is read from `output/PAPER_PLAN.md` (or argument) and routed through a

BOOST
From plugin
night-owl-research-agent
10722 skills9 agents1 command6 MCP
Install
$ npx -y skills add grind-lab-core/night_owl_research_agent --skill paper-covert --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/paper-covert

Context preview

The summary Claude sees to decide when to auto-load this skill.

Converts the final Markdown manuscript from `paper-draft` / `paper-review-loop` into a submission package for the target venue — modular LaTeX (one file per section), compiled PDF, and Word `.docx`. Venue is read from `output/PAPER_PLAN.md` (or argument) and routed through a

SKILL.md

paper-covert.SKILL.md
name: paper-covert
description: Converts the final Markdown manuscript from `paper-draft` / `paper-review-loop` into a submission package for the target venue — modular LaTeX (one file per section), compiled PDF, and Word `.docx`. Venue is read from `output/PAPER_PLAN.md` (or argument) and routed through a small YAML profile. Does not rewrite prose, score, or invent citations.
argument-hint: [venue-or-manuscript-path]
allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob

Skill: paper-covert

Convert the final manuscript in `output/manuscript/` into a submission package for: **$ARGUMENTS**

> Naming: the pipeline in `paper-writing-pipeline` references this as `/paper-convert`. Folder name is `paper-covert` per invocation; they resolve to the same skill.

---

Constants

  • **SRC** — first existing of: `output/manuscript/MANUSCRIPT_REVISED.md` → `output/manuscript/MANUSCRIPT_DRAFT.md` → concatenated `sections_revised/*.md` → concatenated `sections/*.md`.
  • **SECTIONS_SRC** — `output/manuscript/sections_revised/` if present, else `sections/`.
  • **PLAN = `output/PAPER_PLAN.md`** — for title, keywords, venue, figure/table plan, declarations.
  • **OUT = `output/submission/`**
  • **VENUE** — argument `venue:<name>` → `PAPER_PLAN.md` §0/§2 → `research_contract.md` → `IJGIS`.
  • **PROFILE** — `./profiles/<venue>.yaml`, else `./profiles/generic.yaml`.

Inline override: `/paper-covert — venue: ISPRS, mode: latex`. Modes: `all` (default), `latex`, `pdf`, `docx`.

---

Inputs

Primary:

  • `SRC` (Markdown manuscript)
  • `SECTIONS_SRC/*.md`
  • `PLAN`

Supporting (read when present):

  • `output/manuscript/CLAIM_RISK_REPORT.md`, `COVERAGE_GAPS.md`, `CITATION_GAPS.md` — surface unresolved items into the manifest, do not fix them.
  • `output/figures/FIGURE_MANIFEST.md`, `output/figures/FIGURE_CAPTIONS.md`, `output/figures/`
  • `memory/paper-cache/*.json`, local `references.bib`
  • `data/DATA_MANIFEST.md`, `research_contract.md`
  • `./profiles/<venue>.yaml`

---

Outputs

output/submission/
├── SUBMISSION_MANIFEST.md      # source, venue, files, readiness, unresolved items
├── latex/
│   ├── main.tex                # lean entry: \input's only
│   ├── preamble.tex            # packages + placeholder env
│   ├── metadata.tex            # title, authors, keywords, highlights
│   ├── references.bib          # copied or synthesized; else stub
│   ├── build.sh                # latexmk → pdflatex fallback
│   ├── sections/
│   │   ├── 01_abstract.tex
│   │   ├── 02_introduction.tex
│   │   ├── 03_related_work.tex
│   │   ├── 04_data.tex
│   │   ├── 05_methodology.tex
│   │   ├── 06_experiments.tex
│   │   ├── 07_results.tex
│   │   ├── 08_discussion.tex
│   │   ├── 09_limitations.tex
│   │   ├── 10_conclusion.tex
│   │   ├── 11_declarations.tex
│   │   └── appendix_*.tex
│   └── figures/                # copied from output/figures/ per FIGURE_MANIFEST
├── pdf/MANUSCRIPT_SUBMISSION_READY.pdf
└── docx/MANUSCRIPT_SUBMISSION_READY.docx

Filenames are stable; overwrite in place. Two-digit zero-padded section prefixes match `paper-draft`.

---

Workflow

1. Resolve source and venue

Pick `SRC` by priority above. Read `PLAN` for title, keywords, venue, declarations, figure/table plan. Load `PROFILE`. Record the source path, venue, and profile choice at the top of `SUBMISSION_MANIFEST.md`.

2. Build the LaTeX tree

  • Write `main.tex`, `preamble.tex`, `metadata.tex` from `./templates/`, filling in profile fields (`documentclass`, `class_options`, `bib_style`, `bib_engine`) and manuscript metadata (title, keywords, highlights when the venue requires them).
  • For each section in `SECTIONS_SRC/`, write one `.tex` file under `latex/sections/` using these conversion rules:
  • `#`/`##`/`###` → `\section`/`\subsection`/`\subsubsection` with a `\label{sec:...}`.
  • Markdown emphasis, lists, block quotes, inline/display math → LaTeX equivalents.
  • Markdown tables → `booktabs` `tabular`; tables ≥ 15 rows extracted to `tables/`.
  • Images `![cap](figures/X.png)` → `figure` env with `\includegraphics`, `\caption`, `\label{fig:X}`.
  • Citations: `\cite{key}` kept as-is when resolvable in `references.bib`; `[CITE: topic]` rendered via a visible `\citeplaceholder{topic}` macro and logged in the manifest.
  • `[PLACEHOLDER — …]` blocks wrapped in a visible `placeholder` environment so they show in the PDF.
  • Copy figures listed in `FIGURE_MANIFEST.md` into `latex/figures/`. Do not reference figures not in the manifest.

Section file mapping adapts to the manuscript's actual section list; `PLAN` §19 is authoritative when it differs from the default 01–11 layout. Appendices use `appendix_<letter>.tex`.

3. Wire the bibliography

  • If a `.bib` exists under `output/manuscript/` or repo root → copy to `latex/references.bib`.
  • Else synthesize from `memory/paper-cache/*.json` — copy only entries whose keys appear in the manuscript; never invent.
  • Use `bib_style` and `bib_engine` from the profile. Unresolved `[CITE: …]` or missing keys → list in the manifest's **Bibliography gaps** section; do not fabricate.

4. Build the PDF

Write `build.sh` from `./templates/build_script_template.sh`. Run it (`latexmk -pdf`; fallback to `pdflatex + bibtex + pdflatex ×2`). Copy `main.pdf` to `pdf/MANUSCRIPT_SUBMISSION_READY.pdf`. On failure, keep the LaTeX tree intact and record the first error + likely cause in the manifest under **Build**.

5. Export the DOCX

Prefer `pandoc latex/main.tex -o docx/MANUSCRIPT_SUBMISSION_READY.docx --citeproc --bibliography=latex/references.bib`. If Pandoc rejects venue LaTeX, fall back to `pandoc` on the source Markdown (concatenated `SECTIONS_SRC/*.md`). If Pandoc is unavailable, record `docx: blocked` in the manifest.

6. Write the manifest

Write `SUBMISSION_MANIFEST.md` from `./templates/SUBMISSION_MANIFEST_TEMPLATE.md`:

  • source manuscript path + readiness (`reviewed` / `revised` / `draft-only`)
  • venue + profile (flag fallback `generic` explicitly)
  • files generated with paths
Read more
Ships withnight-owl-research-agent

A fully automatic, domain-aware AI research agent for Geoscientists, Remote Sensing researchers, and GIScientists — powered entirely by Claude Code skills.

Get the whole plugin

Other skills on night-owl-research-agent.