Communitygithub.com

Paper Analyst

Analyze academic papers and research PDFs. Use this skill when the user uploads or pastes a research paper and wants to understand it.

What is Paper Analyst?

Paper Analyst is a specialized skill for AI coding agents that analyzes academic papers from PDF uploads or pasted text. It supports multiple output modes—quick, standard, extended, and presentation—and defaults to Chinese output. The skill classifies paper type using a rubric, enforces strict anti-hallucination rules (source tagging, uncertainty markers, no domain assumption), and handles degraded PDFs gracefully. It can automatically extract figures and generate slide plans for group meetings or conferences. Ideal for researchers, students, and anyone needing structured, reliable paper breakdowns.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flyer-Li/paper-analyst/tree/main

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does Paper Analyst do?

Analyze academic papers from PDF or pasted text. Output in Chinese by default. All outputs follow references/output-schema.md. Paper type detection uses references/paper-type-rubric.md. Anti-hallucination rules in references/quality-checklist.md.

Quick Reference

FilePurpose
references/output-schema.mdSection structure and field rules
references/paper-type-rubric.mdHow to classify paper type
references/quality-checklist.mdAnti-hallucination checklist
references/presentation-schema.mdSlide plan JSON schema
references/presentation-style-guide.mdContent compression rules for slides
references/pptx-handoff.mdHow to call the pptx skill for rendering
scripts/extract_pdf_meta.pyOptional: extract PDF metadata to JSON

Mode Selection

Default mode: standard. Detect from user's request:

ModeTriggerOutput
quick"quick", "simple summary", "in one sentence", "brief"Header + info + abstract + 3 contributions
standard(default)Full analysis: sections 1–5
extended"prior work", "research group", "prior work"standard + author/group prior work
presentation"PPT", "group meeting", "presentation outline", "slides"standard + slide outline
presentation_with_figures"figures", "figures", "with figures", "key figures"presentation + figure annotations

If ambiguous, use standard and offer to switch.

Workflow

Step 1: Assess Input Quality

Classify PDF quality before analysis:

  • Good: Full text extractable
  • Degraded: Partial text, scanned sections, garbled encoding
  • Severely Degraded: Minimal text, image-only PDF

If degraded: state reason in header line, proceed with available content, mark all gaps explicitly. Never fabricate content to fill gaps.

Optional: if user has Python, suggest running scripts/extract_pdf_meta.py first for structured metadata.

Step 2: Classify Paper Type

Read references/paper-type-rubric.md and classify. Do NOT assume AI/ML. Output the type label and 2–3 evidence indicators before proceeding.

Step 3: Execute Analysis

Follow references/output-schema.md for the selected mode. Apply all rules from references/quality-checklist.md throughout every section.

Step 4: Self-Check Before Output

Verify before finalizing:

  • Every uncertain field marked [uncertain] or [not explicitly given]
  • Every contribution tagged [original statement] or [model inference]
  • No section silently omitted — skipped sections state why
  • Paper type label matches rubric evidence

Anti-Hallucination Rules

Full rules in references/quality-checklist.md. Non-negotiable constraints:

  1. Source tagging: [original statement] = directly stated in paper (cite location); [model inference] = inferred by model (state reasoning basis)
  2. Uncertainty: [not explicitly given] when absent; [uncertain] when ambiguous
  3. No domain assumption: classify paper type first, always
  4. No fabrication: venue, DOI, year, affiliations not in text → [not explicitly given]
  5. Evidence binding: each contribution must cite section/figure/table/quote
  6. Degraded PDF: state which sections were unreadable; do not fill gaps

Degraded Input Fallback

SituationAction
Only abstract availablequick mode, note limitation
Scanned PDF, no textAsk user for text or OCR first
Missing references sectionSkip prior work analysis, note absence
Figures unreadableSkip figure analysis, note absence
Non-English paperTranslate key sections, note source language

Extended Mode: Author Prior Work

Only in extended mode:

  1. Extract all author names from paper
  2. Identify self-citations in reference list (shared authors)
  3. Infer research group focus from affiliations + paper title
  4. List prior works from reference list only — no web search, no external knowledge
  5. Tag all output: [based on in-paper references, not external search]
  6. If insufficient info: explicitly state "insufficient information to determine prior work relationships"

Presentation Mode: PPT Generation

Only in presentation or presentation_with_figures mode.

Step A: Collect Overrides

Before building the slide plan, check if the user specified any of:

  • audience (lab / conference / general) — default: lab
  • duration_hint (10min / 20min / 30min) — default: 20min
  • talk_style (technical / overview / discussion) — default: technical
  • emphasis (which sections to expand)
  • skip (which sections to omit)

If not specified, use defaults silently.

Step B0: Extract PDF Figures (presentation_with_figures only)

Before building the slide plan, run:

python scripts/extract_pdf_figures.py <pdf_path>

This saves all figures to figures/ and writes figures/index.json with name, path, and page for each image. Use this index when assigning figure_ref paths in the handoff.

Step B: Build Slide Plan

Follow references/presentation-schema.md for structure. Follow references/presentation-style-guide.md for compression rules.

  • Map each slide role to the corresponding output-schema section
  • Apply user overrides (emphasis → expand, skip → omit)
  • For presentation_with_figures: set figure_needed: true on method/result slides where a figure is the primary evidence; add figure_ref and figure_hint
  • Slide count from duration_hint (10min→6-7, 20min→9-10, 30min→12-14)

Step C: Call pptx Skill

Follow references/pptx-handoff.md for the exact handoff format.

  • Strip all [original statement] / [model inference] tags before passing to pptx
  • Do NOT include speaker notes in the handoff
  • Call pptx skill automatically — do not ask the user first
  • Exception: if user said "just the outline" / "just the outline", output the slide plan as text and skip pptx

Related Skills