# Study Notes

> 把老师的课件（飞书文档 / PPT / PDF）整理成结构化的课堂笔记，产出飞书文档；也能在用户已有部分笔记的情况下保守地修订课堂笔记。当用户说「把这个课件整理成笔记」「根据课件做课堂笔记」「课件转笔记」「帮我修订这份课堂笔记」「按我的笔记格式整理一下这节课」，或给出一个课件（飞书链接 / .pptx / .pdf）并希望据此产出/更新课堂笔记时，务必使用本 skill。凡是要把老师讲的课件内容重组成"课堂重点 / 课程资料 / 课后任务"三块结构的笔记，即使没明说，也应触发。

- Skill: `gt0698/study-notes` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add gt0698/study-notes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gt0698/study-notes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: GT0698 (https://skillmd.com/u/gt0698)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/gt0698/study-notes

---


# 课件转课堂笔记

把老师的课件（飞书文档 / PPT / PDF）提炼、重组成用户固定风格的**课堂笔记**（飞书文档）。核心价值是复刻一套稳定的三块结构，并把课件内容按"利于理解"的逻辑重排——而不是照抄一遍课件。

## 用户的固定笔记框架（务必照此产出）

每篇笔记 = 一个标题 + 三块，顺序固定：

```
# {日期}{课程名}课堂笔记          例：# 6.23且慢课堂笔记

# 课堂重点
## {主题}
### {子概念 / 一个问题}
  正文（定义、要点、列表、表格、示例…）
...

# 课程资料
  （老师给的资料网站和课件——用户实时记录，这里只留格式占位）

# 课后任务
  （作业清单——用户实时记录，这里只留格式占位）
```

**分工很关键**：
- **课堂重点** —— 这是 skill 的主要工作：从课件提炼 + 重组。
- **课程资料 / 课后任务** —— 这两块是用户上课时**实时手记**的，skill **只铺好格式框架**（给示例占位），**不要替用户编内容**。硬要填反而添乱。

## 三条工作原则

1. **重组，不照抄。** 课件是按讲课顺序排的，笔记要按"利于日后速查"重排：把分散的相关内容归到一个主题下，定义用"X是什么？"一问一答。**能用层级结构（标题+列表）讲清的就别上表格**，只有多维对照确实复杂时才用表格。删掉课件里的标题页/课程表/讲师介绍/营销话术/致谢页，只留帮助理解的知识点，并补上必要的逻辑衔接。编号、层级、高亮/加粗等**排版规则见 `references/restructure-playbook.md`（务必读，用户对格式有明确要求）**。
2. **图片处理分两种模式：**
   - **从零转笔记**：课件几乎全是图，**不保留原图**——凡能用文字/结构讲清的，一律文字化、结构化。
   - **修订模式**：用户原有笔记里插的一两张图，**先把该图转成结构化文字**，之后**可保留这张图**，并在文字后标注来源如"（图1）"。
3. **修订保守，不删原文。** 若用户已有部分笔记（修订模式），**绝不删掉用户写的原话**；可以调整结构、补层级、去重合并、补逻辑、把图转文字、按排版规则规范格式。拿不准该不该删的，就保留。改的是"结构和补充"，不是"替换用户的理解"。

## 工作流程

### 第 0 步：判断模式 + 读取素材

先判断是**从零生成**还是**修订已有**：
- 用户只给课件 → **从零生成**
- 用户给了课件 + 已有笔记（通常是飞书链接）→ **修订已有**

**读取课件**（按来源选工具）：
- 飞书文档/wiki 链接 → 用 `lark-doc` skill，或 `lark-cli docs +fetch --doc '<链接>' --doc-format markdown --scope full`
- `.pptx` → 用 `pptx` skill 提取每页文字与结构
- `.pdf` → 用 `pdf` skill 提取文本
- 修订模式下，同样用 `lark-doc` 读取用户已有笔记

### 第 1 步：定标题与主题骨架（确认）

- 确认笔记标题：`{日期}{课程名}课堂笔记`（日期/课程名拿不准就用弹框问用户）。
- 从课件提炼出 `课堂重点` 的 `## 主题` 骨架（3-8 个主题），先把主题清单给用户过一眼再展开——避免整篇写完才发现方向不对。

### 第 2 步：写"课堂重点"

按 `references/restructure-playbook.md` 的重组手法展开每个主题：主题(`##`) → 子概念/问题(`###`) → 正文。截图按原则 2 转成文字+附图。

**修订模式**：以用户原文为底，按原则 3 保守处理——保留原话，调整/补全结构，去重，补逻辑，转截图。改动尽量是"增量"。

### 第 3 步：铺"课程资料"和"课后任务"的空框架

只留**干净的格式占位**，让用户回头自己填：
- **课程资料**：标题下方直接留一个 **「标题三」(H3) + 顺序序号**的粘贴区（两个 `<h3>1.</h3>` `<h3>2.</h3>`，紧跟标题、不留空行），供用户回头**在序号后粘贴资料网址和课件文件**。
- **课后任务**：留带标签的空待办即可：`- [ ] 随堂作业：` / `- [ ] 课后作业：`（不需要额外粘贴区）。
- **不要在正式产出里写任何"给用户看的说明/提示"文字**（例如"上课实时记录，自己补"这类脚手架说明、或额外的说明高亮块）——那些只是沟通用，不能出现在成品文档里。序号（如 `1.`）不算说明文字，属于用户要的格式，保留。
- 作业不要替用户编内容；若课件确实附带了资料链接，可放进"课程资料"。

### 第 4 步：产出到飞书（默认直建，不导出 md）

默认**直接建成飞书文档**，不产 markdown。只有用户明确说"要 md / 导出 markdown"时，才另外给一份 md 草稿（md 里纲领句用 `>` 引用块代替高亮块）。

**产出位置——先定位置，按下面顺序判断（这是硬规则）：**
1. **素材来自某个知识库里的在线文档**（给的是 wiki 链接）→ 直接把笔记建到**同一个知识库、和源文档同目录**下，**不用问**。做法：`wiki +node-get` 解析源文档的 `space_id` 和 `parent_node_token`，再 `wiki +node-create --space-id <space_id> --parent-node-token <parent> --obj-type docx --title <标题>`。
2. **用户明确指定了知识库/目录** → 按用户说的建。
3. **素材来自文档库**（个人文档库 / 一篇零散云文档）→ **生成前用弹框（AskUserQuestion，给选项按钮）问用户建到哪里**（如：本文档库 / 某个知识库 / 指定其他）。
4. **兜底**（用户没说、跳过、或任何其他情况，包括本地 PPT/PDF 素材）→ **默认建到文档库**：`wiki +node-create --space-id my_library --obj-type docx --title <标题>`。**绝不建到云盘 Drive**（即不要用 `docs +create` 的默认位置兜底）。

**写内容**：位置定好、拿到目标 docx 的 token 后，用 `docs +update --command overwrite`（或 append）写入三块内容。纲领句用**高亮块 callout**（`<callout>`），不要文字背景高亮。

**修订模式**（用户已有笔记时）：**默认就地改用户那篇原文档**（不新建副本，飞书历史版本可回滚兜底）。要点：① **只动「课堂重点」**——「课程资料」「课后任务」不改不删，除非用户明确要求且**动前再单独确认一次**；② 改前把"调了哪些结构、从课件补了哪些点、没删任何原文"的改动清单给用户确认；③ 确认后用 `lark-doc` 的**精准局部编辑**（`str_replace` / `block_insert_after` 等）就地改，**不要用 `overwrite` 整篇重写**，才能保住原有 block 和措辞；④ AI 新增/大改的内容用**黄色文字背景高亮**（`<span background-color="light-yellow">`）临时标出；⑤ 用户确认后说"清掉高亮"，即批量去掉所有 light-yellow 文字背景 span（不误伤正文的 callout 高亮块和表头灰底）。详见 `references/revise-mode.md`。

> 写飞书文档的具体 XML 语法（标题/表格/列表/callout/checkbox）交给 `lark-doc` skill。

## 什么时候停下来问用户（用弹框 AskUserQuestion）

这个 skill 偏"转写"，不用像写 PRD 那样步步确认，但这几处要停：
- 标题的日期/课程名拿不准时
- **修订模式动用户已有笔记之前**（这是他的真实内容，改前先让他确认结构改动）
- 一份素材里混了多节课、或你不确定哪些属于"课堂重点"时

## 参考文件

- `references/note-template.md` — 三块结构的完整模板 + 占位样式（照它组装）
- `references/restructure-playbook.md` — 课件→课堂重点的重组手法、截图转文字、排版规则
- `references/revise-mode.md` — **修订已有笔记的详规**（就地精准编辑、改前确认、新增打临时高亮、两种场景）

