brainstorm
Runs a structured design conversation — clarifies intent, proposes 2-3 approaches with trade-offs, iterates the design — and…
Prepares durable context for implementing and reproducing a paper from a URL, PDF, DOI, or arXiv id: sources, source-linked requirements, empirical acceptance criteria, uncertainties, scope, and data provenance under paper/. Downloads sources and datasets (into data/) and
Claude Code
$ npx -y skills add oprogramadorreal/optimus-claude --skill paper-init --agent claude-code
Codex
$ npx skills add oprogramadorreal/optimus-claude --skill paper-init -a codex -y
Cursor
$ npx skills add oprogramadorreal/optimus-claude --skill paper-init -a cursor -y
Gemini CLI
$ npx skills add oprogramadorreal/optimus-claude --skill paper-init -a gemini-cli -y
GitHub Copilot
$ npx skills add oprogramadorreal/optimus-claude --skill paper-init -a github-copilot -y
OpenCode
$ npx skills add oprogramadorreal/optimus-claude --skill paper-init -a opencode -y
Windsurf
$ npx skills add oprogramadorreal/optimus-claude --skill paper-init -a windsurf -y
description: >- Prepares durable context for implementing and reproducing a paper from a URL, PDF, DOI, or arXiv id: sources, source-linked requirements, empirical acceptance criteria, uncertainties, scope, and data provenance under paper/. Downloads sources and datasets (into data/) and updates .gitignore, .gitattributes, and README routing. Context only: writes no implementation code and sets up no project stack. disable-model-invocation: true argument-hint: "<paper URL, PDF path, DOI, or arXiv id> [scope and resource constraints]"
Build the local context bundle a later session needs to implement a research paper: the paper itself, its figures and references, what it specifies, what it leaves open, and its data. Context only — no implementation code, no stack setup. Everything the implementer needs must end up on disk; nothing may depend on this conversation's context.
One `paper/` directory at the project root holds everything paper-derived:
material included) plus the best machine-readable form available (EPUB, HTML, XML, arXiv LaTeX source), exactly as acquired. Derived files (text dumps, extracted markup) never live here.
escape hatch (step 3).
ledger (step 2).
work in turn, defers load-bearing content to (step 3), when any were fetched. Nothing derived lives here.
its original reported targets with stable identifiers.
requirements, experiment protocols, acceptance criteria, and the evidence a later implementation must produce. Prepared in step 3, reconciled in step 8.
uses datasets (step 6).
(step 6).
Keep generated workflow framing tool-agnostic: "a fresh session", "the implementing agent", without `/optimus:*` commands. Preserve product/model names that occur in the paper or its evidence; faithful transcription takes precedence. The final chat message may name `/optimus:*` commands.
The invocation argument is a URL, a local PDF path, a DOI, or an arXiv id; if none was given, ask for one. Resolve DOIs and arXiv ids to the source of record. If the paper is inaccessible (paywall, dead link), say so plainly and either stop or proceed from a file the user supplies.
Use any supplied scope, resource budget, and reference-code restrictions; retain earlier authorized decisions without asking again. An unspecified budget does not authorize paid compute or services, or large downloads.
When `git rev-parse --is-inside-work-tree` returns `true`, resolve its `--show-toplevel` and proceed in that working tree, including linked worktrees. Otherwise read `$CLAUDE_PLUGIN_ROOT/skills/init/references/multi-repo-detection.md` and apply it: the bundle goes inside the target repo, not above it. When it finds one or more child repos, ask which one the paper work targets (confirm a lone one instead of suggesting `cd`) before writing anything — bundle, `.gitignore`, and README block all land there; when it finds none, work in the current directory.
If `paper/` or a `papers/*/` directory already holds a bundle, read `references/re-running.md` and apply it before the first write.
Download into `paper/source/`, redundantly: the PDF whenever one exists (an HTML-only paper's publisher full text is the primary source), any supplementary material, plus the cleanest structured full text the publisher offers — the transcription cross-checks formats against each other. For arXiv papers, also pull the e-print source bundle (`https://arxiv.org/e-print/<id>`) when offered: the LaTeX source makes math transcription near-mechanical and ships figures at native resolution. Pull figure rasters into `paper/figures/` from whichever source has the best resolution (PDF-embedded usually beats web-served); keep native formats, never re-encode, and write `paper/figures/README.md` as they land — one line per figure (file, dimensions, caption from the paper text), known defects (duplicates, missing diagrams) at the top. Installing transient fetch or extraction tooling along the way (a PDF library, gdown, pandoc) is fine — that is not the project stack — but install it isolated (pipx, a scratch venv, `pip install --target` into a temp dir), never into the project's own environment.
Acquire public author clarifications, errata, and addenda that affect the method or results, recording their source and date. Do not contact authors without explicit authorization. Distinguish the paper version from later clarifications and keep conflicts visible until resolved.
`metadata.json` records at minimum: `title`, `authors`, `venue`, `published`, `doi`, `url`, `license`, `downloaded` (date), `code_available` (with the paper's own availability sentence when it states one), `dataset_referenced` (name, URL, whether the paper redistributes it — full provenance and re-acquisition live in `paper/dataset.md`), `source_revision` (version or publication revision), `scope_decisions` (every scope decision, supplied at invocation or taken in step 5: decision, rationale,
Runs a structured design conversation — clarifies intent, proposes 2-3 approaches with trade-offs, iterates the design — and…
Reviews local changes, an open PR/MR, or a branch diff for bugs, security issues, and violations of the project's own coding…
Stages, commits, and optionally pushes local changes with a Conventional Commits message — always previews and confirms first,…
Runs an iterative auto-fix loop on a chosen target — review, refactor, or coverage — dispatching the base skill into fresh…
Prunes and consolidates the project's auto-memory to keep it minimal — deletes stale, wrong, or redundant memories, merges…
Runs a Gauntlet Loop: turns an ambitious goal into a builder/critic prompt judged against a concrete quality bar, confirms with…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.