sop-generatelisted
Install: claude install-skill 7bata/claude-workflow-kit
# sop-generate — 业务 SOP 生成
## Overview
给一个**已部署、可访问**的 Web 应用生成中文业务操作手册:谁在什么环节、在哪个页面、做什么操作、系统自动做什么、异常怎么办,并配真实截图与至少一个可复现的使用样例。
核心分工(参照 Flaex/web-app-tutorial-generator):**脚本只管截图和抓 DOM/accessibility 摘要,模型只管读摘要写文案**。绝不把整页截图喂给模型做文案——省 token,也省时间。
硬规则(贯穿全流程,违反即返工):
1. **凭据绝不写入产出文档,也绝不经命令行参数传递**。测试账号的用户名/密码/token 只能出现在你与用户的对话、本地 `.env` 读取、或传给 crawl.mjs 的**环境变量**(`SOP_USER`/`SOP_PASS`)里;`docs/SOP-*.md`、`docs/sop-images/` 及其任何提交物中**一律不出现真实凭据**。手册里提到登录时写"使用测试账号登录"而非具体值。调用 `<本 skill base directory>/scripts/crawl.mjs` 时凭据只经环境变量传入(`SOP_USER=... SOP_PASS=... node ...`),不出现在 `--user`/`--pass` 命令行参数里——argv 会落进 shell history、`ps aux` 可见的进程列表、以及会话记录,即使脚本本身不回写文件,凭据也已经泄漏到这几处。
2. **业务黑话首次出现必须解释**(如"红点/非红点"这类项目内部术语)。
3. **页面矩阵必须全覆盖**——遍历到的每个页面、每个功能点都要在矩阵里出现,不允许"看起来不重要就跳过"。
4. **样例必须真实走一遍**,不能编造操作结果;截图即证据。
## 技术路线
- **主路径**:用本 skill 自带的原生 Playwright Node 脚本 `<本 skill base directory>/scripts/crawl.mjs`(登录→遍历→截图三段式;用绝对路径调用,因为执行时 cwd 是被测项目根目录,相对路径 `scripts/crawl.mjs` 解析不到)。首次用需要 `npm install playwright` 或已有全局安装;脚本会自检并报缺失依赖的安装命令,不擅自静默安装。凭据经环境变量传入(见硬规则 1),例如:
```
SOP_USER='<测试账号>' SOP_PASS='<密码>' node <本 skill base directory>/scripts/crawl.mjs --url <部署URL> --out docs/sop-images
```
**能力落差**:该脚本只负责静态页面的首轮采集,每页产出一张全页截图 + accessibility 摘要,不做步骤 3 要求的"关键操作前/后两张"截图——那需要脚本感知具体的点击/表单提交动作。脚本支持可选的 `--actions <json文件>` 参数,传入一份动作清单(`[{name, url, click}]`,可选 before/after 字段仅作截图文件名后缀;权威格式见 scripts/crawl.mjs 文件头注释)即可对指定操作做前/后两张截图;不传时关键操作的 before/after 需临时写一段一次性 Playwright 片段补,不能只靠 `full.png` 交差。
- **可