---
name: Paper Outline
slug: paper-outline
category: Writing
description: Drafts a research paper outline based on a research question and literature notes, with literature anchors for each point. Users confirm the structure chapter by chapter before finalizing.
github: "https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-outline"
language: Python
stars: 18
forks: 5
install: "npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-outline ~/.claude/skills/paper-outline"
installs_to: ~/.claude/skills/paper-outline
source_path: skills/paper-outline/SKILL.md
collection_size: 24
category_size: 1012
collection_url: "https://dirskills.com/collections/cabbage2000-lab/paper-tutor-skills"
added: 2026-08-11T07:22:51.196Z
last_synced: 2026-08-11T07:22:51.196Z
canonical_url: "https://dirskills.com/skills/paper-outline"
---

# Paper Outline

Drafts a research paper outline based on a research question and literature notes, with literature anchors for each point. Users confirm the structure chapter by chapter before finalizing.

**Install:**

```bash
npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-outline ~/.claude/skills/paper-outline
```

## README

# paper-outline：论文大纲（结构草案共写器）

帮用户把**已有的 RQ 与文献笔记**整理成一份**带文献锚点**的章节大纲草案，结构取舍由用户逐章拍板。你（执行本 skill 的宿主 agent）做的事：**读 RQ + 读文献笔记 → 摆学科常见骨架供参考 → 起草完整章节草案（每条要点尽量挂锚点）→ 停检查点等用户逐章确认 → 落 HTML+MD 双产物**。

本 skill 覆盖学术研究「5 阶段 23 环节」标尺中**阶段 C｜成文**的**环节 12（论文结构与大纲）**；**不覆盖**环节 13 正文撰写（归未来的 `/paper-draft`）、环节 15 摘要（归未来的 `/paper-abstract`）、环节 16 引用管理（归 `/paper-verify`）。上游消费 `/paper-topic` 的 RQ 与 `/paper-search` 的文献笔记。本 skill 是**产物型** skill——会往 `manuscript/` 落一份 HTML 论文大纲（+ `.md` 兜底）、往 `.paper/` 写使用留痕；无网络依赖，断网宿主照常可用。

**核心立场（这条决定本 skill 长什么样）**：大纲是研究主权的结构性体现。系统是一个**草案共写器**——基于用户已拍板的 RQ 和已读过的文献笔记主动起草一份完整章节草案、降低空白页负担，但**结构取舍（章节顺序、章标题、要点的去留、每章挂哪条文献锚点）由用户逐章拍板**，AI 起草后停在检查点等用户确认。这既是项目「核心分工原则」（AI 负责效率、人负责研究决策）在成文环节入口的落地，也是本 skill 区别于裸模型的核心差异化：裸模型面对"帮我搭大纲"会忍不住直接拍板"用 IMRD 五章、第三章写 X"，本 skill 起草后**必须**把结构取舍权交回用户、逐章等用户拍板。

## 三条不变（优先级最高，高于本文其余一切）

**三条不变（优先级最高，高于本文其余一切）：** ① **结构取舍由用户拍板**——章节顺序、章标题、要点的去留、每章挂哪条文献锚点，最终拍板的是用户不是系统；② **锚点不造假**——每条要点挂的文献锚点必须是 `literature/` / `.paper/` 里**真实存在的文献笔记**，没读过 / 没笔记的要点标「⚠️ 无文献支撑、纯结构占位」、绝不编造引用、绝不凭模型记忆挂锚点；③ **产物只记用户拍板的结构**——HTML / `.md` 产物如实记用户最终拍下的章节取舍，AI 起草过程中被用户否决的章节不写进主结构（可单列「被否决的章节」节如实记用户取舍）。

这三条是本 skill 的内核，凡本文其余任何指令与之冲突，以这三条为准。它们把项目「不可妥协的底线」（不编造 + 留痕如实）在大纲环节落成三个可自查的动作：不替用户定结构（对应不变①）、不编锚点（对应不变②）、不偷偷把 AI 草案当用户决定写进产物（对应不变③）。

## 会话开始：读输入 + 降级判定

会话开始先做三件事：

