<p align="center"><strong>dsh-paper-slides</strong></p>

# 论文 → 学术报告（DeepSeek Harness）

[English](README.md) | 中文

[![npm](https://img.shields.io/npm/v/dsh-paper-slides?label=npm)](https://www.npmjs.com/package/dsh-paper-slides) [![CI](https://github.com/literaf/dsh-paper-slides/actions/workflows/ci.yml/badge.svg)](https://github.com/literaf/dsh-paper-slides/actions/workflows/ci.yml) [![dsh-plugin](https://img.shields.io/badge/topic-dsh--plugin-blue)](https://github.com/topics/dsh-plugin) ![license](https://img.shields.io/badge/license-MIT-green)

给 Agent 一个 DOI 和一个时长，拿回一场报告：**读真正的全文**而不是摘要，按场合把时长换算成页数预算，围绕图表搭结构，演讲备注按讲稿写。

```
「把这篇 10.1038/s41586-021-03819-2 做成 12 分钟的会议报告」
```

## 安装

本套件只做编排，自己既不检索也不渲染。三个一起装：

```sh
dsh plugin --profile web add dsh-ai4scholar dsh-slides dsh-paper-slides
dsh web
```

| 包 | 提供 |
|---|---|
| [`dsh-ai4scholar`](https://github.com/literaf/dsh-ai4scholar) | 论文本身——检索、全文、图表、引用 |
| [`dsh-slides`](https://github.com/literaf/dsh-slides) | 把幻灯片写成文件 |
| **`dsh-paper-slides`** | 两者之间的那条链 |

少装了哪个，指令会明说并给出安装命令，而不是绕过去——凭记忆里的摘要写报告，正是这个套件要防的事。

## 它加了什么

**`plan_talk`**——「论文变报告」里不需要判断力的那部分。一个场合的时长、能放多少页、观众期待哪几个环节，这些是惯例不是决策，所以做成数据，而不是每次让模型即兴发挥：

| 场合 | 常见时长 | 决定这场报告成败的那条规矩 |
|---|---|---|
| `seminar` 组会汇报 | 15 分钟 | 在座都是同行。别讲背景，把时间花在你做了什么、卡在哪 |
| `conference` 会议报告 | 12 分钟 | 只讲一件事。定下那句要被记住的话，每页都为它服务 |
| `defense` 答辩 | 25 分钟 | 委员会看两点：贡献是不是你的，你知不知道它的边界 |
| `proposal` 开题 | 20 分钟 | 还没有结果，评的是可行性——页数就该花在可行性上 |
| `journal-club` 文献汇报 | 20 分钟 | 讲别人的论文。你的价值是判断，不是复述摘要 |

工具返回每个环节分到几页，以及什么该**放在页面上**、什么该**放进备注**。时长再短，每个环节也保底有页；多出来的页数全部倾斜给证据，而不是铺垫。

它还会返回**这个场合期待收到什么格式**，直接传给 `make_slides` 即可。答辩、会议报告、开题最后都是别人的机器打开文件，所以是 `["html", "pptx"]`；组会和文献汇报不需要，所以只有 `["html"]`。交什么文件同样是惯例，弄错了就是带着一份现场打不开的稿子去。

**`paper-to-talk` 技能**——那套长流程：带着一场报告必须回答的四个问题去读、动笔前先定下唯一那句话、图表页的标题写结论而不是「图 3」、备注按汇报人真正要说的话写、成稿后对照预算自查再交付。

## 这条链

1. **读论文。** `read_by_doi` / `read_arxiv_paper` / `read_semantic_paper`；只有标题就先 `search_papers`。绝不用记忆里的摘要。
2. **先算预算。** 用 `plan_talk` 给出场合和时长。必须在动笔之前——先写完再删，得到的是一篇压缩的论文，不是一场报告。
3. **成稿。** 把填好的方案连同 `delivery.formats` 交给 `make_slides`——一个自包含 HTML 放映页，需要的场合再附一份可编辑的 `.pptx`。

## 配置

组合包插入一行（`id: paper-slides`）。在 profile 的 `cordis.patch.yml` 里覆盖（patch 会整体替换 `config`，保留的键要一起写）：

```yaml
- id: paper-slides
  config:
    skills: true            # 注册 paper-to-talk 技能
    planTool: true          # 注册 plan_talk
    promptGuidance: true
    promptOrder: 145
```

## 说明

- 技能正文是英文。模型按流程执行，用用户所用的语言汇报结果。
- 输出格式来自 `dsh-slides`：自包含 HTML 放映页（离线可放、可一键打印成 PDF），以及带演讲备注的可编辑 `.pptx`。

## 许可证

MIT
