Initial commit

This commit is contained in:
Z User
2026-06-06 05:21:10 +00:00
Unverified
commit 6664758a6d
493 changed files with 135653 additions and 0 deletions

210
skills/cheat-sheet/SKILL.md Executable file
View 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。
---
### 步骤 3LLM 提炼内容
根据用户选择的风格,构建不同的 prompt 让 LLM 从原文中提炼 cheatsheet 内容。
#### 风格 1知识点速查卡
提炼规则:
- 提取所有核心概念、定义、公式、关键数据
- 每个知识点用 **术语:一句话解释** 的格式
- 相关知识点分组,每组有小标题
- 重要公式/代码片段原样保留
- 砍掉所有举例、过渡句、背景铺垫
输出结构:
```
## [分组标题]
- **术语A**:一句话定义
- **术语B**:一句话定义
- 📐 公式:`公式内容`
## [分组标题]
...
```
#### 风格 2思维导图式
提炼规则:
- 提取文档的层级结构(章→节→要点)
- 每个节点用最简短的语言概括
- 最多 3 级深度(再深就塞不进一页了)
- 用缩进和符号表达层级关系
输出结构:
```
# 主题
## 一级分支
├─ 二级要点
│ ├─ 细节 1
│ └─ 细节 2
└─ 二级要点
└─ 细节
```
#### 风格 3Q&A 式
提炼规则:
- 把每个知识点转化成一个问题
- 答案控制在 1-3 句话
- 问题从基础到进阶排列
- 易混淆的概念出辨析题
输出结构:
```
## [主题分组]
**Q什么是 XXX**
A一句话回答。
**QXXX 和 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 完成。