Markdown Article Formatter
JimLiu/baoyu-skills
Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.
Fill an paperpush .sub submission file from a directory of manuscript files.
$ npx skills add pachterlab/paperpush --skill paperpush-autofill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pachterlab/paperpush paperpush-autofill --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pachterlab/paperpush.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/paperpush-autofill .claude/skills/paperpush-autofill && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "paperpush-autofill" agent skill from https://github.com/pachterlab/paperpush/tree/main/.claude/skills/paperpush-autofill into .claude/skills/paperpush-autofill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperpush-autofill", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pachterlab/paperpush/tree/main/.claude/skills/paperpush-autofillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pachterlab/paperpush --skill paperpush-autofill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pachterlab/paperpush paperpush-autofill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pachterlab/paperpush.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/paperpush-autofill .agents/skills/paperpush-autofill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "paperpush-autofill" agent skill from https://github.com/pachterlab/paperpush/tree/main/.claude/skills/paperpush-autofill into .agents/skills/paperpush-autofill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperpush-autofill", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pachterlab/paperpush --skill paperpush-autofill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pachterlab/paperpush paperpush-autofill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pachterlab/paperpush.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/paperpush-autofill .cursor/skills/paperpush-autofill && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "paperpush-autofill" agent skill from https://github.com/pachterlab/paperpush/tree/main/.claude/skills/paperpush-autofill into .cursor/skills/paperpush-autofill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperpush-autofill", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pachterlab/paperpush.git --path .claude/skills/paperpush-autofill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pachterlab/paperpush --skill paperpush-autofill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pachterlab/paperpush paperpush-autofill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pachterlab/paperpush.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/paperpush-autofill .gemini/skills/paperpush-autofill && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "paperpush-autofill" agent skill from https://github.com/pachterlab/paperpush/tree/main/.claude/skills/paperpush-autofill into .gemini/skills/paperpush-autofill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperpush-autofill", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pachterlab/paperpush paperpush-autofillInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pachterlab/paperpush --skill paperpush-autofill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pachterlab/paperpush.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/paperpush-autofill .github/skills/paperpush-autofill && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "paperpush-autofill" agent skill from https://github.com/pachterlab/paperpush/tree/main/.claude/skills/paperpush-autofill into .github/skills/paperpush-autofill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperpush-autofill", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pachterlab/paperpush --skill paperpush-autofill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pachterlab/paperpush paperpush-autofill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pachterlab/paperpush.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/paperpush-autofill .opencode/skills/paperpush-autofill && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "paperpush-autofill" agent skill from https://github.com/pachterlab/paperpush/tree/main/.claude/skills/paperpush-autofill into .opencode/skills/paperpush-autofill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "paperpush-autofill", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
paperpush-autofillFill an paperpush .sub submission file from a directory of manuscript files.
Paperpush Autofill is an agent skill from pachterlab/paperpush. Fill an paperpush .sub submission file from a directory of manuscript files. Reads the manuscript, title page, figures, and supplements, extracts the submission fields, and writes them into the .sub via the deterministic autofill core. Use when the user wants to auto-populate a venue submission from their files. Triggers: "autofill my sub", "fill the biorxiv sub from this folder", "populate my submission from this manuscript directory".
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office. The repository describes itself as: 📝 Automated manuscript validation and submission portal completion. The licence is BSD-2-Clause.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 34b250c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Paperpush Autofill loads about 2.4k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,166 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pachterlab/paperpush at commit 34b250c, republished under its BSD-2-Clause licence (© pachterlab). 1,166 words, ~2,445 tokens.
.claude/skills/paperpush-autofill/SKILL.md (or your agent's skills folder).Populate a <venue>.sub file from a directory of manuscript files. You read
the files and decide the values; the paperpush autofill command does all
the writing, gating, and validation, so you cannot accidentally overwrite a
policy field or produce an invalid file. Your job is extraction, not writing.
The manuscript directory is required. If the skill was invoked on its own, without a directory in the user's message, stop and ask the user to provide the path to their manuscript directory before doing anything else — do not guess, do not scan the repository for candidate folders, and do not fall back to test fixtures. A good prompt is:
Which directory holds your manuscript files? Tell me the path, and (if you can) which file is the manuscript, which is the title page with authors and affiliations, where the figures are, and any supplements.
Only once the user has given you a directory should you continue. If they also named the venue, use it; otherwise infer or ask per the inputs below.
biorxiv). If the user did not say, ask, or infer
it from a <slug>.sub filename they mention. Confirm it is supported with
paperpush --venues.manuscript.pdf is the paper, title_page.pdf has the authors and
affiliations, figures are in figures/, supplement.pdf is supplementary
material." If they just give a folder, list it and propose a mapping from the
filenames, then confirm before extracting. Author names, emails, affiliations,
and ORCIDs come out far more reliably from a title page or LaTeX/Word source
than from a flattened PDF, so prefer those when present.Get the field schema and roles (the source of truth for what to fill):
paperpush schema <venue>(schema is an internal command for the autofill front-ends; it is hidden
from paperpush --help but works as shown.)
This prints JSON with one entry per field: id, label, type, role,
required, options, type_options, accept, help. The role tells you
what to do with each field:
extract — copy from the manuscript text (title, abstract, authors,
competing-interest / funding / data-availability / code-availability
statements) or read a simple fact off the files (page/figure/table counts,
a repository URL or data accession printed in the paper).classify — choose exactly one of the field's options based on the
content (e.g. bioRxiv subject_category). For a yes/no declaration or
reproducibility-checklist field (a boolean with no options, e.g.
next_gen_sequencing, code_in_text, software_installable,
is_preprint), answer yes/no from what the manuscript says. Always
lower confidence (medium) so the value is flagged for the author.filemap — assign a file (or files) from the directory to this field.never — do not fill. These are only the fields you genuinely
cannot derive from the files: consent and attestations (e.g.
author_consent, agree_terms, software_tested), licensing and payment
choices, suggested/opposed reviewers, specific identifiers you would
otherwise have to invent (DOIs, manuscript IDs), demographic/portal
metadata, and revision/workflow flags. Fill everything that is derivable;
list only these in unfilled, with a short reason, and move on.Render the skeleton if the .sub does not exist yet (its comments also
restate each field's options and help):
paperpush subfile <venue> --fill-defaults -o <venue>.subRead the files and extract values. Read the user-identified files with
the Read tool (PDFs and images are read directly). For a .docx or .tex
source, read or convert it to text first. For each non-never field, produce
a value:
extract: pull the statement verbatim where it exists. For authors, emit
one line per author in the column format that field's help gives — usually
Name | email | affiliation | ORCID | corresponding, marking exactly one
corresponding author yes and the rest no, but some venues reorder the
columns and some (arXiv) take the name alone. Leave a subfield blank (keep
the |) if the source does not give it — never invent an email or ORCID.classify: pick one option from options and explain your choice in
source. Use medium confidence at best.filemap: give an absolute path to each file (e.g.
/path/to/figures/fig1.png), one per line. For a filelist field
add the optional columns the help describes (path | label, or for
bioRxiv supplements path | type | linktext where type is from
type_options). Only the leading path segment is resolved, so keep it
absolute; the other columns are preserved as written.Set confidence honestly per value:
high — copied verbatim from the source, or an unambiguous file match.medium — inferred, lightly reformatted, or a classification.low — a guess you are unsure about.Write values.json in this schema (this is the contract the command
reads — keep it exactly):
{
"fields": [
{"id": "title", "value": "...", "confidence": "high", "source": "manuscript.pdf p.1"},
{"id": "authors", "value": "Ada Lovelace | ada@example.edu | Example University | | yes",
"confidence": "medium", "source": "title_page.pdf"},
{"id": "subject_category", "value": "Bioinformatics", "confidence": "medium",
"source": "classified from abstract"},
{"id": "manuscript_file", "value": "manuscript.pdf", "confidence": "high", "source": "directory"},
{"id": "figure_files", "value": "figures/fig1.png | Figure 1\nfigures/fig2.png | Figure 2",
"confidence": "high", "source": "figures/"}
],
"unfilled": [
{"id": "license", "reason": "license is your policy choice"},
{"id": "author_consent", "reason": "all authors must consent — confirm yourself"}
]
}Do not put any never-role field in fields; put it in unfilled.
Apply it (use absolute paths for the .sub, -d, and --values):
paperpush autofill <venue>.sub -d <manuscript-dir> --engine manual --values values.jsonAdd --dry-run first if you want to preview without writing. The command
prints a summary of what was filled, what needs review, and what was left for
the user, and re-validates the result.
Report to the user. Relay the command's summary, then make the handoff unambiguous. State plainly:
After the skill runs, only these are left for the user, because the skill cannot know or attest to them:
never fields — consent/attestations (e.g. author_consent,
software_tested), license and payment choices, suggested/opposed
reviewers, specific identifiers you would have to invent (e.g.
preprint_doi), and revision/workflow flags. List the exact ones left in
this file, each with the one-line reason from unfilled..sub.Then give them the next commands, with the absolute .sub path:
paperpush login <venue>
paperpush submit <venue>.subRemind them these open the portal and stop before the final click, so they can review everything in the submission system before submitting.
.sub file, the manuscript directory
passed to -d, the --values file, and every file path inside values.json.
Never pass a bare filename or a ~/relative path.extract, classify, and
filemap roles), including yes/no declarations and reproducibility-checklist
booleans. Leave for the user only the never fields and anything you truly
cannot determine — do not punt a derivable field just because it is a
declaration.never-role fields. Never invent emails, ORCIDs, funders, DOIs,
or licenses not present in the source..tex, .docx) over a flattened PDF for
author metadata.values.json strictly in the schema above; the command validates ids
against the venue and ignores anything unknown.© pachterlab, BSD-2-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/paperpush-autofill of pachterlab/paperpush.
Open the folder on GitHubat commit 34b250c
Paperpush Autofill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Paperpush Autofill this skillpachterlab/paperpush | 206 | — | ~2.4k | Automated safety check: Pass | BSD-2-Clause | |
| Markdown Article FormatterJimLiu/baoyu-skills | 27k | 6 repos | ~3.5k | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Obsidian MarkdownAtmosphere/atmosphere | 3.8k | 20 repos | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| DOCXrvdbreemen/OTGW-firmware | 207 | 33 repos | ~4.3k | Automated safety check: Pass | Proprietary | |
| Word Document Reader and WriterHKUDS/DeepTutor | 41k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 |
JimLiu/baoyu-skills
Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
Atmosphere/atmosphere
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax.
rvdbreemen/OTGW-firmware
A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx files).
HKUDS/DeepTutor
Reads, creates and edits Word .docx files with python-docx, and drops to raw OOXML for tracked changes, comments and byte-exact edits.
wasp-lang/wasp
Crosspost Wasp blog articles (MDX) to DEV.to and Medium. An agent skill from wasp-lang/wasp.
pachterlab/paperpush
End-to-end paperpush submission flow from a manuscript directory: resolve the .sub (user-provided, else an existing one in the manuscript directory, else created on the fly), autofill it, validate…
Categories
Fill an paperpush .sub submission file from a directory of manuscript files. Paperpush Autofill is an agent skill from pachterlab/paperpush.sub submission file from a directory of manuscript files.
Paperpush Autofill fits situations like: the user wants to auto-populate a venue submission from their files.
Run `npx skills add pachterlab/paperpush --skill paperpush-autofill -a claude-code`. Or copy the skill folder (.claude/skills/paperpush-autofill in pachterlab/paperpush) into .claude/skills/paperpush-autofill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pachterlab/paperpush --skill paperpush-autofill -a codex`. Or copy the skill folder (.claude/skills/paperpush-autofill in pachterlab/paperpush) into .agents/skills/paperpush-autofill in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pachterlab/paperpush --skill paperpush-autofill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/paperpush-autofill, .gemini/skills/paperpush-autofill, .github/skills/paperpush-autofill and .opencode/skills/paperpush-autofill in your project.
SKILL.md names no scripts, command-line tools or credentials: Paperpush Autofill is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Paperpush Autofill is published under the BSD-2-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Paperpush Autofill: Markdown Article Formatter (JimLiu/baoyu-skills, 27k stars), Markitdown (ImCa0/just-laws, 781 stars), Obsidian Markdown (Atmosphere/atmosphere, 3.8k stars) and DOCX (rvdbreemen/OTGW-firmware, 207 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pachterlab (a GitHub organization) maintains it in pachterlab/paperpush, which has 206 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 2, 2026.
Source: pachterlab/paperpush on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.