Research paper review
Run academic paper review with OCR extraction, multi-method CLI review, local visualization, and deep section-level critique workflows integrated into the research skill suite. Use when Codex needs an initial or first-pass review of one paper artifact or arXiv URL, including OCR, extraction, section-level critique, or viz JSON generation. Prefer `research-review-loop` once a tracked review state or revised artifact already exists, `research-novelty-review` for prior-art and positioning questions, `research-rebuttal` when concrete reviewer comments already exist, and `adversarial-doc-review` for non-paper documents.From its SKILL.md
npx -y skills add kenantang/codex-and-claude-skills --skill research-paper-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 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.
SKILL.md
11.1 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it
Research Paper Review
Quick start
- Decide whether the user needs:
- fast review or extraction via the upstream CLI
- a local viz server for existing result JSON
- a deep paper-review pass with section-level scrutiny
- Bootstrap the upstream engine once with
python3 scripts/install_engine.py. - For orchestrated research packs, prefer
./paper-review/as the canonical stage root and record non-canonical output paths inartifact-index.md. - Use
references/engine-usage.mdfor flags, provider environment variables, and OCR engine details. - Use
references/rating-rubric.mdand the 1-5 issue/output scales instead of coarse three-bucket judgments.
Modes
CLI mirror mode
- Preserve the upstream OpenAIReview CLI surface through
scripts/run_openaireview.py. - Use this for:
review: generate result JSON quickly withzero_shot,local,progressive, orprogressive_fullextract: OCR or parse a paper into Markdown with metadataserve: browse saved result JSON in a local UI
- Do not re-implement upstream review logic locally when the CLI already covers the request.
Deep review mode
- Use this when the user wants a stronger paper critique than a single-pass CLI review.
- Adapt the upstream skill workflow to Codex and the research suite:
- prepare a review workspace
- understand the full paper
- run section-level and cross-cutting review passes
- consolidate, tier, and save issues into viz-compatible JSON
- Prefer this mode when the paper-review stage will feed
research-review-loop,research-paper-plan, orresearch-rebuttal.
Relationship to sibling skills
research-paper-reviewowns paper ingestion, OCR, first-pass critique, and viz output for a single paper.research-review-loopowns iterative tracked review after there is already a first-pass critique, revision cycle, or explicit issue ledger.research-novelty-reviewowns prior-art pressure testing and positioning, not first-pass technical critique of a paper artifact.research-rebuttalowns responses to external reviewer comments, not initial manuscript diagnosis.adversarial-doc-reviewowns broad document red-teaming outside the paper-review workflow, especially non-paper Markdown or policy/spec documents.
Input contract
- Minimum:
- one concrete paper artifact or URL
- Supported inputs through the upstream engine:
- local
.pdf,.docx,.tex,.txt,.md - arXiv
absorhtmlURLs
- local
- Prefer:
- venue or audience
- whether the user wants quick scoring, issue discovery, or rebuttal-grade critique
- model, provider, OCR engine, and token/cost constraints
- Environment:
- at least one supported API key when running LLM review
- optional OCR backends for
mistralordeepseek
Hard stops
- Stop if there is no concrete paper artifact or URL.
- Stop if the task would require invented evidence, fabricated quotes, or guessed paper contents.
- Stop before deep review when the paper is too incomplete to support meaningful section-level scrutiny.
- If the upstream engine is missing, install it with
scripts/install_engine.pyinstead of trying to recreate the package inline.
Output contract
- In orchestrated mode, preserve the active review workspace under
./paper-review/<slug>_review/unless a different path is explicitly recorded inartifact-index.md. - Required handoff files for downstream stages:
<review_dir>/summary.md<review_dir>/final_issues.json<review_dir>/review_summary.json<review_dir>/overall_assessment.txt
- Required support files:
<review_dir>/metadata.json<review_dir>/full_text.md<review_dir>/sections/index.json
- Optional but strongly preferred:
<review_dir>/comments/all_comments.json./review_results/<slug>_skill.json
- Record the exact active review workspace path and any viz JSON path in
artifact-index.mdso later skills do not guess. review_summary.jsonis the numeric summary artifact for downstream routing. It should include:overall_paper_rating(1-5)decision_relevance_rating(1-5)rating_confidence(1-5)top_blockers
Workflow
0) Track the review explicitly
- If a task tracker is available, create tasks for:
- prepare workspace
- understand the paper
- run review passes
- consolidate and tier findings
- write handoff artifacts
- save viz output
- Mark progress as you move. A deep paper review should not become an opaque one-shot blob of reasoning.
1) Bootstrap the upstream engine
- Run
python3 scripts/install_engine.pybefore the first use on a machine. - Default install source is the upstream GitHub repo so this skill tracks the referenced project directly.
- Use
--with mistralor--with deepseekwhen those OCR backends are needed. - The install path defaults to
./.openaireview-venvinside the skill directory unlessOPENAIREVIEW_VENVis set.
2) Route to the correct execution path
- Quick review:
python3 scripts/run_openaireview.py review <paper> ...
- Extraction only:
python3 scripts/run_openaireview.py extract <paper> ...
- Viz only:
python3 scripts/run_openaireview.py serve --results-dir <dir> --port <port>
- Deep review:
- continue with the staged workflow below
3) Prepare the deep-review workspace
- In orchestrated mode, prefer
./paper-review/as the stage root and./review_results/for viz JSON. - Run:
python3 scripts/prepare_workspace.py "<input>" \
--criteria references/criteria.md \
--output-dir ./paper-review
- The upstream workspace contains:
metadata.jsonfull_text.mdcriteria.mdsections/index.jsoncomments/
- Record the review directory and slug immediately, and write the resolved review directory into
artifact-index.mdif you are in a suite pack.
4) Build a full-paper model before criticizing details
- Read
full_text.mdcompletely, including appendices, tables, and formal sections. - Write
summary.mdin the review directory using this structure:
# Paper Summary: [Title]
## Research Question
[One sentence]
## Core Hypothesis / Thesis
[What the paper claims to show]
## Methodology Overview
[2-3 sentences]
## Key Definitions & Notation
- [Term/symbol]: [definition]
## Key Numerical Parameters
- [Parameter]: [value and context]
## Main Claims (with evidence location)
1. "[Claim]" — [Section X, Table Y]
## Section Map
- [Section N] ([Title]): [one-line summary]
## Notable Cross-References
- [Section X] references [Section Y] for [what]
- Do not launch detailed review passes until the summary is good enough that another agent could use it as global context.
5) Run section and cross-cutting review passes
- Read
sections/index.jsonand plan a review set, typically:- 4-7 section-focused passes covering each major section or logical cluster
- 3-5 cross-cutting passes for claims vs evidence, evaluation fairness, statistical consistency, notation coherence, or paper-specific risks
- Group small or tightly coupled sections together rather than creating trivial one-section passes.
- Use
references/subagent_templates.mdfor prompt structure andreferences/criteria.mdfor issue format. - If the runtime explicitly allows parallel subagents, launch them in parallel.
- If parallel subagents are unavailable, run the same passes serially in the current agent and keep outputs separate under
comments/. - Favor deep, merged root-cause arguments over surface-level issue spam, but do not collapse distinct issues that require different fixes.
- Each pass should write a JSON array into
comments/. Empty arrays are valid; missing output files are not.
6) Consolidate and tier findings
- Run:
python3 scripts/consolidate_comments.py <review_dir>
- Deduplicate by root cause, not wording alone.
- For any singleton finding that appears in only one pass, read the full explanation before dropping it. Singleton comments are often the best signals, not the weakest.
- Verify that every kept quote appears in the paper text.
- Remove false positives resolved by later context, standard conventions, or leniency rules in
criteria.md. - Reclassify comment types into:
methodologyclaim_accuracypresentationmissing_information
- Assign:
impact_ratingon a 1-5 scaleconfidence_ratingon a 1-5 scale
- Use
references/rating-rubric.md. - Keep singleton findings unless a concrete check disproves them.
- As a calibration check, a thorough deep review of a publishable paper usually yields a double-digit total issue count across impact levels. If you have only a handful of findings, check whether you over-merged or skipped cross-cutting passes. If you rate nearly everything
4or5, re-check whether some issues are really localized2or3findings.
7) Save final results for browsing and downstream use
- Write
final_issues.jsonin the review directory. Each issue needs:titlequoteexplanationcomment_typeimpact_ratingconfidence_rating
- Write
review_summary.jsonin the review directory with:overall_paper_ratingdecision_relevance_ratingrating_confidencetop_blockers
- Write
overall_assessment.txtas one short paragraph. - Build viz JSON:
python3 scripts/save_viz_json.py <review_dir> --slug-suffix _skill
- The output lands in
./review_results/unless overridden. - Use
python3 scripts/run_openaireview.py serveto browse results locally. - Run
python3 scripts/validate_review_bundle.py --review-dir <review_dir>before treating the bundle as stable. - Treat
summary.md,final_issues.json,review_summary.json, andoverall_assessment.txtas the canonical handoff bundle forresearch-review-loop,research-paper-plan, andresearch-rebuttal.
References
references/engine-usage.mdreferences/criteria.mdreferences/rating-rubric.mdreferences/subagent_templates.md../research-pipeline-planner/references/review-stage-contract.md
Scripts
scripts/install_engine.py: create or update a virtualenv with the upstream OpenAIReview enginescripts/run_openaireview.py: mirror the upstreamopenaireviewCLIscripts/prepare_workspace.py: delegate to the packaged deep-review workspace preparerscripts/validate_review_bundle.py: validate required handoff files and 1-5 rating fields for downstream usescripts/consolidate_comments.py: delegate to the packaged consolidation helperscripts/save_viz_json.py: delegate to the packaged viz JSON helper
What ships with it: 12 files
21.7 KB alongside SKILL.md, 7 of them executable
agents/
- openai.yaml305 B
references/
- criteria.md2.3 KB
- engine-usage.md2.0 KB
- rating-rubric.md1.5 KB
- subagent_templates.md2.1 KB
scripts/
- consolidate_comments.pyruns866 B
- _engine.pyruns4.3 KB
- install_engine.pyruns1.8 KB
- prepare_workspace.pyruns863 B
- run_openaireview.pyruns907 B
- save_viz_json.pyruns846 B
- validate_review_bundle.pyruns3.9 KB