Initial commit
This commit is contained in:
210
skills/cheat-sheet/SKILL.md
Executable file
210
skills/cheat-sheet/SKILL.md
Executable file
@@ -0,0 +1,210 @@
|
||||
---
|
||||
name: cheat-sheet
|
||||
description: 将 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` — 直接读取
|
||||
|
||||
**提取文本命令:**
|
||||
```bash
|
||||
# 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:选择风格
|
||||
|
||||
**必须询问用户**想要哪种风格(不要自己替用户选):
|
||||
|
||||
向用户展示以下选项:
|
||||
1. 📋 **知识点速查卡** — 核心概念 + 定义 + 关键公式/要点,一眼扫到,适合考前突击
|
||||
2. 🌳 **思维导图式** — 按层级结构组织(大标题→子标题→要点),有大纲感,适合梳理体系
|
||||
3. ❓ **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 | |
|
||||
|
||||
**生成流程:**
|
||||
|
||||
1. 将 LLM 提炼的 Markdown 内容转换为 ReportLab 排版指令
|
||||
2. 调 PDF skill 的 report 路线生成 PDF
|
||||
3. 生成文件路径告知用户
|
||||
|
||||
**调用 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 完成。
|
||||
Reference in New Issue
Block a user