| name | extract-vocabulary |
| description | 扫描整合笔记中加粗的生词,提取去重后生成词汇表,替换笔记中的<!-- VOCABULARY_SLOT -->占位符。原地修改笔记文件,不改变其他内容。 |
生词提取技能 (extract-vocabulary)
扫描技能 4 产出的学习笔记,提取所有用 **粗体** 标记的生词,去重排序后生成词汇表,并插入到笔记的占位符位置。
前置条件
- 技能 4(compile-note)必须已执行完毕,笔记文件存在
- 笔记中需包含
<!-- VOCABULARY_SLOT --> 占位符
- 笔记中目标生词已用
**粗体** 标记(由技能 2/4 在排版和整合时完成)
输入
用户提供一项:
笔记文件路径 — 技能 4 输出的完整路径,如 C:\办公\Study-Notes\英语阅读\2024-text1-精读笔记.md
工作流
步骤 1:读取笔记文件
用 Read 工具读取完整笔记内容(YAML frontmatter + 正文)。
步骤 2:扫描加粗词汇
用正则 \*\*(.+?)\*\* 提取所有 **粗体** 包裹的文本。
排除以下内容:
- YAML frontmatter 区域:
--- 之间的内容不扫描
- 代码块:
``` 包裹的内容不扫描
- 章节标题:如
**背景**、**心得**、**延伸**、**思考题** 等(这些是章节名而非生词)
- Callout 标题:如
> [!note] **xxx** 中的粗体标题
- 已存于生词表中的词汇:如果笔记中已有
## 生词表 章节,其中的词汇不再重复提取
排除列表可根据实际情况调整。判断标准:如果粗体词是完整单词(含字母),且不在章节标题上下文中,则视为生词。
步骤 3:去重和排序
- 去除重复词汇(不区分大小写)
- 按字母顺序(A-Z)排序
- 保留首次出现时的形态(不改变原词的大小写和形式)
步骤 4:生成词汇表
- 词汇表始终重新生成:即使文件已有
## 生词表,也基于本次扫描结果重新生成(排除章节标题和 callout 标题中的假阳性)
- 若已有生词表中的词汇在新扫描中未被提取(未被
**粗体** 标记),仍将其纳入新词汇表以保持完整性——先用正则检测已有生词表中的词汇列
为每个词汇提供信息(AI 根据上下文推断):
## 生词表
| 词汇 | 词性 | 含义 | 原文例句 |
|------|------|------|----------|
| **abandon** | v. | 放弃;遗弃 | "They had to **abandon** the plan due to bad weather." |
| **scrutiny** | n. | 仔细审查 | "The policy came under intense **scrutiny** from the public." |
表格列说明:
- 词汇:保留原文
**粗体** 标记
- 词性:n./v./adj./adv./prep./conj. 等
- 含义:中文释义(考研常考义项优先)
- 原文例句:从文章中找到包含该词的句子(尽可能完整)
若词汇量较大(>30),可用分隔线按字母分组:
### A-C
| ... |
### D-F
| ... |
步骤 5:生成生词练习
- 练习始终生成:无论文件是否已有
### 生词练习,都重新生成。若已存在,在步骤 6 中替换之。
- 在词汇表下方添加
### 生词练习 章节,包含以下三种题型:
一、选词填空
从提取的生词中选择 8-10 个适合造句的词汇,设计填空题:
- 用方框或引用块列出备选词汇
- 题目使用与原文语境相关或贴近生活的句子
- 答案使用
> [!abstract]- 答案 折叠 callout,放在所有题目之后
### 生词练习
**一、选词填空**
从方框中选择合适的词汇填入空白处(每词限用一次):
> word1 / word2 / word3 / word4 / word5 / word6 / word7 / word8
1. ________ 的句子...
2. ________ 的句子...
> [!abstract]- 答案
> 1. **word1**(中文释义)
> 2. **word2**(中文释义)
二、短语翻译
选取 2-3 个重要短语/词组,要求翻译成中文:
- 答案使用
> [!abstract]- 答案 折叠 callout
**二、短语翻译**
将下列短语翻译成中文:
1. turn out to be...
2. put down roots in a community
> [!abstract]- 答案
> 1. **turn out to be...** = 结果是;证明是
> 2. **put down roots in a community** = 在社区扎根;定居
三、语境理解
选取 2-3 个易混淆或多义词,设计选择题考查语境中的准确含义:
- 每题 4 个选项(A/B/C/D)
- 答案使用
> [!abstract]- 答案 折叠 callout,并附简要解析
**三、语境理解**
根据上下文,选择正确的词义:
1. "原文句子" 中 **word** 的含义是:
- A. 义项1
- B. 义项2
- C. 义项3(正确)
- D. 义项4
> [!abstract]- 答案
> 1. **C** — 简要解析说明为什么选 C
步骤 6:定位并替换占位符
- 扫描已有内容:在笔记中查找以下目标:
<!-- VOCABULARY_SLOT --> 占位符
### 生词练习 章节(判断是否已有练习题)
- 替换策略:
- 占位符存在:用生成的词汇表 + 生词练习替换(删除占位符行,插入
## 生词表 + 表格 + ### 生词练习 + 练习题)
- 占位符不存在,但已有
## 生词表 和 ### 生词练习:替换 ## 生词表 与其后直到下一个 ## 标题之间的全部内容(即整个生词表+练习区),写入新生成的词汇表+练习
- 占位符和生词表均不存在:在
## 语法要点 和 ## 心得 之间插入词汇表和练习
- 用 Edit 工具执行替换
步骤 7:保存并报告
- Edit 工具保存修改
- 报告提取词汇数、去重后数量、练习题型、插入位置
- 若提取词汇数为 0,向用户报错并建议检查笔记中是否有
**粗体** 标记的生词
步骤 8:自我学习(可选)
检查 .learnings/ 目录。若存在且有值得记录的提取问题(如误提取的非生词、遗漏的词汇),追加到 LEARNINGS.md。
约束
- 只修改
<!-- VOCABULARY_SLOT --> 占位符位置,不得修改笔记其他任何内容
- 必须完全移除占位符,不留残留
- 不得重新排列或修改笔记的现有章节
- 若提取词汇数为 0,如实报告——不要编造词汇
- 若占位符不存在,告知用户并给出建议插入位置,由用户确认
- 生词练习的答案必须使用
> [!abstract]- 折叠 callout 格式
- 选词填空题目数量 8-10 题,短语翻译 2-3 题,语境理解 2-3 题
相关技能
此技能是考研英语阅读精讲工作流的第五步(最后一步):
translate — 翻译文章
format-article — 排版文章
organize-grammar — 整理语法
compile-note — 整合笔记(产出生词提取的输入文件)