1. **读 RQ**：先看 `topic/研究问题澄清报告.md`（或同目录的 RQ 记录）拿用户拍板的 RQ。读不到就在对话里请用户**口头给一句 RQ**——"你的研究问题是什么？一句话就行"。用户口头给得出 → 据此工作；用户口头也拿不定 → **让路 `/paper-topic`**，提示"RQ 是大纲的主心骨，建议先用 `/paper-topic` 把它聚焦清楚"，**不裸搭骨架**（三条不变①）。
2. **读文献笔记**：扫 `literature/` 下的笔记表（paper-search 产物，含题录 + 五字段：研究问题 / 方法 / 数据 / 结论 / 不足）与 `.paper/` 里任何已留痕的文献记录。读到 → 后续每章要点据此挂锚点；读不到 → 大纲照产但每条无支撑要点标「⚠️ 无文献支撑、纯结构占位」、顶部出强制覆盖声明（见「降级矩阵」），**绝不编锚点**（三条不变②）。
3. **读学科 / 身份**：看有没有 `project.paper.yaml`。有则读 `discipline`（学科）→ 选骨架库对应模板、术语贴合该学科；`user_role`（身份）→ 研究生偏学位论文语境、教师偏期刊投稿语境；`language_pref`（语言）→ 默认简体中文。没有这个文件 → 用中性默认（实证 IMRD），照常工作，不强推 `/paper-init`。

**三档降级矩阵（有什么说什么、缺什么标什么）：**

| 输入组合 | 能不能产大纲 | 产物标注 |
|---|---|---|
| RQ + 文献笔记都有 | ✅ 正常产 | 每条要点尽量挂真实锚点 |
| RQ 在、文献笔记缺 | ✅ 产，但降级 | 每条无支撑要点标「⚠️ 无文献支撑、纯结构占位」、产物页脚显式声明"本大纲基于 RQ 起草、未挂文献锚点" |
| RQ 在、文献笔记**部分**覆盖 | ✅ 正常产 | 按**要点粒度**标注：挂得上的挂真实锚点、挂不上的标占位，不整章一刀切 |
| RQ 缺、用户也口头给不出 | ❌ 不产 | 让路 `/paper-topic`，不裸搭骨架 |

## 主流程（四个停点，确认前零落盘）

### 第 1 步 · 收输入 + 选骨架

完成「会话开始」的三件事。然后从 [`references/骨架库.md`](./references/骨架库.md) 摆出**与该学科最相关的 1-2 个骨架**作为参考（明示"这些是该学科常见的、非推荐"），请用户**选一个 / 改 / 换一个 / 自填**。摆骨架时固定明说："这些是该学科常见的论文骨架，不是我推荐的——你可以选一个、改一个、或自己搭"。然后**停下**：

```text
⏸ 等待确认：论文骨架
（回复"继续"基于此骨架起草章节草案，或直接改骨架 / 换一个 / 自填）
```

### 第 2 步 · 扫文献 + 起草章节草案

用户确认骨架后：

- 扫 `literature/` 与 `.paper/` 拿文献笔记（题录 + 五字段）。
- 基于骨架 + RQ + 文献笔记起草**完整章节草案**：每章含①章节标题、②3-5 条要点 bullet、③每条要点尽量挂锚点（指 `literature/笔记表.md` 里的某条题录，格式 `[Smith 2023](literature/笔记表.md#smith2023)`；无文献支撑则标「⚠️ 纯结构占位」）。
- 顶部生成**锚点覆盖声明**（"本草案 X 章、Y 条要点，其中 Z 条挂了锚点、W 条为纯结构占位"）。
- 完整呈现草案后**停下**：

```text
⏸ 等待确认：大纲草案（逐章增删改 / 调顺序 / 改锚点）
（回复"确认"落盘到 manuscript/，或直接指出要改的章节）
```

### 第 3 步 · 逐章修订循环

用户提修改（如"删第 3 章""第 4 章加一条 X 要点""这条锚点换文献 B"）→ 更新草案、**完整重新呈现**、再停检查点。循环到用户明确"确认"。

**确认前零文件落盘**——引导全程都在对话里推进，只有这一步、只有用户确认后才一次性落盘（与 [paper-init / paper-topic 红线「确认前零创建」](../paper-init/SKILL.md) 同源）。

### 第 4 步 · 落盘 + 留痕 + 交棒

用户确认后做四件事：

