5.9 KiB
Executable File
5.9 KiB
Executable File
name, description
| name | description |
|---|---|
| cheat-sheet | 将 PDF/Word/Markdown 学习资料转化为精炼的知识浓缩卡文档。支持三种风格(知识点速查卡/思维导图式/Q&A式),输出双栏小字 PDF。当用户说"生成知识浓缩卡"、"生成 Cheatsheet"、"帮我做个速查表"、"把这个资料整理成一页纸"、"做个知识卡片"时触发。**不处理**:基于材料出题(→ quiz-mastery)、长期学习项目(→ study-buddy)。 |
Cheatsheet 生成器
你做什么
把用户的学习资料(PDF/Word/Markdown/文本)压缩成一份双栏、小字、信息密度高的 Cheatsheet 文档(PDF 格式)。
核心原则:只保留干货,砍掉废话。
⚠️ 铁律:避免重复创建
生成 Cheatsheet 前,先扫描输出目录检查是否已有同主题文件:
- 已存在 → 问用户"已经有一份 [文件名] 了,覆盖 / 新建一份 / 跳过?" 等用户回复再动手
- 不存在 → 直接生成
- 绝不未经询问直接覆盖
工作流程
步骤 1:接收资料
用户提供学习资料文件,支持格式:
.pdf— 调 PDF skill 的 process 路线提取文本.docx— 调 PDF skill 的 process 路线提取文本.md/.txt— 直接读取
提取文本命令:
# PDF 提取文本
python3 "$PDF_SCRIPTS/pdf.py" extract.text <file_path>
# Word 转 PDF 后提取(如需要)
python3 "$PDF_SCRIPTS/pdf.py" convert.office <file_path>
其中 $PDF_SCRIPTS 为 PDF skill 的 scripts 目录路径,需从 PDF skill 的 SKILL.md 位置推导。
如果用户没有提供文件而是直接贴了文本内容,跳过提取步骤,直接用文本。
步骤 2:选择风格
必须询问用户想要哪种风格(不要自己替用户选):
向用户展示以下选项:
- 📋 知识点速查卡 — 核心概念 + 定义 + 关键公式/要点,一眼扫到,适合考前突击
- 🌳 思维导图式 — 按层级结构组织(大标题→子标题→要点),有大纲感,适合梳理体系
- ❓ Q&A 式 — 把知识点变成"问题→答案"对,适合自测复习
用户选择后进入步骤 3。
步骤 3:LLM 提炼内容
根据用户选择的风格,构建不同的 prompt 让 LLM 从原文中提炼 cheatsheet 内容。
风格 1:知识点速查卡
提炼规则:
- 提取所有核心概念、定义、公式、关键数据
- 每个知识点用 术语:一句话解释 的格式
- 相关知识点分组,每组有小标题
- 重要公式/代码片段原样保留
- 砍掉所有举例、过渡句、背景铺垫
输出结构:
## [分组标题]
- **术语A**:一句话定义
- **术语B**:一句话定义
- 📐 公式:`公式内容`
## [分组标题]
...
风格 2:思维导图式
提炼规则:
- 提取文档的层级结构(章→节→要点)
- 每个节点用最简短的语言概括
- 最多 3 级深度(再深就塞不进一页了)
- 用缩进和符号表达层级关系
输出结构:
# 主题
## 一级分支
├─ 二级要点
│ ├─ 细节 1
│ └─ 细节 2
└─ 二级要点
└─ 细节
风格 3:Q&A 式
提炼规则:
- 把每个知识点转化成一个问题
- 答案控制在 1-3 句话
- 问题从基础到进阶排列
- 易混淆的概念出辨析题
输出结构:
## [主题分组]
**Q:什么是 XXX?**
A:一句话回答。
**Q:XXX 和 YYY 的区别?**
A:简短对比。
步骤 4:用户确认与调整
LLM 生成内容后,先以文本形式展示给用户,询问:
"内容整理好了,你看看有没有要调整的?比如:
- 某些部分要加重点标记?
- 某些内容要删掉或补充?
- 排版上有什么偏好?(比如字号再小一点、分区颜色区分等)"
用户确认"可以"后,进入步骤 5。 用户提出修改 → 调整内容 → 再次展示 → 等待确认。
步骤 5:生成 PDF
调用 PDF skill 的 Report 路线(ReportLab) 生成双栏 PDF。
排版规格(默认值):
| 参数 | 默认值 | 说明 |
|---|---|---|
| 页面大小 | A4 | 可按用户要求调整 |
| 栏数 | 双栏 | 默认双栏,用户可选单栏 |
| 正文字号 | 8pt | 信息密度优先,可按用户要求调整 |
| 标题字号 | 10pt(一级)/ 9pt(二级) | |
| 行距 | 1.2 | 紧凑但可读 |
| 页边距 | 上下左右各 12mm | 最大化内容区域 |
| 字体 | 中文用 UniSong/UniHei,英文用 Helvetica |
生成流程:
- 将 LLM 提炼的 Markdown 内容转换为 ReportLab 排版指令
- 调 PDF skill 的 report 路线生成 PDF
- 生成文件路径告知用户
调用 PDF skill 时遵循其 SKILL.md 中的所有规则,包括:
- CJK 字体检查
- 表格溢出防护
- 页面填充率检查
- 元数据设置
步骤 6:交付
输出给用户:
- 📄 PDF 文件路径
- 文件大小、页数
- 提示用户可以继续调整
注意事项
内容质量
- 不编造内容:所有知识点必须来自原文,不能自由发挥
- 不遗漏关键内容:核心概念、公式、定义必须保留
- 术语保持原文用词:不要擅自替换专业术语
文件操作
- 生成的 PDF 默认保存到工作区根目录,文件名格式:
知识浓缩卡_[主题]_[日期].pdf - 查重见上方"⚠️ 铁律:避免重复创建"
与其他 Skill 的关系
| Skill | 关系 |
|---|---|
| PDF skill | 调用其 process 路线提取文本,调用其 report 路线生成 PDF |
| study-buddy | study-buddy 可在用户完成学习项目后推荐生成 cheatsheet |
| quiz-mastery | 无直接关系,但 cheatsheet 内容可作为出题的知识点来源 |
文件结构
skills/cheat-sheet/
├── SKILL.md ← 当前文件
本 skill 是纯流程指引,不包含独立脚本。所有文件操作和 PDF 生成通过调用 PDF skill 完成。