Vibe sci
Provider-neutral autonomous ML research paper writer — ideation -> LaTeX writeup -> peer review -> anti-hallucination numerical audit. Spun out from hermes-sci to remove Hermes-runtime coupling.
npx -y skills add easyvibecoding/vibe-sci --skill vibe-sciAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate autonomous ML research paper drafts — ideation → LaTeX writeup → peer review → anti-hallucination numerical audit. Provider-neutral (works with the `claude` CLI, any OpenAI-compatible endpoint, or a rule-based fallback — no Hermes runtime required). Use when the user asks to "write a research paper", "generate a paper draft from this idea", "peer-review this paper", "ideate research topics", or "run an autonomous research writeup pipeline".
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.4 KB, as published. Nobody here has run it
vibe-sci
Provider-neutral autonomous ML research paper writer. Spun out from hermes-sci to remove the Hermes-runtime coupling — no local proxy, no ~/.hermes/config.yaml, no vendor lock-in.
When to Use
The user asks to:
- "write a research paper" / "generate a paper draft from this idea" →
vibe-sci writeuporvibe-sci pipeline - "peer-review this paper" / "review this .pdf" / "score my paper draft" →
vibe-sci review - "ideate research topics around X" →
vibe-sci ideate - "run an autonomous research writeup pipeline" →
vibe-sci pipeline
…without requiring a specific LLM backend. vibe-sci auto-detects whichever provider env var is set, falling through to the claude CLI on PATH.
Quick Reference
Review a paper (fastest way to verify your install)
vibe-sci review --paper <path.md|path.pdf> --backend claude-cli --ensemble 1 \
--output <review.json>
Emits <review.json> with Summary, Strengths / Weaknesses lists, the 7 NeurIPS sub-scores (Originality / Quality / Clarity / Significance / Soundness / Presentation / Contribution — each 1-4), Overall (1-10), Confidence (1-5), and Decision (Accept | Reject).
--ensemble 1→ ~25s on Apple Silicon viaclaudeCLI (single-shot)--ensemble 5→ NeurIPS-style median aggregation (5× serial cost on claude-cli; parallel on openai-compat)
Ideate research topics
vibe-sci ideate --topic "efficient attention mechanisms" --num-ideas 5 \
-o ideas.json
Generate a paper from an idea (with numerical audit)
vibe-sci writeup --ideas-json ideas.json --idx 0 \
--results-json experiment_results.json \
-o out_dir/
Full pipeline (ideate → writeup → review)
vibe-sci pipeline --topic "..." --num-ideas 3 -o out_dir/
Procedure
-
Pick a backend. Default
--backend autoresolves in this order:- First provider with an env var set (OpenAI → Anthropic → DeepSeek → MiniMax → Moonshot → Gemini → Groq → Together → xAI → Zhipu)
claudeCLI if on PATHRuntimeErrorwith the full env-var list if neither.
-
For review-only you don't need ideation or writeup. Call
vibe-sci review --paper ...on any existing.pdf(needspypdforpymupdf4llm) or plain-text.md/.txt. -
For writeup with anti-hallucination audit, pass experiment results as
--results-json(preferred — structured schema invibe_sci/data/results_schema.json). Every numeric claim in the generated LaTeX is then cross-checked against that JSON; unverified numbers can be highlighted red in the PDF with--annotate-unverified. -
If
pdflatexis missing,writeupstill emits a complete.tex(you can compile it elsewhere) but skips the PDF and the log-driven retry pass. -
For the fastest quality pass on a draft, run
vibe-sci review --ensemble 3against the.texor a plain-text dump of your draft — the median-of-3 aggregation catches issues a single reviewer misses.
Pitfalls
claude-clibackend is serial.complete_batchloopsnsubprocesses, so--ensemble 5takes roughly 5× as long as--ensemble 1. Switch to--backend openai-compatwhen you need real parallelism.claude-cliignorestemperatureandmax_tokens. TheclaudeCLI picks its own model (honoursCLAUDE_MODELenv var) and decoding params. Use--backend openai-compatfor tight decoding control.- Papers over ~60k characters are truncated in review (
max_charsparameter). Short papers get full fidelity; very long preprints lose late-section content. Split them or bumpmax_charsin the library API. - The
experimentstage is skipped.vibe_sci.coder.run_coding_loopis not implemented; always pass pre-computed results via--results-json/--results-md. - LaTeX citation filtering is aggressive. The writeup pipeline drops
\cite{...}keys not present in the bundledreferences.bib. Add your own bib entries before running, or post-edit the emitted.tex.
Verification
-
uv run vibe-sci --help— listsideate / writeup / validate-results / review / pipelinesubcommands. -
uv run pytest tests/— 9 scaffold guardrails pass (frontmatter compliance, host-symlink integrity, plugin manifest agreement). -
End-to-end smoke test (requires
claudeCLI):mkdir -p /tmp/vibe-sci-smoke cat > /tmp/vibe-sci-smoke/paper.md <<'EOF' # Test Paper: Minimal Attention Variant ## Abstract We propose replacing softmax attention with sigmoid gating, yielding a 3.2% perplexity reduction on WikiText-103 at 124M parameters. ## Method Replace softmax(QK^T/√d) with σ((QK^T - b)/√d) for a learned per-head bias b. ## Results | Benchmark | Baseline | Ours | |--------------|----------|------| | WikiText-103 | 15.8 | 15.3 | | enwik8 bpb | 1.06 | 1.04 | ## Limitations Single seed, single model size, no comparison against other attention variants. EOF uv run vibe-sci review --paper /tmp/vibe-sci-smoke/paper.md \ --backend claude-cli --ensemble 1 -o /tmp/vibe-sci-smoke/review.jsonExpected:
✅ review → /tmp/vibe-sci-smoke/review.json overall=<N> decision=<Accept|Reject>within ~30 seconds; the JSON contains non-nullOverall(1-10) and aDecisionfield. A correctly-functioning reviewer will flag the intentionally weak empirical section (single seed, no CI, no attention-variant baselines) inWeaknesses— seereferences/example_review.jsonin this skill directory for a captured reference output.