技能道术升级 SOP(skill-daoshu-upgrade)
把一份外部经验材料,转化为一个技能(或专家包)的"道→术"升级。核心纪律三条:段印(SEAL) 完好、版本五处同步、品牌纯度(零外部署名)。本 SOP 不覆盖纯打包分发动作(那部分见 expert-package-release 与 duanyin-seal),但包含它们所需的校验前提。
适用场景与触发
- 用户给一份 docx/笔记/文章,要求"看看能不能借鉴进某技能"。
- 用户要求"道→术重构""升华技能的方法论高度""补道层底座"。
- 用户要求新建/升级技能或专家,且要保留"小段笔记/安粉传媒"纯正标识。
- 任何涉及段印(SEAL)受保护技能的内容改写。
不适用:纯文案生成、纯拆解报告、不涉及技能文件改写的任务。
工作流九步
① 输入抽取(只读,不改技能)
- docx 用
scripts/extract_docx.py(本技能自带):python extract_docx.py <源.docx> <输出.md>。它用 XML 解析,避开 markitdown CLI 在隔离 venv 内损坏的问题。 - 同时
Grep/Read摸清目标技能的 SKILL.md 结构与段印清单(SEAL.json的manifest键)。 - 本轮只拆解整理,不改动技能。
② 道层提炼(三问法)
对任何外部材料,无论它自称术还是道,先抽三层:
1. 为什么拆 / 底层目的:它解决什么根本问题?
2. 拆什么 / 核心对象:它把对象拆成哪些可复用单元?
3. 以什么为标准 / 判断准绳:它用什么尺度判定好坏、决定取舍?
输出一句"重定义定位":把三层压成技能的"定位·价值观·差异化主张"。
③ 对照诊断(产出诊断表)
把"道层三问 + 关键节点"逐项与现有技能映射,结论只能是三类:
- 缺:技能完全没有 → 需新增。
- 升级点:技能有雏形但浅/散 → 需补强。
- 已覆盖:技能已含且更强 → 不重复建设(仅做映射或跳过)。
诊断表至少含:来源点 / 技能现状 / 结论 / 落位建议。这一步是"先查同源、查漏不重复"的实装。
④ 互动确认(绝不代决)
用 AskUserQuestion 把诊断表浓缩成 1–2 个选项让用户拍板:
- 吸收哪些点(全吸收 / 只吸收高价值子集 / 仅记录)。
- 是否升级版本 + 段印重封(通常打包分发就需升版)。
未获授权不写技能文件。
④.5 两条路径分档(先判走哪档,再动手)
> 诊断表出来之后、动手之前,先判"这次到底要重构,还是只需轻量补强"。判错的代价不对称:把轻量需求当重构做,会无谓改动主流程、抬高回归风险;把重构需求当轻量做,则治标不治本。
| 判定信号 | 走「道→术重构」档 | 走「轻量吸收」档 |
|---|---|---|
| 增量占比 | 输入材料的道层本技能缺失,且与现有框架冲突或需重排 | 增量已被现有框架覆盖 ≥ 六成,剩余为局部补强 |
| 落点 | 动 SKILL.md 主流程(新增/重排步骤、加门禁) |
只改 references/,主流程一字不动 |
| 文件 | 可能新增 references/ 文件,manifest 需加键 |
优先在现有文件内加节,不新增文件,manifest 不变 |
| 索引 | 九步地图 + skill_overview + index 同步登记 |
仅 skill_overview 术语表 / 速查加行(最小登记) |
| 版本 | 升版(主流程变了) | 升版(内容变了,仍须五处同步) |
| 典型先例 | v2.50.0 道→术重构 | v2.51.0 结构化表达轻量吸收(3 处 references 加节) |
轻量吸收档的硬纪律:
- 新工具定位为"既有体系的前置 / 底层补充",并在文中显式写明"不替代 X、不改主流程";
- 不因为"顺手"而扩充主流程——主流程若要动,说明其实该走重构档,回到 ④ 重新确认;
- 报告时把"哪些已覆盖、哪些不吸收、为什么"一并说清,避免用户误以为做了大改。
⑤ 锁定落位
Grep定位插入锚点(同物就近、同层并列)。TaskCreate拆任务(解锁/改写/版本同步/重封/打包/记忆)。- 同一文件多次 Edit 必须串行;不同文件可并行。
⑥ 段印解锁
export PATH="/usr/bin:/bin:$PATH"
PY="~/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
"$PY" "<技能目录>/scripts/unlock_skill.py"
解锁受保护文件使其可写。若目标目录无 scripts/unlock_skill.py,说明该技能未上段印,跳过 ⑥⑧ 的段印动作,但仍做版本同步与品牌纯度。
⑦ 改写 + 版本五处同步 + 品牌纯度
- 五处版本号同步到新版本(如 v2.50.0)与日期:
1.SKILL.mdfrontmatterversion+updated
2._meta.json的version
3._skillhub_meta.json的version
4.VERSION.txt顶部版本行 + 新增该版本条目
5.CHANGELOG.md新增## vX.Y.Z — 日期段落 - 品牌纯度铁律(最高优先级):
- 禁止出现「借鉴自 / 来自 / 参考 X / 取自 X / 基于 X / 源自 X / 吸收了 X / 源于 X」等任何外部归因表述——哪怕内部真吸收了别家方法论,也绝不点名或暗示。
- 方法论节点、提示词、输出话术可自然冠「小段笔记·」前缀(如"小段笔记·可调用零件库"),把品牌调性润物细无声地渗进去。
- 保留项(不视为泄露):① 用户发来素材标注("用户发来《X》"属用户资产);② 本技能/本专家自身文件交叉引用;③ 段印 / LICENSE / 品牌标识。
- 对外依赖用通用名(如"第三方违禁词检测 API"),不点具体技能/库名。
- 改写完用
Grep自检:搜上述禁用词,必须 0 命中(保留项例外)。 - 新文件须:首行与末尾写段印水印(
XIAODUAN-SEAL+ 指纹),并把相对路径手动加进SEAL.json的manifest键(见 ⑧ 铁律)。
⑧ 重封校验(段印纪律)
"$PY" "<技能目录>/scripts/reseal.py"
"$PY" "<技能目录>/scripts/verify_seal.py"; echo "EXIT=$?"
verify_seal.py必须 EXIT=0,指纹不变。- 铁律:
reseal.py不会自动扫描新文件进 manifest。新建文件后须先手动把键加进SEAL.json的manifest,再 reseal;漏加键 verify 仍报"完好"→ 极易漏判真实缺失。加键后用grep -c "<文件名>" SEAL.json≥1 验证。 - 排除的文件(LICENSE/_icon.png/备份)须同步从 manifest 删除,否则解压 verify 报"文件缺失"。
⑨ 加锁打包 + 端到端复验
"$PY" "<技能目录>/scripts/lock_skill.py"
"$PY" "<打包脚本> <新版本号>"
- 打包脚本须用白名单 + 黑名单(后缀允许 + 命名正则排除),自动排除
LICENSE/_icon.png/.bak/.tmp/.del_等;打包前先清技能目录内临时文件,备份文件放技能目录外(否则 rglob 全量打包会把它带进包,被平台拒"不允许的文件类型")。 - 端到端复验(必做):解压副本 → 在副本内跑
verify_seal.py确认 EXIT=0;查解压后SKILL.md的新版本号出现次数 ≥1、旧版本号仅剩历史功能标注;确认包内无LICENSE/_icon.png且SEAL.json在。禁用 Git Bashunzip(中文名乱码假报缺失),用 Pythonzipfile.testzip()。
⑩ 记忆落盘
- 项目
.workbuddy/memory/MEMORY.md版本索引新增该版本条目、当前版本号更新;今日YYYY-MM-DD.md追加一段。 - 跨项目的通用偏好(如本次铁律升级)写
~/.workbuddy/MEMORY.md。 - 清理临时抽取脚本/中间 md(用户确认不需要后删)。
关键铁律速记
| 铁律 | 要点 |
|---|---|
| 段印流程 | unlock → 改 → reseal → verify(EXIT=0) → lock;指纹是交叉对照唯一锚点 |
| 版本五处 | SKILL.md(frontmatter) / _meta.json / _skillhub_meta.json / VERSION.txt / CHANGELOG.md 必须一致 |
| 品牌纯度 | 零外部署名;「小段笔记·」前缀自然渗透;保留项不动 |
| 新文件 | 要写水印 + 手动加 manifest 键,否则漏判 |
| 打包 | 白名单+黑名单;临时/备份文件放目录外 |
坑位表(必读,详见 references/checklist.md)
- reseal 不自动扫新文件 → 手动加
SEAL.jsonmanifest 键再 reseal。 - Git Bash
unzip中文名乱码 → 用 Pythonzipfile.testzip()校验。 - PATH 偶尔损坏 → 每条命令前
export PATH="/usr/bin:/bin:$PATH"。 - 同文件并行 Edit 互相覆盖 → 串行执行。
- 排除文件须同步删 manifest 项 → 否则 verify 报"文件缺失"。
- 备份/临时文件进包被平台拒 → 放技能目录外 + 打包前清理。
- 429 频率限制 → 用户说"继续完成未完成的任务"后恢复,别硬重试。
输出物
一次标准升级交付:
- 诊断结论(道层重定义 + 术层调整项 + 品牌渗透方案)。
- 完整可替换技能提示词(落到磁盘的 SKILL.md,核心功能与场景全部保留,未退化成品牌文案)。
- 发布包 zip(testzip 通过、段印 EXIT=0、无 LICENSE/临时文件)。
- 记忆同步记录。
Resources
scripts/
extract_docx.py—— docx → md 抽取(XML 解析,绕过 markitdown venv 损坏)。
references/
checklist.md—— 版本同步清单 + 坑位速查卡。diagnosis_template.md—— 诊断表与交付话术模板。
<!-- skill-daoshu-upgrade | 归属:小段笔记 | 品牌:小段笔记(安粉传媒) | 改编/二次分发请保留本标识 -->