Agent Skillsluwill/research-skills › scholar-slides

scholar-slides

GitHub

将学术论文或研究主题转化为高保真学术幻灯片,支持组会、答辩等场景。强调公式、图表和引用的矢量准确性与可编辑性,严禁伪造数据,确保内容溯源。

scholar-slides/SKILL.md luwill/research-skills

Trigger Scenarios

用户要求将论文生成PPT 需要制作学术汇报或答辩幻灯片

Install

npx skills add luwill/research-skills --skill scholar-slides -g -y
More Options

Non-standard path

npx skills add https://github.com/luwill/research-skills/tree/main/scholar-slides -g -y

Use without installing

npx skills use luwill/research-skills@scholar-slides

指定 Agent (Claude Code)

npx skills add luwill/research-skills --skill scholar-slides -a claude-code -g -y

安装 repo 全部 skill

npx skills add luwill/research-skills --all -g -y

预览 repo 内 skill

npx skills add luwill/research-skills --list

SKILL.md

Frontmatter
{
    "name": "scholar-slides",
    "description": "Use when the user wants a research paper, arXiv\/DOI link, or research topic turned into academic slides — journal club \/ lab meeting (组会汇报), thesis defense (答辩幻灯片), conference or job talk (学术报告), poster, or grant pitch — or shares a paper and asks to \"make slides \/ 做成 PPT \/ 讲一下这篇论文\", especially when equations, numbers, figures, and citations must stay accurate and editable. NOT for marketing\/pitch decks with no scholarly source, and NOT for writing the paper itself."
}

scholar-slides

Turn a research paper (or topic) into a fidelity-first academic slide deck. Academia inverts the priorities of a normal deck tool: source fidelity > polish, evidence > persuasion, editability > flash. Equations, tables, numbers, figures, and citations stay true text/vector and traceable to the source — never rasterized by an image model, never fabricated.

Design rationale and the survey it is built on live in docs/; build plan in IMPLEMENTATION_PLAN.md.

Locked stack (see docs/03-design-proposal.md §0)

  • Render backend: reveal.js + KaTeX → vector PDF (Playwright). Editable PPTX / Beamer later.
  • Default deck type: lab meeting / journal club (组会) — reading-first, high density.
  • Citations: Zotero-first (mcp__zotero__*), Crossref/arXiv/DOI fallback.
  • Language: bilingual, English-default.

The non-negotiable integrity gate (ALWAYS on — see references/integrity.md)

Apply at every stage; enforced at Checkpoint 3:

  • Never fabricate numbers, citations, or figures. Everything traces to the source digest.
  • Math/tables/citations stay vector/text — never an image model's pixels.
  • Reuse real figures (bbox-cropped + Figure N [cite]); a conceptual schematic may be redrawn only if labeled "redrawn, not from source".
  • Flag, don't invent: an unresolved figure/number/citation emits a visible [MISSING: …] / [UNVERIFIED: …] placeholder surfaced to the user — never a silent fill.
  • Provenance is mandatory: every reused asset carries its source; every claim is traceable.

Pipeline (7 stages, 3 human checkpoints)

