Bundle
dsh-paper-slides
Turn a paper into an academic talk for DeepSeek Harness (dsh) — 论文转 PPT / 组会汇报 / 会议报告 / 答辩 / 开题. Reads the real full text, budgets the slot per venue, and builds the deck around the figures with the speaker notes written as the script. Drives dsh-ai4scholar and dsh-slides.
- Source
- literaf
- License
- MIT
- Updated
- Updated 3 days ago
Readme
<p align="center"><strong>dsh-paper-slides</strong></p>
# Paper → academic talk, for DeepSeek Harness
English | [中文](README_CN.md)
[](https://www.npmjs.com/package/dsh-paper-slides) [](https://github.com/literaf/dsh-paper-slides/actions/workflows/ci.yml) [](https://github.com/topics/dsh-plugin) 
Give the agent a DOI and a slot length, get a talk: the **actual full text** read rather than the abstract, the slot budgeted for the venue, the deck built around the figures, and the speaker notes written as the script.
```
"把这篇 10.1038/s41586-021-03819-2 做成 12 分钟的会议报告"
```
## Install
This pack orchestrates; it reads nothing and renders nothing itself. Install all three:
```sh
dsh plugin --profile web add dsh-ai4scholar dsh-slides dsh-paper-slides
dsh web
```
| Package | Supplies |
|---|---|
| [`dsh-ai4scholar`](https://github.com/literaf/dsh-ai4scholar) | The paper — search, full text, figures, citations |
| [`dsh-slides`](https://github.com/literaf/dsh-slides) | Writing the deck to a file |
| **`dsh-paper-slides`** | The arc between them |
With a companion missing, the guidance says so and names the install command rather than routing around it — a talk drafted from a remembered abstract is exactly what this pack exists to prevent.
## What it adds
**`plan_talk`** — the part of "turn a paper into a talk" that is not a judgement call. How long a slot runs, how many slides fit, and which beats a venue expects are conventions, so they are data here rather than improvised per call:
| Venue | Typical | The rule that decides the talk |
|---|---|---|
| `seminar` 组会汇报 | 15 min | The room knows the field. Skip the background; spend it on what you did and what is stuck |
| `conference` 会议报告 | 12 min | One message. Decide the sentence they remember, make every slide serve it |
| `defense` 答辩 | 25 min | The committee weighs whether the contribution is yours and whether you know its limits |
| `proposal` 开题 | 20 min | No results yet, so the talk is judged on feasibility. Spend the slides there |
| `journal-club` 文献汇报 | 20 min | Someone else's paper. The value you add is judgement, not a summary |
The tool returns a slide budget per beat, plus what belongs **on the slide** versus **in the notes**. Beats keep their minimum however short the slot; what is left over goes to the evidence, not the setup.
It also returns the **formats the venue expects**, to be passed straight to `make_slides`. A defense, a conference talk and a proposal panel all end with someone else's machine opening the file, so those ask for `["html", "pptx"]`; a group meeting and a journal club do not, so those stay `["html"]`. Which file a venue wants is a convention too, and getting it wrong means arriving with a deck the room cannot open.
**The `paper-to-talk` skill** — the long procedure: read for the four questions a talk has to answer, decide the one message before drafting, title figure slides with the finding rather than "Figure 3", write the notes as what the presenter says, and check the deck against the plan before claiming it is done.
## The chain
1. **Read the paper.** `read_by_doi` / `read_arxiv_paper` / `read_semantic_paper`, or `search_papers` first when only the title is known. Never a remembered abstract.
2. **Budget.** `plan_talk` with the venue and slot. Before drafting — drafting first and trimming later produces a compressed paper instead of a talk.
3. **Build.** `make_slides` with the filled-in plan and the plan's `delivery.formats` — a self-contained HTML deck, plus an editable `.pptx` where the venue needs one.
## Configuration
The bundle inserts one row (`id: paper-slides`). Override it from your profile's `cordis.patch.yml` (a patch replaces the whole `config`, so restate every key you keep):
```yaml
- id: paper-slides
config:
skills: true # register the paper-to-talk skill
planTool: true # register plan_talk
promptGuidance: true
promptOrder: 145
```
## Notes
- The skill body is in English. The model carries the procedure out and reports in whatever language the user is writing in.
- Output formats come from `dsh-slides`: a self-contained HTML deck that presents offline and prints to PDF, and an editable `.pptx` with the speaker notes carried over.
## License
MIT
Install
dsh plugin --profile web add github:literaf/dsh-paper-slides
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-paper-slides from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.