Install
openclaw skills install @samonysh/project-cookbook-latexCreates source-level 80k+ word project CookBooks as LaTeX, PDF, and EPUB. Invoke for websites/docs/repos requiring deep technical books.
openclaw skills install @samonysh/project-cookbook-latexBilingual note: This English edition mirrors
SKILL.zh-CN.md. For the authoritative Chinese version, seeSKILL.zh-CN.md.
本 Skill 用于根据用户提供的网站、在线文档、仓库源码、本地文档、API 说明、论文或其他项目资料,生成一套关于该项目的深度 CookBook。目标产物包括:章节化 LaTeX 工程、编译后的 PDF、从 LaTeX/结构化源生成的 EPUB、图表源文件、图表图片、非空封面图、参考资料清单、字数统计与构建验证报告。
核心原则:本 Skill 的最终排版源应优先是 LaTeX,而不是 Markdown。Markdown 只能作为临时大纲、笔记或内容暂存;不得把 Markdown 表格、代码围栏或原始 Markdown 片段直接塞进 LaTeX/PDF 正文。
| Behaviour | Default | Rationale |
|---|---|---|
| Network access | OFF | Only fetch remote resources when user explicitly approves. |
| Host toolchain install | OFF / fail-closed | Never auto-run pip install, npm install -g, apt install, etc. Report missing deps and wait for manual confirmation. |
LaTeX -shell-escape | OFF | Disabled by default; only enabled when user consents AND environment is sandboxed AND content is trusted. |
Core principles:
-shell-escape on untrusted input.| 行为 | 默认值 | 说明 |
|---|---|---|
| 网络访问 | 关闭 | 仅在用户明确同意后访问网络资源。 |
| 主机工具链安装 | 关闭 / 失败即止 | 不会自动运行 pip install、npm install -g、apt install 等。缺失依赖时报告给用户并等待手动确认。 |
LaTeX -shell-escape | 关闭 | 默认不启用 -shell-escape;仅在用户明确同意、沙箱/容器化环境、受信内容三者同时满足时才可开启。 |
核心原则:
-shell-escape。本技能接受多种输入格式:
| 输入类型 | 说明 |
|---|---|
| Markdown / TXT 文件 | 最常见输入,直接处理。 |
| JSON 结构化数据 | 包含 title、chapters[]、content 字段时作为结构化大纲处理。 |
| 直接 LLM 上下文 | 当用户以对话方式提供内容时,自动从上下文提取大纲与正文。 |
| URL / 仓库地址 | 仅在用户明确同意后抓取远程内容。 |
当用户提出以下任一需求时,应调用本 Skill:
elegantbook-latex 生成 LaTeX 项目、PDF 或书籍排版。本 Skill 是编排型 Skill。执行时应按需调用以下 Skills:
research-guide
drawio
plantuml
elegantbook-latex
epub-reader-optimizer
pdf
md-image-to-tos
生成一套面向开发者、架构师和高级使用者的项目 CookBook,要求:
metadata/word-count.txtdist/validation-result.md生成完成前必须通过以下检查;不通过则继续修复,不得直接交付:
| --- | --- |、未转义 Markdown 管道表格、Markdown 代码围栏 ```、 形式图片引用。booktabs,宽表格使用 tabularx 或 xltabular,跨页表格使用 longtable 或 xltabular,必要时使用横向页面。tcolorbox + listings 或 listings,不得将代码作为普通段落输出。samepage、minipage、tcolorbox[breakable=false] 或 needspace 保护;长代码和长表格允许跨页,但必须使用可读的跨页样式。metadata/word-count.txt。若不足 8 万字,继续扩写源码解析、Recipe、配置项速查、API 速查、测试与部署章节。mimetype 必须为第一个条目且未压缩。build.ps1 或等价构建说明,并记录编译命令和结果。先识别用户提供的信息类型:
如果缺少关键输入,应简洁询问:
若用户已提供足够信息,不要过度询问,直接开始。
资料优先级:
执行要求:
如果有源码,必须分析:
源码引用要求:
推荐 8 万字以上 CookBook 章节结构如下,可按项目类型调整:
00 前言与阅读指南
01 项目概览与问题域
02 快速开始与最小可运行示例
03 安装、环境与构建系统
04 项目调用方式总览
05 API 设计与用户侧编程模型
06 项目整体架构
07 源码目录结构深度导览
08 启动流程与入口点解析
09 核心模块一:职责、接口与实现
10 核心模块二:职责、接口与实现
11 核心模块三:职责、接口与实现
12 关键调用链源码解析
13 配置系统与扩展机制
14 数据模型、状态管理与持久化
15 并发、异步、队列或调度机制
16 错误处理、日志与可观测性
17 性能设计与优化实践
18 安全模型与边界条件
19 测试体系与调试方法
20 部署、集成与生产实践
21 常见任务 CookBook Recipes
22 二次开发与贡献指南
23 与同类项目对比
24 版本演进、路线图与生态
25 总结
附录 A API 速查表
附录 B 配置项速查表
附录 C 核心源码索引
附录 D 图表索引
附录 E 参考资料
每章应有明确功能:
必须先建立图表清单,推荐至少包含:
| 图表 | 工具 | 说明 |
|---|---|---|
| 项目整体架构图 | drawio | 展示用户、API、核心模块、外部依赖 |
| 源码目录分层图 | drawio | 展示目录与模块职责 |
| API 调用时序图 | plantuml | 展示用户代码到内部执行路径 |
| 核心类图 | plantuml | 展示核心类、接口、继承/组合关系 |
| 生命周期图 | plantuml | 展示对象、任务、请求或插件生命周期 |
| 数据流图 | drawio 或 plantuml | 展示数据进入、转换、输出过程 |
| 部署拓扑图 | drawio | 展示运行时环境、依赖服务、网络关系 |
| 错误处理流程图 | plantuml | 展示异常捕获、重试、降级、日志 |
图表要求:
.puml 并导出为 .svg 或 .png。.drawio 并导出为 .png 或 .svg。封面是强制交付物,不得留空,并且必须遵守 ElegantBook 模板的封面图尺寸规则。
https://pixabay.com/en/tea-time-poetry-coffee-reading-3240766/。ElegantBook 封面图片最终文件必须严格为:
1280 × 1024
更换图片时必须按 5:4 比例裁剪,不得仅依赖 LaTeX 自动缩放。推荐流程:
latex/figures/cover-original.* 或 latex/figures/cover-pixabay-original.jpg。latex/figures/cover.png,实际像素必须是 1280×1024。latex/figures/cover.jpg 作为备用,但 main.tex 中主封面应使用 \cover{figures/cover.png}。metadata/image-sources.md 中记录裁剪方式:例如“中心裁剪为 5:4,再缩放到 1280×1024”。编译前后必须检查:
latex/figures/cover.png 存在;1280×1024;main.tex 中存在 \cover{figures/cover.png};metadata/image-sources.md 记录来源 URL、作者/平台、许可证、访问日期、裁剪方式;dist/validation-result.md 写明封面来源和实际尺寸。如果网络图片不可访问,才允许生成 SVG/PNG 兜底封面;兜底封面同样必须输出为 1280×1024,并记录“本地生成”。
推荐流程是 先生成结构化 LaTeX 正文,再从 LaTeX 或同源结构化内容生成 EPUB:
project-cookbook/
latex/
main.tex
chapters/
00-preface.tex
01-overview.tex
...
figures/
diagrams/
metadata/
sources.md
image-sources.md
word-count.txt
build-notes.md
dist/
Project-CookBook.pdf
Project-CookBook.epub
Project-CookBook-LaTeX.zip
Markdown 只允许用于:
禁止事项:
.tex。.tex。.tex。使用 elegantbook-latex 生成或优化 LaTeX 工程。推荐结构:
<ProjectName>-CookBook/
latex/
main.tex
elegantbook.cls
reference.bib
build.ps1
chapters/
00-preface.tex
01-overview.tex
02-quickstart.tex
...
appendix-a-api-reference.tex
appendix-b-config-reference.tex
appendix-c-source-index.tex
figures/
cover.jpg
architecture-overview.png
api-sequence.svg
core-class-diagram.svg
diagrams/
architecture-overview.drawio
api-sequence.puml
core-class-diagram.puml
metadata/
sources.md
image-sources.md
word-count.txt
build-notes.md
dist/
<ProjectName>-CookBook.pdf
<ProjectName>-CookBook.epub
<ProjectName>-CookBook-LaTeX.zip
validation-result.md
LaTeX 要求:
main.tex 只负责全局配置和 \input{chapters/...}。.tex 文件,按编号命名。chapters/chapter-xx/section-yy.tex,但主章节入口仍保持清晰。figures/,图表源文件放在 diagrams/。reference.bib 或 metadata/sources.md 中维护。表格必须手工或程序化转换成真正的 LaTeX 表格环境。不得以 Markdown 原文显示。
在 main.tex 中至少准备:
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{xltabular}
\usepackage{longtable}
\usepackage{array}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{threeparttable}
\usepackage{pdflscape}
\usepackage{needspace}
\renewcommand{\arraystretch}{1.25}
\setlength{\tabcolsep}{5pt}
table + tabularx + booktabs。tabularx,长文本列使用 X 或 p{},不要用 l l l l l 硬挤。xltabular 或 longtable,设置重复表头。pdflscape 的 landscape 环境,而不是把字号缩到不可读。\Needspace{8\baselineskip},减少表格标题与表格主体分离。\toprule、\midrule、\bottomrule,避免竖线。\small,最多用到 \footnotesize;不得全书滥用 \scriptsize。\resizebox{\textwidth}{!}{...}。\caption{} 和稳定 \label{tab:...}。生成或修复 LaTeX 后必须搜索:
|---
---|
| --- |
如果 .tex 正文中仍有 Markdown 表格痕迹,必须立即转换为 LaTeX 表格。
代码块必须使用专业代码环境,避免作为普通文本或 Markdown 源码出现。
优先使用 tcolorbox + listings,因为它可以控制分页、边框、背景、标题和断行:
\usepackage{listings}
\usepackage[most]{tcolorbox}
\lstdefinestyle{cookbookcode}{
basicstyle=\ttfamily\small,
breaklines=true,
breakatwhitespace=true,
columns=fullflexible,
keepspaces=true,
showstringspaces=false,
frame=none,
tabsize=2
}
\newtcblisting{codeblock}[2][]{
listing only,
listing style=cookbookcode,
title={#2},
breakable,
enhanced,
colback=gray!3,
colframe=gray!45,
boxrule=0.4pt,
arc=2mm,
left=1.5mm,
right=1.5mm,
top=1mm,
bottom=1mm,
fonttitle=\bfseries\small,
#1
}
\Needspace{12\baselineskip},或 tcolorbox 设置 breakable=false。verbatim 作为默认代码样式,因为它难以美化和控制分页。PDF 生成要求:
EPUB 推荐流程:
epub-reader-optimizer 优化 CSS、字体、颜色、代码块和表格。mimetype 必须是第一个条目且未压缩;必须包含导航文件。注意:
elegantbook-latex。epub-reader-optimizer。若生成内容不足 8 万字,应按以下优先级扩写,而不是填充空话:
字数统计要求:
metadata/word-count.txt。最终内容必须满足:
执行时可使用如下 Todo:
1. 收集项目资料与源码入口
2. 建立资料索引与引用清单
3. 分析项目结构、调用方式和核心源码
4. 设计 8 万字 CookBook 章节大纲
5. 搜索/生成非空封面图片并记录来源
6. 规划图表清单
7. 直接生成 LaTeX 章节正文,而不是先生成最终 Markdown
8. 生成 draw.io 与 PlantUML 图表并导出图片
9. 将表格转换为 booktabs/tabularx/xltabular/longtable 环境
10. 将代码转换为 tcolorbox/listings 环境
11. 编译 PDF 并修复表格、代码、封面、字体和溢出问题
12. 从 LaTeX 或同源结构化内容生成 EPUB
13. 使用 epub-reader-optimizer 优化 EPUB
14. 统计字数并补足到 8 万字以上
15. 校验 PDF、EPUB、ZIP、封面、表格、代码、引用和最终交付物
最终回复用户时必须提供可打开的文件链接,至少包括:
回复应简洁说明:
优化:所有 | A | B |、|---|---| 必须转换为 LaTeX 表格。编译前 grep .tex 文件,发现 Markdown 表格立即修复。
优化:使用 tabularx / xltabular / longtable,长文本列设为 X,增加 \arraystretch,必要时拆表或横向页面。不要盲目缩放整表。
优化:短代码块使用 Needspace 或不可分页 tcolorbox;长代码块允许分页但使用 breakable 样式、清晰边框和自动断行。
优化:必须验证图片存在并可显示。网络图片失败时改用其他可访问来源,或生成 SVG/PNG 封面兜底。记录图片来源。
优化:必须从源码文件、API 调用、执行链路、配置项、测试用例、Recipe、附录中补充细节,而不是只总结官网。生成字数统计并按缺口补写。
优化:图表必须在正文中被解释和引用,例如“如图 6-1 所示”。
优化:严格使用 main.tex + chapters/ + figures/ + diagrams/ + metadata/ + dist/ 的结构。
优化:使用 epub-reader-optimizer 修正 CSS、代码块、表格和字体。从 LaTeX 或同源结构化内容生成 EPUB,避免和 PDF 内容不一致。
优化:记录来源,不确定许可证时仅作为参考素材,并在 sources 中标注许可证未知。
优化:构建时统计 LaTeX 正文字数,并生成 metadata/word-count.txt。
优化:每个源码分析小节至少给出文件路径、符号名、职责和调用关系。
请基于 https://example.com/docs 和这个 GitHub 仓库生成一个 8 万字以上的项目 CookBook,要求输出 PDF、EPUB、LaTeX,并包含架构图和源码级解析。
应调用本 Skill,并联动 research-guide、drawio、plantuml、elegantbook-latex、epub-reader-optimizer、pdf。
ExampleProject-CookBook/
latex/
main.tex
chapters/
figures/
cover.jpg
diagrams/
metadata/
sources.md
image-sources.md
word-count.txt
build-notes.md
dist/
ExampleProject-CookBook.pdf
ExampleProject-CookBook.epub
ExampleProject-CookBook-LaTeX.zip
validation-result.md