INPUT → 1.INGEST/DIGEST → [CKPT-1] → 2.DECK-TYPE → 3.OUTLINE → [CKPT-2]
      → 4.PER-SLIDE SPEC → 5.RENDER → 6.SELF-REVIEW(QA) → [CKPT-3] → 7.EXPORT
  1. Ingest → typed digestreferences/ingestion.md. Run scripts/prepare_source.py <pdf|arXiv id|arXiv URL> to build the digest-input bundle (text, figure/table inventory with bboxes, cropped figures), then synthesize the typed paper digest from it (grounded in the bundle, never invented). → [CKPT-1] confirm the digest with the user (contributions, headline result, figure→slide map, any FLAGGED asset).
  2. Deck-type & parametersreferences/deck-types.md. Pick deck type (default 组会), audience, time budget → slide budget, density register, required archetypes.
  3. Narrative outlinereferences/narrative.md. Re-sequence the paper into talk order; action-title per slide; arc-tension check. → [CKPT-2] approve the story arc.
  4. Per-slide specreferences/slide-spec.md. One self-contained, on-disk spec per slide (layout, content, equations, figures, citations, speaker notes).
  5. Renderreferences/math.md, references/figures-tables.md, references/citations.md, references/charts.md, references/design-system.md, references/export.md. reveal.js + KaTeX; real tables; real bbox-cropped figures (furniture-stripped; one panel per slide for multi-panel); data-bound redrawn charts; Zotero/BibTeX citations. Pick the visual theme via meta.theme (journal-club default / conference).
  6. Self-review QAreferences/qa-self-review.md + references/integrity.md, then the aesthetics loop in references/aesthetics-review.md. Integrity scan + static validator + render screenshots + narrative/timing checks; the render pass also measures geometry deterministically (canvas voids, figure-text projected below the 12px legibility floor). Then score the rendered pixels on the 6-dimension rubric (adversarial persona), write the scores to <deck>/aesthetics_report.json (schema in aesthetics-review.md), and rework any slide with a dimension ≤ 2 or total < 18 until the report's rework list is empty — the QA gate flags a missing report (P3) and an unspent rework list (P2). It also nudges on bullet-ratio and layout monotony. → [CKPT-3] truth sign-off: review every [MISSING]/[UNVERIFIED] and generated asset.
  7. Exportreferences/export.md. Vector PDF (projection) + speaker notes + editable PPTX; verify the PPTX preserves the spec natively with scripts/verify_pptx_parity.py (protects the minimal-manual-edits promise). Regress the whole corpus with node scripts/run_benchmark.mjs.

Read only the reference file for the stage you are in (progressive disclosure — never glob references/). Each stage reads the confirmed artifact of the prior stage — the digest (Stage 1, user-confirmed at CKPT-1) and then deck.json — rather than re-deriving from the paper.

Scripts (scripts/)

Ingestion — pipeline stage 1 (Python, via ./.venv/bin/python; deps in requirements.txt):

  • prepare_source.pyStage 1 entry point: PDF/arXiv → digest-input bundle.
  • ingest_pdf.py — PyMuPDF text+layout extraction; arXiv-id detection.
  • detect_figures.py — figure/table caption inventory + bounding-box localization.
  • crop_figure.py — clean single-figure bbox crop (no neighbor columns).

Deck build & render — pipeline stage 5 (Node, via node; deps in package.json, npm install + npx playwright install chromium):

  • build_deck.mjsrender entry point: deck.json → self-contained reveal.js deck.
  • render_deck.mjs — deck → one-page-per-slide vector PDF (and per-slide PNGs for QA).
  • lib/layouts (registered-layout lock), math (KaTeX), table, figure, escape, qa.

Citations & QA — pipeline stages 5–6 (citations = Python; QA = Node):

  • fetch_bib.py — citation resolver (arXiv/DOI/Crossref) with order-sensitive title verification.
  • qa_report.mjsCKPT-3 gate: integrity scan + validate_deck.mjs + verify_slides.mjs + timing.

Speaker notes (Node):

  • speaker_notes.mjsdeck.jsonnotes.md handout + bilingual talk-length estimate.
  • lib/notes.mjs — timing + handout pure logic; design system in assets/templates/themes/.

Export & charts — pipeline stage 7 (export = Node; charts = Python):

  • export_pptx.mjsdeck.jsoneditable PPTX (native text/tables/notes; figures+equations as images).
  • make_chart.py — chart spec → data-bound Okabe–Ito plot (values plotted verbatim).

Tests: ./.venv/bin/python -m pytest (Python) and node --test tests/deck.test.mjs tests/qa.test.mjs tests/notes.test.mjs tests/pptx.test.mjs (Node).

Build status

The whole pipeline is implemented and validated on real papers. Not built: Beamer export, OCR for scanned PDFs, draft-deck ingestion; conference/答辩 deck types are authoring guidance in references/deck-types.md (no dedicated code). A deck is "done" only after the CKPT-3 human truth sign-off — the gate surfaces defects but cannot certify truth.

Version History

  • 00db2ab Current 2026-07-25 05:36

Same Skill Collection

lit-search/SKILL.md
medical-imaging-review/SKILL.md
research-proposal/SKILL.md
paper-slide-deck/SKILL.md

Metadata

Files
0
Version
45ce78d
Hash
670c452e
Indexed
2026-07-25 05:36

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-21 03:37
浙ICP备14020137号-1 $Гость$