Research Skills
A collection of Claude Code skills for academic research workflows.
Skills
| Skill | Description | Trigger |
|-------|-------------|---------|
| medical-imaging-review | Write comprehensive literature reviews for medical imaging AI | /medical-imaging-review, "review paper", "survey", "综述" |
| paper-slide-deck | Stylized slide images (17 T2I aesthetic styles) for reading & sharing — any content | /paper-slide-deck content.md --style watercolor |
| research-proposal | Generate PhD research proposals with Nature Reviews-style academic writing | /research-proposal, "research proposal", "PhD proposal", "研究计划" |
| research-paper | Draft original research articles (IMRaD) from your completed experiments — results-first, reporting-checklist bound | /research-paper, "write the paper", "论文写作" |
| scholar-slides | Fidelity-first academic decks for a live talk — vector equations, extracted figures, grounded citations, editable PPTX | "make slides", "组会 PPT", "答辩幻灯片", a paper PDF / arXiv / DOI |
| lit-search | Exhaustive time-windowed literature retrieval with measurable recall — quality-tiered DOI list + formatted references | /lit-search, "systematic review", "开题报告的文献检索/查全部分", "把某方向近 N 年文献检索全" |
Slides from a paper? Two different tools, on purpose. Use scholar-slides for a faithful,
editable live talk — equations, numbers, tables, and citations stay exact and projector-ready.
Use paper-slide-deck for stylized visual images to read or share, where look-and-feel
matters more than editable precision (its slides are AI-generated images, so math and data are
not editable and can be garbled — don't use it for a defense or a results-heavy talk).
Doing a review? Two stages, two skills. lit-search builds the corpus — it finds the
papers and proves how complete the search was. medical-imaging-review writes the review from
papers you already have. Running a systematic review end to end means lit-search first, then
medical-imaging-review over its dois.md.
Shared anti-fabrication core. All five writing/rendering skills instantiate the same
five-rule citation-integrity discipline; the variants are reconciled at development time in
docs/citation-integrity-core.md.
Installation
Copy the desired skill folder into your Claude Code skills directory:
cp -r medical-imaging-review ~/.claude/skills/
cp -r paper-slide-deck ~/.claude/skills/
cp -r research-proposal ~/.claude/skills/
cp -r research-paper ~/.claude/skills/
cp -r scholar-slides ~/.claude/skills/
cp -r lit-search ~/.claude/skills/
scholar-slides and lit-search carry their own toolchains; after copying, provision them once:
cd ~/.claude/skills/scholar-slides && ./install.sh
cd ~/.claude/skills/lit-search && ./install.sh # needs uv + Python 3.11+
Medical Imaging Review Skill
Plan, conduct, and draft a medical imaging AI review whose every claim audits back to first sources — narrative review, method survey, scoping review, or systematic review with qualitative synthesis only (meta-analysis / umbrella review are explicitly out of scope and route out to a specialized methods workflow).
Features
- Four-route contract —
narrative/method-survey/scoping/systematicroute tokens frozen at intake; matching reporting standards (PRISMA 2020/ScR, QUADAS-3, CLAIM 2024, TRIPOD+AI, PROBAST-family, SWiM) per route - Immutable project contract —
init_review_project.pyscaffolds a timestamped project (review_config.yaml,REVIEW_CONTEXT.md,claim_ledger.csv,references.bib,manuscript.md, route-specific checklists) with atomic staging; the route cannot silently change after collection begins - Stable citekeys, never mutable numbers — the working draft cites
[@smith2024model]; the target journal's numeric/author-date style is rendered only at final formatting - claim_ledger discipline — one atomic claim–source pair per row (26 columns: metric, direction, evidence excerpt, verification status, …); drafting reads the ledger, not model memory
- Executable audit with honest semantics —
scripts/audit_manuscript.pybinds manuscript citekeys ↔references.bib↔ claim ledger;gate_statuscan befail/warning/not_assessedbut neverpass(a clean audit proves nothing was found wrong, not that the review is correct); exit codes 0/1/2 - Human gates stay human — screening, charting/extraction, risk-of-bias, and certainty steps are logged with named roles and never auto-passed
Route-aware workflow
- Route and configure (intake gate) → 2. Initialize project → 3. Design methods (protocol + search plan frozen before screening) → 4. Collect and register sources → 5. Pass human gates → 6. Synthesize within scope → 7. Draft from verified records → 8. Validate and report status.
Files
| Path | Description |
|------|-------------|
| SKILL.md | Route contract, project contract, workflow, audit usage |
| references/REVIEW_TYPES.md | Route routing + per-route artifacts and gates |
| references/REPORTING_STANDARDS.md | PRISMA / QUADAS-3 / CLAIM / TRIPOD+AI / SWiM standards fit |
| references/WORKFLOW.md | Phase-by-phase workflow guide (Phase -1 … 6) |
| references/PARADIGM.md | Optional exemplar style capture → style_profile.json (schema 2.0) |
| references/CITATION_INTEGRITY.md | Citekey/claim-ledger verification protocol |
| references/HALLUCINATION_PATTERNS.md | LLM hallucination indicators to self-check |
| references/TEMPLATES.md | Project file templates (ledger schema, gates, style profile) |
| references/DOMAINS.md | Domain-specific method categories and datasets |
| references/MCP_SETUP.md | Literature connector configuration and fallbacks |
| references/QUALITY_CHECKLIST.md | Pre-submission quality checklist |
| scripts/init_review_project.py | Project initializer (atomic, refuses existing targets) |
| scripts/audit_manuscript.py | Executable manuscript audit (scripts/mir_audit/ package) |
| scripts/import_litsearch.py | Import a lit-search run as an immutable search export + one search_log.csv row (refuses re-import or a missing PRISMA total) |
| tests/ | Fixture test suite locking the audit and initializer contracts |
Paper Slide Deck Skill
Transform any content into stylized, shareable slide images (AI-generated), with figure detection and high-resolution page rendering from PDFs.
Text, math, and data are baked into each image and not editable — for a faithful, editable academic talk (组会/答辩/results-heavy) use scholar-slides instead.
Features
- Caption-based figure detection from PDF papers (locates the page; human confirmation recommended for dense two-column layouts)
- Figure-to-slide mapping with full-page high-res render + template container (not per-figure bbox cropping)
- 17 visual styles (academic-paper, sketch-notes, minimal, etc.)
- Gemini API integration (
gemini-3-pro-image) for AI slide generation, with an enforced proofread pass: every generated slide needs a recorded disposition bound to its bytes before PPTX/PDF merge - PPTX/PDF export with merge scripts
Workflow
- Analyze paper and detect figures/tables
- Generate outline with auto IMAGE_SOURCE mapping
- Extract figures from PDF (or AI-generate)
- Apply academic templates
- Merge to PPTX/PDF
Files
| Path | Description |
|------|-------------|
| SKILL.md | Main skill definition and workflow |
| references/ | Analysis framework, templates, style definitions |
| scripts/ | Python/TypeScript automation scripts |
Scripts
| Script | Purpose |
|--------|---------|
| generate-slides.py | Gemini API image generation |
| detect-figures.ts | PDF figure/table detection |
| extract-figure.ts | PDF page extraction |
| apply-template.ts | Academic figure container template |
| merge-to-pptx.ts | PPTX generation |
| merge-to-pdf.ts | PDF generation |
| proofread.ts | Proofread dispositions; merges refuse unproofread AI-generated slides |
Research Proposal Skill
Generate high-quality academic research proposals — PhD applications, research plans, 研究计划书 / 开题报告 — following Nature Reviews-style academic writing conventions.
Features
- Structured 5-phase workflow with a write-with-verify content stage: Requirements → Literature (+verification gate) → Outline (approval red line) → Content (section-by-section) → Output
- Citation-integrity guardrails: every reference verified to exist (DOI/PMID/arXiv or Zotero) with author and year matching the source — unverifiable entries are flagged, never fabricated
- Executable citation gate:
scripts/check_proposal.pyreconciles in-text citations ↔ References both ways (APA author-year or GB/T 7714[N]), fails on mixed styles instead of half-checking, and catches placeholders, AI tells and leftover scaffold instructions (shares its core, byte-identical, with research-paper) - Multi-source literature integration: WebSearch, Zotero MCP, arXiv, PubMed (with tool-portable fallbacks)
- Bilingual support: English and Chinese (中文)
- Domain adaptation: STEM (incl. computational / ML / AI-for-Science), Humanities, Social Sciences
- Academic writing style: prose-based, evidence-calibrated language; reference count follows the argument (no padding quota)
Workflow
- Gather requirements (topic, domain, language, word count)
- Collect literature from multiple sources
- Generate outline for user approval
- Write full proposal based on approved outline
- Output Markdown with quality checklist
Files
| Path | Description |
|------|-------------|
| SKILL.md | Main skill definition and 5-phase workflow |
| references/STRUCTURE_GUIDE.md | Section-by-section writing guide |
| references/DOMAIN_TEMPLATES.md | STEM vs Humanities differences |
| references/WRITING_STYLE_GUIDE.md | Nature Reviews academic writing style |
| references/CITATION_INTEGRITY.md | Reference verification protocol (5 rules, author-year style) |
| references/QUALITY_CHECKLIST.md | Quality verification checklist |
| references/LITERATURE_WORKFLOW.md | Literature collection workflow |
| assets/proposal_scaffold_en.md | English template scaffold |
| assets/proposal_scaffold_zh.md | Chinese template scaffold |
Output
- Target: 2,000-4,000 words (default ~3,000) for a PhD proposal; 开题报告 follows the institution's required length (常见 10,000–30,000 字)
- References: count follows the argument (typically 25–50; no minimum, no padding), each verified
- 3-5 figure suggestions
- Markdown format (convertible to DOCX/PDF via pandoc)
Research Paper Skill
Draft an original research article (IMRaD, conference style, or 中文期刊) from work that is already done. Two disciplines distinguish it from the proposal/review skills:
- Results-first. Methods and Results are written from the user's actual materials
[PENDING], never
filled with a plausible number. A results_ledger.csv maps every load-bearing number in
the draft back to its source artifact, and the Phase 5 gates reconcile them.
- Reporting-checklist bound. Study type selects a binding checklist at intake
Citation discipline is the repository's shared five-rule core in journal-style form (docs/citation-integrity-core.md); the related-work corpus can be built by lit-search and consumed directly.
The Phase 5 gates are executable: scripts/check_paper.py paper_draft.md --ledger
results_ledger.csv --bib references.bib fails on any metric-like number (decimal, %, n=)
the ledger does not cover — including in Chinese prose and bracketed CIs — on [@citekey] ↔
references.bib orphans in either direction, on placeholder/AI-tell hits, and on reporting-
checklist rows without a disposition. Exit 0 means no mechanical findings, not a correct paper.
Scholar Slides Skill
Turn a research paper (or arXiv/DOI link, or a topic) into a fidelity-first slide deck — one where every equation, table, number, figure, and citation stays true vector/text and traceable to the source, never rasterized by an image model and never fabricated. Where paper-slide-deck optimizes visual style via text-to-image, scholar-slides inverts the priority for scholarly work: source fidelity > polish, behind an executable integrity gate.
Features
- Fidelity-first rendering — KaTeX vector equations, real
/OOXML tables, cited figure crops; numbers grounded against the source, no fabrication
- Integrity QA gate — number grounding,
[MISSING]/[UNVERIFIED]flags instead of silent fills, PPTX-parity regression, a scoreable aesthetics rubric- Two registers — journal-club (组会, reading-first) and conference (big-room), via a token-based theme system
- Bilingual — English default, full 中文 / CJK support
- Zotero-first citations with Crossref / arXiv / DOI fallback
Outputs
- Interactive reveal.js deck (with browser speaker view)
- One-page-per-slide vector PDF
- Editable PPTX (native text, bullets, tables, speaker notes; equations/figures as flagged images)
- Speaker notes with a bilingual talk-time estimate
Install & run
cd ~/.claude/skills/scholar-slides && ./install.sh # .venv + npm + Chromium, then self-checksPrereqs: Python 3.11+, Node 18+. For Chinese decks on Linux:
sudo apt-get install fonts-noto-cjk(macOS/Windows already have CJK fonts).Known limitation
Figure localization is layout-dependent — ~95–100% on single-column / arXiv / Nature-style papers, ~75% on dense IEEE/TPAMI two-column pages. Low-confidence crops are flagged for you to confirm, never silently wrong. Stress-tested across cross-layout papers with 0 crashes; on the corpus checked in under
out/*/figures.jsonthe figure localization rate is reproducibly 60/61 ≈ 98.4%. See scholar-slides/README.md for the full story.Design rationale and the 6-repo landscape survey behind this skill live in docs/scholar-slides-design/.
Lit Search Skill
Retrieve everything published on a topic inside a time window, and be able to say how much you missed. Chat-style search returns "the top few by relevance" — not reproducible, and silent about its own gaps. This skill turns retrieval into a deterministic pipeline: multi-source × full pagination × citation closure × a measurable saturation criterion, then delivers the corpus.
Features
- Recall is measured, not claimed — gold-set recall, out-of-window leakage controls, per-source unique contribution, snowball saturation curve, PRISMA counts that refuse to render when they don't add up
- Says what it did NOT do — sources declared but never contacted, unimplemented sources, skipped citation closure: each appears in
coverage_report.mdwith a computed reason. "No gaps" is written out as a conclusion, never implied by a blank section - Annotates quality, never filters — CCF grade / journal metric / citation percentile decide order, not inclusion. A threshold would conflate "not evaluated" with "low quality" (measured: cutting at 4.0 dropped 340 papers that had no metric at all)
- Reaches closed publishers' metadata — Elsevier 95.6% / Springer 80.4% / IEEE 98.7% abstract coverage via OpenAlex + PubMed. It does not bypass paywalls
- Human adjudication flows back in — screening disagreements and boundary dates re-import with reviewer, timestamp, reason, and the prior verdict preserved
- Three depth tiers with cost and wall-clock stated before you run (
lit depths)
Outputs
dois.md(full DOI list, sectioned by quality tier, evidence per entry) ·references.md(same order, GB/T 7714 / APA / IEEE / Nature / AMA) ·references.bib(with--bibtex) ·PRISMA.md·coverage_report.md·human_queue.csvInstall & run
cd ~/.claude/skills/lit-search && ./install.sh # uv sync + CLI smoke check uv run lit depths # scale, time and cost per tierPrereqs: uv + Python 3.11+. No API key needed to start — screening can run on the host Claude Code (
lit screen --model host). For 10k+ record runs, point it at any OpenAI-compatible endpoint instead.Keep run artifacts out of the skill folder — always pass
--runs-root /your/project/runs; a systematic run reaches hundreds of MB.Not bundled, on purpose
Journal ranking data (JCR quartiles, 中科院分区) is commercially licensed and the CCF catalogue is copyrighted — supply your own via
--ccf. Without a catalogue the tool marks conferences "unrated" rather than guessing a grade: a fabricated CCF-A looks exactly like a real one.
License
MIT License
Related Stories
Dolly Parton's Imagination Library
Hacker News 1 hour agoOregon Police Are Charging a Local News Outlet $2.5M for Records About One Cop
Hacker News 1 hour agoI refuse to accept a censored Internet. Join Me at FOSDEM 27
Hacker News 2 hours agoA 10-year-old CNN outperforms frontier LLMs for skin cancer diagnosis
Hacker News 2 hours agoSabre Wulf Remastered
Hacker News 2 hours agoChat with meRelated Stories
- Integrity QA gate — number grounding,