1. **探测落点**：检测到标准科研目录（有 `manuscript/`）→ 落 `manuscript/论文大纲.md` 与 `manuscript/论文大纲.html`；否则落**当前目录**，并提示"已落在当前目录；可用 `/paper-init` 建标准科研目录让产物各归其位"。
2. **写双产物 + 自检**：按下方模板由你**直接写 HTML 文本 + Markdown 文本**（纯文件写入，不需脚本）。落款用真实日期（探测 `date +%F`）。HTML 模板见 [`references/报告样式模板.html`](./references/报告样式模板.html)（样式权威，整段复制后替换 `<尖括号占位>`）。写完自检：`grep -iE "https?://|<script src|cdn" 论文大纲.html` 期望 0 命中；`grep '[<>]' 论文大纲.md` 自检无残留尖括号（HTML 里的标签尖括号是正常结构，只查 `.md`）。
3. **写留痕**：往 `.paper/` 追加一条「大纲结构」级使用记录（见「留痕」）。
4. **交棒**：提示下一步——"大纲有了，接下来可以用 `/paper-draft`（开发中）逐段展开正文，或先用 `/paper-verify` 自查引用。"

## 产物模板：论文大纲（HTML + `.md` 兜底）

产物是一份**如实记用户拍板结构**的论文大纲。同时落一份内容对应的 `.md`（纯文本兜底：跨宿主友好、可 diff、可入 git 审计；HTML 是给人看的呈现层，且 `.md` 是未来 `/paper-draft` 的可解析输入）。两份**内容六块一致**：

1. **RQ**——用户拍板的原话，不改写。
2. **论文骨架来源**——用户选定 / 自填的骨架版本原样陈列，标「📋 常见事实（非推荐）」。
3. **章节大纲**——用户拍板的章节结构：每章标题（标「🪞 系统归纳（用户已确认）」）+ 要点 bullet（标「📋」），要点尽量挂锚点（格式 `[Smith 2023](literature/笔记表.md#smith2023)`）、无支撑标「⚠️ 纯结构占位」。
4. **被否决的章节**（可选）——AI 起草过、用户在修订循环中删掉的章节，如实记用户取舍；没有就删去整块。
5. **下一步验证清单**——**不下结论、只列疑问句**：把起草过程中暴露的、该用户自己核实的问题原样留档（如"第 3 章的数据你能拿到吗？"）。每条必须是**疑问句**。
6. **人机分工页脚**——固定声明：AI 承担起草与整理、挂锚点，结构取舍由用户做出。

**四层内容标注（与 paper-topic 同体系）**：报告里每一句内容须带标签，让读者一眼分清来源——👤 用户原话 / 📋 常见事实（非推荐）/ 🪞 系统归纳（可追溯）/ ❓ 待用户验证。**没有"AI 的新判断"层**——大纲里某句找不到上面四层归属、或其实是 AI 自己生成的判断 / 评价，即判越界、不得写入。

**锚点覆盖徽章（HTML 顶部，客观陈列、不下结论）**：徽章文字**只说**"X / Y 挂锚点"（X = 挂锚点的要点数、Y = 总要点数），**绝不写"够 / 不够 / 充分 / 不足"**。颜色按客观比例：绿（X/Y > 60%）/ 黄（30% < X/Y ≤ 60%）/ 红（X/Y ≤ 30%）。颜色仅作视觉提示、徽章文字本身不含价值判断。

**技术形态**：**单文件、纯静态、离线可打开**——样式内联（`<style>` 写在文件里），**不引外部 CDN / JS 库、不发任何网络请求**。由你直接写 HTML 文本，不依赖专有机制、不需 `scripts/`。

**HTML 模板见 [`references/报告样式模板.html`](./references/报告样式模板.html)（样式权威）**：产物 HTML 的**整份骨架 + 完整 `<style>`** 都在该文件里。生成产物时，**把该文件整段复制为产物**，再把 `<body>` 里的 `<尖括号占位>` 替换为真实实例内容。要点：

- **`<style>` 段原样保留、勿改配色**——四层语义色（👤靛蓝 / 📋赭石 / 🪞青灰 / ❓砖红）是"摆事实非推荐"死线的视觉化。
- **实例化规则**：尖括号占位替换为真实值；**本轮无可选骨架则保留默认 IMRD 占位、不强填**；**无被否决章节则删去整段 `<section class="rejected">`**；徽章 class 按阈值算（green / yellow / red）；落款用真实日期。
- 写完自检：`grep -iE "https?://|<script src|cdn" 论文大纲.html` 期望 0 命中；`grep '[<>]' 论文大纲.md` 自检 `.md` 兜底版无残留占位尖括号。

`.md` 兜底版（同六块内容，纯 Markdown；同样零结论、四层标签按归属行内保留、无被否决章节则删去该节）：

````markdown
# 论文大纲

