ar9av/paper-writing-bench
Reverse-engineer raw materials (Sparse idea, Dense idea, experimental log) from an existing AI research paper to build a benchmark case for evaluating paper-writing pipelines. Replicates the PaperWritingBench dataset construction procedure from arXiv:2604.05018 §3 / App. C. TRIGGER when the user asks to "build a benchmark case from this paper", "reverse-engineer raw materials", or "evaluate my pipeline against PaperWritingBench".
npx skills add https://github.com/Ar9av/PaperOrchestra --skill paper-writing-bench
Faithful implementation of the PaperWritingBench dataset construction
procedure from PaperOrchestra (Song et al., 2026, arXiv:2604.05018, §3 and
App. C, F.2).
The original benchmark contains 200 papers (100 CVPR 2025 + 100 ICLR 2025).
For each paper, the authors reverse-engineer the (I, E) tuple by stripping
narrative flow from the original PDF using the three prompts in App. F.2.
You can use this skill to reverse-engineer your own benchmark cases from
any paper PDF.
Given an existing AI research paper (PDF or markdown extract), produce:
idea.md (Sparse variant) — high-level concept note, no math, noexperimental results
idea.md (Dense variant) — detailed technical proposal with LaTeXequations and variable definitions, but still no experimental results
experimental_log.md — exhaustive raw experimental setup, numeric data,and qualitative observations, with all narrative references stripped
These three files form a complete (I, E) input pair for the
paper-orchestra pipeline. You can then run the pipeline and compare its
output to the original paper using paper-autoraters.
(Wang et al., 2024) for PDF→markdown extraction; you (the host agent)
should use whatever PDF extractor your environment provides.
(PDFFigures 2.0 in the paper).
bench/<paper_id>/idea_sparse.md — Sparse variantbench/<paper_id>/idea_dense.md — Dense variantbench/<paper_id>/experimental_log.md — Experimental logFor each paper, run three independent LLM calls using the verbatim prompts
below:
Load references/sparse-idea-prompt.md. Pass the paper text (or
markdown extract) as {paper_content}. The prompt instructs the model to:
Output: idea_sparse.md with the four sections (Problem Statement, Core
Hypothesis, Proposed Methodology high-level, Expected Contribution).
Load references/dense-idea-prompt.md. Same input. The prompt instructs
the model to:
Output: idea_dense.md with the four sections (Problem Statement, Core
Hypothesis, Proposed Methodology detailed, Expected Contribution).
Load references/experimental-log-prompt.md. Same input. The prompt
instructs the model to:
Output: experimental_log.md with sections for Setup, Raw Numeric Data,
and Qualitative Observations.
These are excerpted from App. F.2. The host agent MUST honor them:
\cite,reference numbers, or author names from the source paper.
removed.
must stop where empirical verification begins. They describe what will
be done, not what was done.
Table 1", "see Fig. 5". The downstream paper-orchestra pipeline will
generate its own figures and tables — the log must not assume any
particular ones exist.
truth for the section-writing-agent and content-refinement-agent's
hallucination check.
After producing (idea_sparse.md, idea_dense.md, experimental_log.md) for
a paper:
producing more rigorous methodology and Sparse exercising the system's
robustness on under-specified inputs.
idea.md, plus experimental_log.md, plus atemplate.tex for the target conference, plus a
conference_guidelines.md, into a paper-orchestra workspace.
paper-autoraters (citation F1, lit review quality, SxS paper quality).
references/bench-overview.md — the 200-paper bench, venue cutoffs, sizesreferences/sparse-idea-prompt.md — verbatim from App. F.2references/dense-idea-prompt.md — verbatim from App. F.2references/experimental-log-prompt.md — verbatim from App. F.2Take ar9av/paper-writing-bench from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.