Training Content Restructure — 培训资料全链路重构
When to Use
用户对已交付的整套培训材料发出"全局调整"指令时触发(移除模块/强化模块/改学练比例/改课程制/借鉴外部方案重构/要求"一致性校验+仅保留最新版本")。单文档小幅修改走 html-ppt 的 training-document-cascade 即可,本技能管整库重构。
当用户对已交付的整套培训材料发出"全局调整"时使用(实测场景:移除 M6 模块、强化 M2/M4、学练比 40/60 重构、2 天制拆 8×2h 课程制)。本技能是单文档级联同步(见 html-ppt/training-document-cascade.md)的整库升级版。
触发场景
- 移除某模块全部内容(如 M6 服务边界与角色工作法)
- 强化指定模块(概念/边界/框架)
- 学练比例重构(40% 学习 + 60% 实战/探讨)
- 课程形式变更(2 天集中 → 8×2 小时课程制)
- 借鉴外部课程方案重构(结构/详细安排/考核权重化)
交付物全景(OPT 培训材料标准族)
01-培训大纲-vN.M.md ← 协调件(唯一结构基准)
对内-讲师/ 01-课程教材(内容源头)02-讲师手册 03-沙盘剧本 04-测试题库 05-培训PPT
对外-学员/ 01-作业模板 02-工具包 03-学员手册 04-在线练习系统(生成物) 05-练习题库
生成管线:_practice_bank.json → _build.js → 04-在线练习系统-vN.M.html → OSS 部署
执行模式(按序)
1. 设计先行:大纲即协调件
- 主代理亲自改写大纲(v0.x 升级),锁定新结构/时长/口径,再派子代理;不要委托大纲设计
- 旧版大纲文件保留到所有在途子代理完成后再删(子代理任务写明读
01-培训大纲-v0.x.md,文件消失会导致它们读错或失败) - 结构性变更(如拆课制)先核算总时长与 40/60 比例再排课表
2. 黑名单词汇制度
- 定义被删模块的术语黑名单(实测:三本账/双清单/三不接/T1 四维/合同语言/分轨工作法/服务边界与角色工作法)
- 铁律:正文零出现;修订说明/版本块/变更记录区豁免(历史性提及合法)
- 区分"长得像黑名单的框架术语":五层封装的"责任边界"层名、M3 责任容器、人机边界语义——必须保留并写入任务 context
- 统一替换口径(接不接→Workflow 适配性判断;三本账叙事→"我们是谁+Workflow 是什么+能解决什么")
2b. 语义级黑名单扫描(字面词清零 ≠ 内容清零,实测踩坑)
- 字面黑名单 grep=0 之后,用户仍可能发现残留——被删模块的内容常以不含字面词的措辞存活。实测:M6 移除后题库仍残留"对赌条件""T1 升格四维评估"题,字面黑名单完全扫不到
- 语义词族必须另列并单独扫(按被删模块的概念族发散,商业筛选类 M6 实测词族):对赌 / 升格 / 四维评估 / 客户筛选 / 接洽四步 / 破冰探底 / 引流 / 沙龙 / 期望管理 / 报价工具 / 替代管理岗 / 免费工具
- 命中 ≠ 删除:语义命中先对照教材原文核对——教材仍保留的概念(实测:"能力驱动/焦虑驱动客户"是 M1 教材原文口径)属合法内容;只删教材里已不存在的框架(升格四维、对赌结构谈判)
- 题库/练习系统是重灾区:题干、选项、解析三处都要扫;替换题保持模块分布与题型配比不变,并在修订说明记录换题清单
- 练习系统改题且构建管线已删时:从 HTML 内联
const BANK=正则括号配平提取 → json.loads → 按 id 改 →json.dumps(ensure_ascii=False, separators=(",",":"))+<转\u003c→ 整块回写 → 重新部署 → urllib 拉线上 md5 对比
2c. 比例/结构类要求必须在产物"可见结构"中体现(实测踩坑,用户纠正)
- 计划层达标 ≠ 产物层达标。实测:学练 40/60 写进了大纲与教材时间盒,但 PPT 里每个实战环节只有 1 页浓缩页(9/67 页 = 13%)——用户翻 deck 时"看不到练习内容",提出复核
- 验收比例类要求(学练比/实战占比/双线内容)时,必须核算产物层的可见占比:PPT 实战页数/总页数、手册实战页占比、作业页是否在显眼位置。课时占比 60% 的环节在 deck 里应有 ~30% 页面
- 实战环节扩页分解模板(每环节 1 页浓缩 → 2-3 页实内容):①任务说明页(背景卡+任务+要求)②规则/流程页(时间盒+互评规则+操作指令)③产出模板页或参考答案页(填空模板/判据陈述示范/第一刀)
- 内容源冲突时以教材为准:子代理任务书与教材原文冲突(时间盒/术语),指令中写明"与教材逐字级一致",子代理按教材修正并在汇报中说明
3. 并行子代理波次(3 并发上限)
- 依赖链:大纲 → 教材(内容源头)→ 讲师手册/题库/剧本/作业/工具包 → PPT/学员手册 → 生成物重建+部署
- 每个任务 context 必备:新大纲路径、黑名单、替换口径、保留铁律、改造清单、输出路径、版本块要求、校验要求(grep 黑名单=0 + 结构抽查)
- 波次间依赖必须严格;同一波次内任务彼此独立
4. 版本引用同步
- 文件升版后全库 grep 旧版本串统一替换(实测:
03-沙盘剧本-v0.1→v0.2→v0.3、04-测试题库-v0.1→v0.2 各漏 1-2 处) - 并行波次产物会漂移:波次 2 的文件在波次 1 文件升版前就写好了版本块(实测:讲师手册写"作业模板-v0.2"时 v0.3 尚未存在、剧本写"大纲-v0.4"时 v0.6 未存在)——终检必须逐文件扫"配套"行指向的版本是否仍存在
- 终检再扫一轮旧版本引用
4b. 结构术语迁移清扫(结构变更类重构必做)
- 课程结构变化时,旧结构的术语也会残留(实测:2 天制→8 课制后,剧本"Day 2 下午沙盘"/题库"Day 2 下午"/作业模板"认知测验 Day 2 已完成"/工具包"Day 2 学习提升"等 6 处漏改)
- 终检加 grep 旧结构词(
Day ?[12]、晨间回顾、第 X 天),映射到新结构词(课号、课间回顾),逐处人工确认上下文后替换 - 同理适用于其他结构轴切换(模块编号、阶段命名、分组方式)
5. 七域终检脚本(一次跑完)
结构完整性(文件齐全/无旧版残留)→ 日程一致性(大纲↔教材↔手册时长逐字比对)→ 口径合规(黑名单+真实姓名,修订说明豁免)→ 题库(题数/模块分布/答案-选项位置/跨库重复)→ HTML 制品(页数/内联题数)→ 版本引用(零旧引用)→ OSS 线上一致性(本地 md5 vs 线上 md5,urllib 拉取对比)
6. 仅保留最新版本
- 删除所有 v0.x 旧文件、临时文件(
_*.md/_*.png)、__pycache__ - 用户说"仅保留最终交付结果/移除多余内容"时,构建管线也一并删(
_*.py/_build.js/_practice_bank.json/_build_template.html)——题库源可从练习题库 MD 或练习系统内联 BANK 恢复(恢复路径见 2b),不留脚本不算丢资产 - 保留:活文档(决策审计轨迹)+ 用户提供的参考源文件(docx 等,永远不删)
- 删前确认无其他文档引用;删后重跑终检确认零残留
子代理故障恢复(实测三类)
- 配额 403(usage limit):重派同一批任务即可(当前模型),任务定义无需改
- 会话存储写入失败("turn was stopped because session storage could not be written"):文件已落盘但最终汇报丢失——不要重跑任务,直接 stat/read/grep 验证产物文件;磁盘充足时属瞬时故障
- 迭代上限中断(max_iterations):子代理会留"收尾未执行"说明(notes 裁剪/验证/删旧版)——主代理接管:跑遗留脚本、补 Playwright 实测、删旧版
校验脚本自身陷阱
- f-string 里写正则
\n会被转义成真实换行;("M2", "105'")再拼M{m}会变MM2——正则模板变量传裸值 - 豁免判断:修订说明不一定在文件头 12 行内(HTML 单行结构可能在第 400+ 行);用"上下文窗口含 修订说明/变更记录/移除/已删除"判定,或人工逐条确认
- read_file 会把 UTF-8+CRLF 的 .md 误判为 binary(
is_binary: true)——用 execute_codeopen(encoding='utf-8')读取 - 子代理报告"完成"≠文件正确:批次完成后独立校验(行数/结构标题/黑名单 grep/页数),尤其 summary 含警告时
参考文件
references/html-artifact-verification.md— HTML 制品(PPT/手册/练习系统)Playwright 验证选择器陷阱与断言模式