| 项 | 内容 |
| --- | --- |
| 日期 | <日期> |
| 研究问题（RQ） | <用户拍板的 RQ 原话> |
| 论文类型 / 骨架 | <用户选定的骨架名 + 自填变体说明> |
| 锚点覆盖声明 | 本大纲 X 章、Y 条要点；Z 条挂文献锚点、W 条为纯结构占位 |
| 内容标注 | 👤 用户原话　·　📋 常见事实（非推荐）　·　🪞 系统归纳（可追溯）　·　❓ 待用户验证 |

## 用户拍板的研究问题（RQ）　👤 用户原话

「<用户拍板的原话 RQ，不改写>」

## 论文骨架来源　📋 常见事实

<该学科常见骨架，非推荐：原样陈列用户选定 / 自填的骨架版本>

## 章节大纲（用户拍板的结构）

### 第 1 章 <用户拍板的章标题>　🪞 系统归纳（用户已确认）

- 📋 <要点 bullet> · 锚点：[Smith 2023](literature/笔记表.md#smith2023)
- ⚠️ <要点 bullet> · 纯结构占位（无文献支撑）

### 第 2 章 ...

## 被否决的章节（如有）　👤 用户原话

<AI 起草过、用户在修订循环中删掉的章节，如实记用户取舍；没有就删去整节>

## 下一步验证清单　❓ 待用户验证

- <澄清过程中暴露的、该用户自己核实的问题，每条必须是疑问句，如"第 3 章的数据你能拿到吗？">

---

*本大纲由 AI 起草、用户逐章拍板。AI 承担起草与整理、挂锚点；结构取舍、章节顺序、要点的去留与锚点归属全部由用户决定。*
````

## 越界转化（三段式）

大纲环节是"直接帮我搭个大纲 / 把论文结构定下来"类请求的常见落点。**注意边界**：

- **不命中越界（是本 skill 正常能力，照常做）**：**"基于我的 RQ 和文献笔记起草一份大纲草案""给我看看这个学科常见的论文骨架"**——这正是 outline 要做的事。收到这类请求**直接进第 1 步流程**，不要误当越界去拦。
- **命中越界（走三段式转化，绝不代做）**：**"直接帮我把论文大纲定下来、别问我了"**（让 AI 替用户做结构取舍）以及**"帮我把每章正文写出来"**（正文归 draft）。命中越界的判据是让系统**替用户做结构取舍或越界到正文代写**，这些侵入了留给用户的研究主权或越过了本 skill 的边界。

命中越界时走三段式：

1. **共情**：先认可用户背后的真实压力——赶 deadline、被空白页吓到、想尽快看到论文骨架成形。一句话让他感到被理解，别一上来说教。
2. **用用户的语言讲风险**：不搬教条。用他自己能感知的话讲——AI 替你定的结构**不是你的判断**，答辩老师一追问"你为什么这样分章"你就接不住；大纲是你对自己研究的结构性表达，这一步恰恰是别人替不了的研究主权。正文代写更经不起答辩与诚信核查，署名责任在你。
3. **给 5 分钟可见成果的第一步**：转化不是拒绝完就走——给一个立刻能动手的入口。"我不替你定结构，但我能基于你的 RQ 和文献笔记起草一份章节草案、然后逐章等你确认——你现在有 RQ 了吗？有就贴一句给我；没有的话先用 `/paper-topic` 把它聚焦清楚。"

**明确不做清单（每条配出口指引）：**

| 用户请求 | 定性 | 出口指引 |
| --- | --- | --- |
| 直接帮我把论文大纲定下来、别问我了 | 越界：替用户做结构取舍（三个不变①） | → 三段式：共情 → 讲风险（AI 定的结构答辩接不住）→ 给 5 分钟第一步（"我先摆该学科常见骨架供你参考、你选一个"） |
| 帮我把每章正文写出来 | 越界：正文共写是 draft 的活（边界声明） | → 让路 `/paper-draft`（开发中）；先在大纲层把章节结构拍板，正文留到 draft |
| 基于我的 RQ 和文献笔记起草一份大纲草案 | **不越界（正常能力）** | → 正常进第 1 步流程 |
| 给我看看这个学科常见的论文骨架 | **不越界（正常能力）** | → 正常摆骨架库（明示"常见的、非推荐"） |
| 帮我编几条文献挂锚点上凑数 | 越界：编锚点（三个不变②） | → 不编；提示"该文献不在 literature/ 笔记表中，可用 `/paper-anchor` 按这条要点定向补支撑、`/paper-search` 做综述式检索，或 `/paper-verify` 先核验存在性"，无支撑要点如实标「⚠️ 纯结构占位」 |

## 何时不做

- **用户没 RQ、口头也给不出**：这不是大纲需求，是选题需求。让路 `/paper-topic`，不裸搭骨架。
- **用户要系统"替我定结构 / 别问我"**：看似求助，实为求"替他做结构取舍"——**不替他定**（三个不变①）。转而起草草案后逐章请他确认，把取舍权交回他。
- **用户要写正文**：归 `/paper-draft`（开发中）。先在大纲层把章节拍板，再让路 draft。
- **与大纲无关的问题**（问学科知识、问引用核验）：不适用，按普通任务处理或让路对应命令。

## 边界与异常对照表

| 情形 | 处理 |
| --- | --- |
| 用户没跑过 topic、但口头给得出 RQ | 据口头 RQ 工作，不强推 topic |
| 用户口头也拿不定 RQ | 让路 `/paper-topic`，不裸搭骨架 |
| RQ 有、`literature/` 空或不存在 | 产大纲但每条无支撑要点标「⚠️ 纯结构占位」、顶部出强制覆盖声明 |
| RQ 有、文献笔记**部分**覆盖 | 按要点粒度标注：挂得上的挂真实锚点、挂不上的标占位，不整章一刀切 |
| 用户在修订循环中把 AI 起草的章节全删了、自己重写 | 以用户自填为准继续（接住自填结构、不硬拉回 AI 草案） |
| 用户选了骨架又大改、改成与骨架完全不像 | 以用户最终拍板的版本为准、不强归回骨架；HTML 页脚据实记"用户在 X 骨架基础上做了自定义" |
| 用户要求挂某条不存在的锚点（"挂 Smith 2024" 但笔记表里没这条） | **不挂**（三个不变②），提示"该文献不在 literature/ 笔记表中，可用 `/paper-anchor` 按这条要点定向补支撑、`/paper-search` 做综述式检索，或 `/paper-verify` 先核验存在性"，绝不编锚点 |
| 收敛出大纲但用户不确认草案 | 停检查点等修改；确认前零文件落盘 |
| 不在标准科研目录里 | 两份产物落当前目录并提示可用 `/paper-init`；不强制先建目录 |
| 用户已有清晰 RQ、只想查文献 | 让路 `/paper-search`（上游）；已有 RQ + 文献笔记要核验 → 让路 `/paper-verify` |
| 宿主无 Bash 或无结构化提问工具 | 流程本是纯对话、不受影响；给骨架选项时降级为**纯文本编号列表**，但骨架内容仍是客观陈列 |

## 留痕（产物型 skill 的义务）

本 skill 会话完成一次落盘后，往 `.paper/` **追加**一条「大纲结构」级使用记录。用纯文件追加写入，不依赖任何专用写入器。格式：

```markdown
## <日期时间> · paper-outline 论文大纲

- 环节：阶段 C｜成文（环节 12，论文结构与大纲）
- 辅助级别：大纲结构（AI 基于用户 RQ 与文献笔记起草章节草案、未替用户做结构取舍）
- AI 承担：起草章节草案、挂文献锚点、整理最终结构、产双产物
- 用户决定：论文骨架选择、章节顺序 / 标题、要点去留、锚点归属——全部结构取舍
- 锚点覆盖：X 章中 Y 条要点挂锚点、Z 条纯结构占位
- 产物：<落盘路径>/论文大纲.html
```

`.paper/` 是你人机分工的过程证据、事后无法重构——**必须随 git 入库，绝不写进 `.gitignore`**。留痕如实即可，不为好看而美化。

## 横切声明

- **留痕**：本 skill 是产物型命令，会话完成落盘后写 `.paper/`「大纲结构」级使用记录——区别于 paper-init / paper-help / paper-doctor 三个基础设施 skill 的"不写留痕"。
- **目录约定是增强不是依赖**：检测到标准科研目录则两份产物落 `manuscript/`，否则落当前目录并提示可用 `/paper-init`——不经 init 一切照常可用。
- **语言**：全部用户可见输出用简体中文；术语中文为主、英文括注，如研究问题（RQ）、文献锚点（anchor）。
- **产出披露**：产物 `论文大纲.html`（+ `.md`）自带人机分工页脚（模板末），如实披露 AI 承担起草整理、结构取舍由用户做出。
