# Self Review

> Reviews an academic paper using the NeurIPS review form with three reviewer personas, ensemble scoring, and reflection refinement. Extracts text from PDF, runs structured review, and outputs actionable feedback.

- Skill: `qhjqhj00/self-review` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds add qhjqhj00/self-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/self-review/raw
- Safety review: CAUTION (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search, Docs & Writing, Academic Writing, Summarization
- Tags: Academic Paper, Latex, Neurips, Pdf, Peer Review, Research
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/qhjqhj00/self-review

---


# Self-Review

Review an academic paper using a structured review form with multiple reviewer personas.

## Input

- `$ARGUMENTS` — Path to PDF file or `.tex` file

## Scripts

### Extract text from PDF
```bash
python ~/.claude/skills/self-review/scripts/extract_pdf_text.py paper.pdf --output paper_text.txt
python ~/.claude/skills/self-review/scripts/extract_pdf_text.py paper.pdf --format markdown
```

Tries pymupdf4llm (best) → pymupdf → pypdf. Install: `pip install pymupdf4llm pymupdf pypdf`

### Parse PDF into structured sections
```bash
python ~/.claude/skills/self-review/scripts/parse_pdf_sections.py \
  --pdf paper.pdf --output sections.json
```

Extracts title (via font size), section headings, and section text. Requires: `pip install pymupdf`
Key flags: `--format text`, `--verbose`

## Workflow

### Step 1: Load Paper
- If PDF: use `extract_pdf_text.py` to extract text
- If `.tex`: read the LaTeX source directly

### Step 2: Three-Persona Review
Run three independent reviews using different personas (from `references/review-form.md`):

1. **Harsh but fair reviewer**: Expects good experiments that lead to insights
2. **Harsh and critical reviewer**: Looking for impactful ideas in the field
3. **Open-minded reviewer**: Looking for novel ideas not proposed before

For each persona, generate a review following the NeurIPS review JSON format in `references/review-form.md`.

### Step 3: Reflection Refinement (up to 3 rounds per reviewer)
After each review, apply the reflection prompt: re-evaluate accuracy and soundness, refine if needed. Stop when "I am done".

### Step 4: Aggregate
- Combine all three reviews
- Average numerical scores (round to nearest integer)
- Synthesize a meta-review finding consensus
- Weight scores using AgentLaboratory weights: Overall (1.0), Contribution (0.4), Presentation (0.2), others (0.1 each)

### Step 5: Actionable Report

Output format:
```
## Review Summary
- **Overall Score**: X/10 (Weighted: Y/10)
- **Decision**: Accept / Reject
- **Confidence**: Z/5

## Strengths (consensus across reviewers)
1. ...
2. ...

## Weaknesses (consensus across reviewers)
1. ...
2. ...

## Questions for Authors
1. ...

## Specific Suggestions for Improvement
1. [Section X, Page Y]: ...
2. [Section Z, Page W]: ...

## Score Breakdown
| Dimension | R1 | R2 | R3 | Avg |
|-----------|----|----|-----|-----|
| Overall | ... | ... | ... | ... |
| Contribution | ... | ... | ... | ... |
| ... | ... | ... | ... | ... |
```

## References

- NeurIPS review form, scoring weights, personas, reflection prompts: `~/.claude/skills/self-review/references/review-form.md`
- PDF text extraction: `~/.claude/skills/self-review/scripts/extract_pdf_text.py`

## Missing Sections Check
You MUST verify that all required sections are present: Abstract, Introduction, Methods/Approach, Experiments/Results, Discussion/Conclusion. Reduce scores if any are missing.

## Related Skills
- Upstream: [paper-compilation](../paper-compilation/)
- Downstream: [paper-revision](../paper-revision/), [rebuttal-writing](../rebuttal-writing/)
- See also: [slide-generation](../slide-generation/)

