skills/ops-manual-generator/SKILL.md
Use this skill to generate Chinese operations manual PPTs (.pptx) with annotated screenshots and field mapping diagrams. Converts CMS/admin backend configurations (Strapi, Admin Panel, 管理后台, 配置中心, headless CMS, contentful, or any backend system) into training slides for non-technical staff (ops, product, business teams). Triggers on: 操作手册, 运营文档, 配置说明, 字段对照, 字段映射, SOP, 使用说明, 培训材料, 后台使用指南, operations manual, field mapping, admin guide, CMS documentation. Also use when user says "帮我出个文档给运营", "写个配置说明", "教运营怎么用后台", "标记一下哪个字段对应页面哪个部分", "给业务方看的使用说明", or any request to document backend-to-frontend field relationships for non-developers. Do NOT use for: API technical docs, README, developer documentation, PRD, data reports, or coding tasks.
npx skillsauth add tc9011/my-skills ops-manual-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
生成面向运营人员的中文操作手册 PPT(.pptx),一个文件包含操作手册幻灯片和字段对照图幻灯片。中间产物为 Markdown + HTML,经用户预览确认后用 pptxgenjs 生成最终 PPT 交付。
本技能将大型模板和详细参考抽取到 references/ 目录中,在对应阶段按需读取:
| 文件 | 用途 | 何时读取 |
| ---------------------------------------- | ------------------------------------------------------------------ | -------------------- |
| references/field-mapping-template.html | 字段对照图 HTML 完整模板 | Phase 3 生成 HTML 时 |
| references/preview-wrapper.html | Markdown 预览 HTML 包装器 | Phase 4 预览时 |
| references/ppt-structure-reference.md | PPT 幻灯片结构、内容映射、样式约定 | Phase 5 生成 PPT 时 |
| references/generate-ppt-template.mjs | 可执行的 pptxgenjs 脚本模板(含 withFont、freshOpts 等已验证模式) | Phase 5 生成脚本时 |
在开始任何分析或写作之前,必须先拿到截图。 没有截图就不要开始。
如果用户没有提供截图,立即停下来要求截图:
"要生成操作手册 PPT,我需要你先提供:
- 后台配置界面截图 — 每个配置模块至少一张
- 前端页面截图 — 展示配置生效后用户看到的样子
请先提供截图,我再开始生成。"
如果用户坚持先看文字,可以先生成 Markdown 草稿,但在文档开头标注"草稿版本 — 待补充截图后生成完整版"。
如果在代码项目中,按优先级搜索:
从代码和截图中提取每个配置模块的字段映射(内部工作数据):
配置模块: [模块名称]
├── 字段A
│ ├── 后台位置: 截图中的具体位置
│ ├── 前端位置: 页面上的展示位置
│ ├── 数据类型: 文本/图片URL/富文本/数组...
│ └── 特殊逻辑: 有条件展示/格式转换/...
宁可多列不可遗漏。每个后台可编辑字段都要对应到前端展示位置。
仔细查看每张截图:
操作手册面向运营人员,语言要简洁易懂,避免技术术语。
# [系统/功能名称] 运营操作手册
## 1. 概述
### 1.1 文档说明
### 1.2 涉及配置项
| 配置项名称 | 用途 | 影响页面 |
### 1.3 操作入口
## 2. [配置模块 A] 配置说明
### 2.1 功能说明
### 2.2 字段说明
| 字段 | 说明 | 类型 | 必填 | 示例 |
### 2.3 操作步骤
1. 进入 XXX 后台
2. 找到 XXX 配置
3. 修改字段...
4. 点击发布
### 2.4 注意事项
(每个配置模块重复上述结构)
## N. 常见问题 (FAQ)
## N+1. 快速参考
字段对照图是核心产出——交互式 HTML 页面,左右并排展示后台/前端截图,用编号标记对应字段。
references/field-mapping-template.html 作为基础模板mapping-group 区块top: 25%; left: 60%),图片缩放时标记位置不变#e74c3c)= 后台,蓝色(#3498db)= 前端生成 Markdown 和 HTML 后,先让用户预览确认,再生成 PPT。
output-dir/
├── 操作手册.md
├── 字段对照图.html
└── images/
├── backend-*.png
└── frontend-*.png
字段对照图可直接用浏览器打开 HTML 文件:
open <output-dir>/字段对照图.html
Markdown 预览:读取 references/preview-wrapper.html,将 Markdown 转为 HTML 后嵌入,保存为临时文件并打开:
# 方法 1:用 marked 转换(需安装 marked)
npx marked --gfm < <output-dir>/操作手册.md > /tmp/操作手册-preview.html
open /tmp/操作手册-preview.html
# 方法 2:用 Python HTTP 服务器(如需图片正确显示)
python3 -m http.server 8080 --directory <output-dir> &
open http://localhost:8080/字段对照图.html
"预览已就绪: 📋 操作手册: [预览路径] 🖼️ 字段对照图: [预览路径]
请检查:字段映射是否完整、操作步骤是否准确、标记位置是否正确
✅ 没问题请回复 approve ✏️ 需要修改请告诉我哪里需要调整"
在用户明确 approve 之前,不要生成 PPT。
进入 Phase 5 前,先加载 pptx 技能(use_skill("pptx"))。pptx 技能包含完整的 pptxgenjs API 参考和 Common Pitfalls。本技能只提供操作手册 PPT 的结构和内容指导,pptxgenjs 底层用法以 pptx 技能为准。
如果 pptx 技能不可用,必须至少遵守这些关键规则:
# 号 — "FF0000" 不是 "#FF0000"opacity 属性bullet: truebreakLine: truefreshOpts() 深拷贝Heiti SC + lang: 'zh-CN'(见 5.3)references/ppt-structure-reference.md — 了解幻灯片结构、内容映射和样式约定references/generate-ppt-template.mjs — 复制为生成脚本的起点脚本模板已包含:色板(C)、字体常量(FONT/LANG)、withFont()、freshOpts()、addMarker()、addFooter()、addSlideNumber()、斑马纹表格工具函数、和表格 cell 样式模板。
pptxgenjs 生成中文 PPT 时,必须同时满足三个条件,否则中文会显示为方块:
const FONT = "Heiti SC"; // macOS 核心字体,无懒加载
const LANG = "zh-CN"; // 生成正确的 XML lang 属性
const withFont = (opts = {}) => ({ fontFace: FONT, lang: LANG, ...opts });
// 每个 addText / addTable cell 都必须经过 withFont
slide.addText("中文", withFont({ fontSize: 14 }));
为什么这三条缺一不可:
"PingFang SC, Microsoft YaHei" 会被当作一个不存在的字体(不是 CSS font-family 的 fallback 语法)en-US:缺少 zh-CN 时,macOS Keynote 忽略东亚字体声明,表格单元格中文显示为豆腐块表格单元格比普通文本框更敏感——addText() 可能降级显示,addTable() 单元格不会。
references/generate-ppt-template.mjs 到输出目录npm list pptxgenjs 2>/dev/null || npm install pptxgenjs
node <output-dir>/generate-ppt.mjs
生成后打开 PPT 检查:
withFont())# 如有 LibreOffice,可转为图片检查
soffice --headless --convert-to pdf <output-dir>/操作手册.pptx
# 或直接用 Keynote / PowerPoint 打开
# 如启动了 HTTP 服务器
kill $(cat /tmp/ops-manual-preview.pid) 2>/dev/null
rm -f /tmp/ops-manual-preview.pid /tmp/操作手册-preview.html
# 生成脚本可选保留(方便后续更新)
"✅ 已生成最终文件:
📊 操作手册 PPT:
操作手册.pptx— 包含操作手册 + 字段对照图,可直接分发📝 源文件(方便后续编辑):
操作手册.md— Markdown 源文件字段对照图.html— HTML 源文件images/— 截图原图"
| 场景 | 处理方式 | | ----------------------- | ------------------------------------------------- | | 有代码 + 截图(最理想) | 完整流程:代码分析 → Markdown + HTML → 预览 → PPT | | 只有截图 | 根据截图可见字段推断映射,向用户确认不确定的字段 | | 有代码没截图 | 停下来要求截图。可先分析代码,但不生成对照图 | | 增量更新 | git diff 找出变更,只更新变化部分 |
tools
Three.js interaction - raycasting, controls, mouse/touch input, object selection. Use when handling user input, implementing click detection, adding camera controls, or creating interactive 3D experiences.
development
Three.js geometry creation - built-in shapes, BufferGeometry, custom geometry, instancing. Use when creating 3D shapes, working with vertices, building custom meshes, or optimizing with instanced rendering.
tools
Three.js scene setup, cameras, renderer, Object3D hierarchy, coordinate systems. Use when setting up 3D scenes, creating cameras, configuring renderers, managing object hierarchies, or working with transforms.
tools
Three.js animation - keyframe animation, skeletal animation, morph targets, animation mixing. Use when animating objects, playing GLTF animations, creating procedural motion, or blending animations.