Skill: paper-covert
SkillFiles & storageConverts 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Skill: paper-covert skill
What this skill tells your AI
The instructions your AI receives, as published by grind-lab-core/night_owl_research_agent in skills/paper-covert/SKILL.md and read by ahel’s review.
Convert the final manuscript in output/manuscript/ into a submission package for: $ARGUMENTS
Naming: the pipeline in
paper-writing-pipelinereferences this as/paper-convert. Folder name ispaper-covertper invocation; they resolve to the same skill.
Constants
- SRC — first existing of:
output/manuscript/MANUSCRIPT_REVISED.md→output/manuscript/MANUSCRIPT_DRAFT.md→ concatenatedsections_revised/*.md→ concatenatedsections/*.md. - SECTIONS_SRC —
output/manuscript/sections_revised/if present, elsesections/. - 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/*.mdPLAN
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, localreferences.bibdata/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.texfrom./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.texfile underlatex/sections/using these conversion rules:#/##/###→\section/\subsection/\subsubsectionwith a\label{sec:...}.- Markdown emphasis, lists, block quotes, inline/display math → LaTeX equivalents.
- Markdown tables →
booktabstabular; tables ≥ 15 rows extracted totables/. - Images
→figureenv with\includegraphics,\caption,\label{fig:X}. - Citations:
\cite{key}kept as-is when resolvable inreferences.bib;[CITE: topic]rendered via a visible\citeplaceholder{topic}macro and logged in the manifest. [PLACEHOLDER — …]blocks wrapped in a visibleplaceholderenvironment so they show in the PDF.
- Copy figures listed in
FIGURE_MANIFEST.mdintolatex/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
.bibexists underoutput/manuscript/or repo root → copy tolatex/references.bib. - Else synthesize from
memory/paper-cache/*.json— copy only entries whose keys appear in the manuscript; never invent. - Use
bib_styleandbib_enginefrom 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
genericexplicitly) - files generated with paths
- Bibliography gaps (unresolved citations) — carried from
CITATION_GAPS.mdplus anything new. - Asset gaps — figures referenced but missing from the manifest; figures marked
Needs revision. - Content gaps —
[PLACEHOLDER …]blocks remaining in the LaTeX. - Build — PDF engine, pass/fail, warning counts; DOCX pathway, pass/fail.
- Readiness — honest per-format statement. Do not mark "submission-ready" while any gap above is open or a build failed.
Append one line to output/PROJ_NOTES.md:
YYYY-MM-DD paper-covert venue=<V> source=<revised|draft> pdf=<ok|fail> docx=<ok|fail> gaps=<K>
Decision rules
- Venue structure:
PROFILEdefaults →PLAN§19 overrides. Log the final structure in the manifest. - No publisher class bundled: use
article+ the profile's bib style; record in the manifest that a publisher re-wrap is needed at submission time. Never claim the output is an official publisher template. - Incomplete manuscript: still produce the package; placeholders stay visible; readiness is
partial. - Mode restriction:
mode:latexstops after step 3;mode:pdfskips DOCX;mode:docxstill needs LaTeX for the Pandoc path unless Markdown→DOCX is forced.
Guardrails
Do not:
- rewrite, soften, or restructure prose — that is
paper-review-loop. - invent citations, bibliographic entries, figure files, or publisher-private rules.
- reference figures not listed in
FIGURE_MANIFEST.md. - silently drop content when a format conversion can't handle it — log it.
- label the package "submission-ready" with open gaps or a failed build.
- modify
output/manuscript/. This skill is read-only on it.
Supporting files
Under this skill:
templates/main_template.tex,preamble_template.tex,metadata_template.tex,section_template.tex,build_script_template.sh,SUBMISSION_MANIFEST_TEMPLATE.md,CONVERSION_CHECKLIST.md,VENUE_ROUTING_README.md,BIBLIOGRAPHY_GAP_CHECKLIST.md.profiles/:generic.yaml,ijgis.yaml,isprs_jprs.yaml,rse.yaml,tgis.yaml,aag_annals.yaml,ieee_tgrs.yaml. Each profile declaresdocumentclass,class_options,bib_style,bib_engine, word/abstract/figure limits, highlights requirement, and a note on publisher-class availability.
Composing with other skills
/paper-draft → /paper-review-loop → /paper-covert → /submit-check
paper-covert packages; submit-check validates venue compliance. They do not overlap.
Signals
- GitHub stars
- 103
- Forks
- 25
- Last commit
- May 2026
Advanced
- Catalog kind
- skill
- Gateway key
paper-covert- Source
- github.com/grind-lab-core/night_owl_research_agent