1. 目录 mcn-work-shop -> mcn-workshop(空间分组名取会话 cwd 的目录名,只改字符串无效,必须真改名) 2. 全仓替换 mcn-work-shop -> mcn-workshop:37 文件 121 处;历史日志按沿革句规矩保留当时目录名 3. 任务进度可见:/api/run/status 产出 已运行时长/工具调用/最近动作/停滞判定(读会话日志尾部),前端新增右下角常驻面板,四处任务入口接入 4. 会话归属目录配置化:新增 config.sessionCwd(留空=工作台自身目录),现指向 D://AI技能//mcn-workshop,使任务显示为命名分组而非「未分组任务」 5. 修前端轮询静默缺陷:连续 3 次查询失败即提示服务断开(原逻辑静默空转到 15 分钟超时,用户零感知)
17 KiB
17 KiB
技能审计报告 · 短视频工作台 V1.0
审计对象:
project/短视频脚本创作/V1.0/(主技能 + 6 子技能) 审计依据:技能审计检查清单.md(15 项 / 六类) 审计日期:2026-09-14 审计方式:链路层优先 —— 全树机械化交叉验证(相对链接校验 / 硬编码扫描 / 术语与编号分布)+ 权威源逐文件精读(SKILL.md、创作流程规范、概念分层与源头表述规范、索引_知识素材库、创作流程 5/6/7/10、子技能/工作台关键文档) 本报告只出结论与方案,未修改任何技能文件(遵守「方案与执行分离」P0)
一、总览
| 等级 | 数量 | 一句话 |
|---|---|---|
| P0 | 0 | 未发现产物链断裂、标准库账号名硬编码等红线违规 |
| P1 | 8 | 1 处上下游断链、1 处契约表漏登记、1 处交付门禁口径相反、1 处旧名+乱码、2 处术语未覆盖改名、1 处 dsh 死分支仍在活规则、1 处 dsh 历史叙述未清 |
| P2 | 7 | 可选标记/字段名/标题格式/索引文件名/阶段枚举/示例账号名/增量库旧口径 |
问题总表
| # | 检查点 | 等级 | 位置 | 问题 |
|---|---|---|---|---|
| 1 | 6 引用链路 | P1 | 7_生成短视频大纲.md:31 ← 6_生成短视频框架.md:280 |
S7 声明"从 S6 场次结构表取模板骨架(模板A/B)",S6 明文模板A/B 非执行指令、场次表不含模板 → 上游无此字段 |
| 2 | 7 引用路径 | P1 | mcn-workshop/docs/AI会话任务输入输出对照.md + SKILL.md:81 |
契约表只登记 5 个前缀常量,实际 8 个入口缺失 2 个(SKILL_HINT_ANALYZE、SKILL_HINT_VIDEO_PARSE),与 SKILL.md 第 7 条 P0 冲突 |
| 3 | 8/10 一致性 | P1 | 创作流程规范.md:97 ←→ SKILL.md:296-298 |
「八类35项自检」= 交付前强制(规范);承载它的 S11 = 可选(SKILL.md)→ 门禁口径相反 |
| 4 | 8 术语统一 | P1 | SKILL.md:223、5_生成短视频选题.md:187/229/255/294/411 |
钩子家族 4 种叫法(开场钩子/开篇钩子/钩子预设/钩子策略),违反 09-07 概念分层规范 §三 |
| 5 | 8/9 一致性 | P1 | 创作流程规范.md:406,408 |
旧技能名「脚本创作技能/」残留 + 单独一个乱码字符(读��最新) |
| 6 | 7 引用路径 | P2 | mcn-data-insight/subskills/douyin-rise-ranking/references/core_workflow.md:127,260,263 |
相对链接层级差一级(../../SKILL.md 应为 ../../../;scripts/…、references/… 缺 ../) |
| 7 | 9 字段完整性 | P1 | 5_生成短视频选题.md:227 |
输出声明漏「开场钩子」「共鸣切入点」(模板与规范都要求) |
| 8 | 14 红线 | P1 | mcn-dou-analysis/SKILL.md:160、feature/05_解析视频.md:55、接口调用/本地接口调用规范.md、铁律避坑规则/账号设定执行避坑.md:25 |
dsh 环境 09-10 已整套下线,但 dou-analysis 侧 dsh 接口分支仍作活规则 |
| 9 | 14/15 | P1 | SKILL.md:78、mcn-dou-analysis/SKILL.md:42、references/路径配置.md:15,28、浏览器搜索抖音账号操作规范.md:175 |
「dsh 已下线」历史叙述未按 09-10 处置原则清干净(同文件其它位置已清) |
| 10 | 2 编号一致性 | P2 | 创作流程规范.md:21-22 ←→ SKILL.md:153,296 |
S11 的 🔶 可选标记两文档不一致(规范 ⑪ 未标,SKILL.md 标了) |
| 11 | 5 字段归属 | P2 | 创作流程规范.md:246/337、6_生成短视频框架.md:135、10_生成短视频分镜脚本.md:107 |
A 格式场次标题要求 地点·时间,S6 场次列只给功能定位名;S10 模板又用 {场次名称} → 字段来源与命名三处不齐 |
| 12 | 9/10 一致性 | P2 | 创作流程规范.md:266/275 |
B·Vlog 规则行写 (动作/语气),示例行与 S10 都写 (动作/表情/语气) → 漏「表情」 |
| 13 | 10 格式不矛盾 | P2 | 10_生成短视频分镜脚本.md:107/119 ←→ 创作流程规范.md:222 |
S10 模板用 ### 场1:{场次名称}(Xs-Xs) 情绪:{情绪值},A 格式用加粗 场1:地点·时间(Xs-Xs) 情绪:{值} |
| 14 | 15 冗余 | P2 | 索引_知识素材库.md:65,67 |
索引文件名与实际文件名不一致(星爷+沈腾 vs 星爷 + 沈腾;本山+憨豆 vs 本山 + 憨豆) |
| 15 | 15 冗余 | P2 | 索引_知识素材库.md:2 |
阶段枚举「S5→S7→S9→S11」漏 S6、S10(二者均核心依赖知识库) |
| 16 | 14 红线 | P2 | 帮助文档.md:43 |
触发示例用真实账号名「俊希」,与规范 §六 替换对照表 + 验证 grep 清单自相矛盾 |
| 17 | 15 冗余 | P2 | references-add/通用知识/03_Seedance与换皮工具箱.md:33 |
仍把「括号内心独白(字幕)」列为技巧,与「内心独白已降级统一为旁白」定稿冲突 |
二、逐检查点结论
一、流程清晰(检查点 1-3)✅ 基本通过
- 步骤顺序:SKILL.md 流程总览(L148-154)与
创作流程规范.md§一索引表(L10-23)逐条对齐,①→⑪ 顺序无错乱。✅ - 编号连续:SKILL.md 与规范均覆盖 S1–S11,无跳号;产物链 05→06→07 有明文 P0 铁律(规范 §五 L458-464)。✅
- 无跳步:自动模式"后台静默 ≠ 跳步"表述清晰(规范 L56、SKILL.md L358)。✅
- ⚠️ 唯一瑕疵:🔶 可选标记两文档不一致 → 见问题 #10(P2)。
二、边界清晰(检查点 4-5)✅ 基本通过
职责声明齐全,是本技能做得最好的一块:
| 边界声明 | 位置 | 结论 |
|---|---|---|
| S6 只搭情绪骨架、不选结构模板 | 6_生成短视频框架.md:128,280 |
✅ |
| S7 只展开分段、不重做情绪 | 7_生成短视频大纲.md:150,204,219 |
✅ |
| S9 不做任何情绪维度重新规划 | 9_生成短视频脚本.md:3 |
✅ |
| S10 保留 S9 内容、不改台词动作 | 10_生成短视频分镜脚本.md:32,166 |
✅ |
| 情绪设计卡归 S6(曾误标 S7 的历史案例已修) | 7_生成短视频大纲.md:150 |
✅ |
⚠️ 但字段归属有一处空白 → 问题 #11:A 格式场次标题要求 地点·时间,而 S6 场次结构表 8 列里「场次」= 功能定位名(如"钩子场"),「地点·时间」无明确产出环节;S10 模板又改叫 {场次名称}。三处命名不齐,建议明确"地点·时间由 S9 从 S6 事件列具象化"并统一字段名。
三、引用链路完整(检查点 6-7)
做对的地方:
- 素材库引用机制正确:
7_生成短视频大纲.md:15明写「知识库 05_极致事件的极致类型映射定库 → 账号适用场景筛条」,符合清单第 7 条"素材库须走知识库 05 间接引用"。✅ - 子技能索引 6 项与实目录、注册名、相对路径全部一致(browser-harness / lieflat-charts / mcn-data-insight / mcn-dou-analysis / mcn-script-review / mcn-video-prompt)。✅
- 相对链接全量校验:100 条相对链接、39 条报错,逐条核对后 37 条为输出模板占位符误报(
[标题](workUrl)、[账号名](accountLink)、[规范](../接口调用/某文件.md)等示例写法),真错 3 处。
真问题:
- ❌ #1(P1)S6→S7 断链:S7 说「从 S6 场次结构表中取对应的模板骨架(三段式参考 S6 模板A,五段式参考 S6 模板B)」,而 S6 第 280 行明确「模板A/B 仅供知识参考,非执行指令:结构模板选择由 S7 执行,S6 不选择模板,也不在场次结构表中标注模板类型」。→ 下游假设的上游字段不存在。建议:把 S7 L31 改为「从知识库
03_框架节奏/01_标准爆款结构模板.md取骨架(S6 模板A/B 仅为同源参考)」,或删掉对 S6 模板A/B 的指向。 - ❌ #2(P1)工作台入口契约表漏登记 2 个入口:契约表 8 行、L127 声明"前缀常量 = CREATE/EXTRACT/STORYBOARD/REVIEW",但
data-pages.js实际还有SKILL_HINT_ANALYZE(L1307 账号数据分析·功能四)与SKILL_HINT_VIDEO_PARSE(L1728 视频解析/刷新·功能五)。SKILL.md 第 7 条(P0)要求"每个入口都必须遵守契约"且"新增/修改入口先读此表"。→ 表本身是漏的,护栏失效。建议:补 2 行(含 skills 数组、prompt 边界要点、代码位置),并同步 SKILL.md L81 的常量清单。 - ❌ #6(P2)
douyin-rise-ranking/references/core_workflow.md相对链接差一级:../../SKILL.md(同级 SKILL.md 用../../是对的,此文件深一层应为../../../)、[scripts/douyin_rise_fans.py](scripts/douyin_rise_fans.py)、[references/dy-rank-api.md](references/dy-rank-api.md)(应加../)。
四、一致性(检查点 8-12)
- ❌ #4(P1)钩子家族术语未覆盖改名:09-07 定稿的《概念分层与源头表述规范》§三要求"对外统一总称只保留一处(开场钩子);改名必须一次覆盖全链路(S 文件 + 知识库 + 工作台)"。实际残留:
开篇钩子(S5 L187 小节标题)、钩子预设(SKILL.md L223;S5 L166/L265)、钩子策略/开篇钩子策略(S5 L229/255/294/411)。只有模板字段(S5 L320+)与规范 L431 用了正确的「开场钩子」。建议:以「开场钩子」为唯一总称,S5 小节标题与 3 处「钩子策略」统一,SKILL.md L223 同步。 - ❌ #3(P1)交付门禁口径相反:
创作流程规范.md:97「无论何种模式,脚本交付(Gate-6 / 自动模式生成创作回顾)前必须完成八类35项自检;其中前3秒钩子…为一票否决项…不过禁止生成创作回顾/交付」;而SKILL.md:296-298「步骤 11 脚本检查和诊断 🔶 可选步骤…S11 是可选质检,由用户决定是否执行」。八类35项清单(知识库/09_脚本诊断/脚本质量自动检查清单_八类35项.md)正是 S11 的工具。建议:明确"八类35项自检 = 交付前强制(可内嵌于 S9 收尾),S11 完整诊断报告 = 可选",并在两处统一表述。 - ❌ #5(P1)旧技能名 + 乱码:
创作流程规范.md:406「相对于技能根目录脚本创作技能/」——09-03 已更名「短视频工作台」,且 SKILL.md L381 记载的旧名是「短视频脚本创作技能」,两处记载的旧名本身也不一致;创作流程规范.md:408有 1 个乱码字符(AI 直接读��最新文件内容)。 - ❌ #7(P1)S5 输出声明漏字段:
5_生成短视频选题.md:227「5 个选题方案(每个含:主题 / 切入角度 / 爆款逻辑 / 差异化 / 人设匹配度 / 目标体感)」漏「开场钩子」「共鸣切入点」,而模板(L320+)与规范 L431 都要求。 - ❌ #12(P2)B·Vlog 规则行漏「表情」:规范 L275
角色名(动作/语气):台词vs 示例 L266 / S10 B4角色名(动作/表情/语气):台词。 - ❌ #13(P2)S10 与 A 格式的场次标题格式假设不一致(
###三级标题 vs 加粗;{场次名称}vs地点·时间;{情绪值}vs{值})。 - ✅ 概念分层(检查点 11)通过:开场方式(策略层,S5 选)↔ 本场钩子(实现层,S6 场次表列)职责分层清楚,S5 L192 明写"S6 用「本场钩子」五类留人机制将其实现"、S6 L140 明写"场1 的本场钩子把 S5 已选定的开场方式实现出来",无跨文件对照表残留。✅
五、红线(检查点 13-14)
- ✅ 产物链完整:
创作流程规范.md§五 给出唯一权威落盘表 + 三模式落盘清单,SKILL.md §五 完全对齐。✅ - ✅ 标准库硬编码:创作流程 / 知识库 / 素材库三区未发现账号名、角色名硬编码;素材库具体物品、产出目录
MCNSkill项目/均属允许项(未误判)。✅ - ❌ #8(P1)dou-analysis 侧 dsh 死分支未随 09-10 下线(4 处,均作活规则):
mcn-dou-analysis/SKILL.md:160「① 环境有 MCN 插件接口(dsh)时补录account_video_source…② 工作台环境…」references/feature/05_解析视频.md:55「若当前环境有 MCN 插件接口(/mcn/api/video/source/backfill,…基地址$env:DSH_WEB_URL或 3081/3080)」references/接口调用/本地接口调用规范.md(整份文件基于DSH_WEB_URL/ 3080 / 3081 基地址判定)references/铁律避坑规则/账号设定执行避坑.md:25(连带引用上述规范) → 执行者可能去调用已不存在的本地接口。建议:统一口径为"工作台环境走POST /api/import/account",删除 dsh 分支;本地接口调用规范.md若整体失效则随技能一起下线(或改写为工作台 API 规范)。
- ❌ #9(P1)「dsh 已下线」历史叙述未清干净(同文件其它位置已清,属清理不彻底):
SKILL.md:78「dsh 侧已整套下线(09-10):~/.dsh/mcn-plugin.db与D:\dshworkspace均不存在」mcn-dou-analysis/SKILL.md:42、references/路径配置.md:15(正文公告)、:28(护栏带"已整套下线(09-10)")、references/浏览器搜索抖音账号操作规范.md:175→ 与 09-10 已采纳的处置原则("历史叙述全删、陈述不存在的事物全删、护栏只留禁止做什么")及references-add/路径配置.md:26的已清理写法不一致。
- ❌ #16(P2)
帮助文档.md:43触发示例含真实账号名「俊希」;规范 §六 替换对照表把"俊希账号"作为待替换示例、L515 验证 grep 把俊希列入检索清单 → 自相矛盾。
六、冗余(检查点 15)
- ❌ #14(P2)
索引_知识素材库.md两处文件名与实际不符:抽象化创作体系(星爷+沈腾喜剧手法)/错位化-反常化创作体系(本山+憨豆喜剧手法)vs 实际文件名带空格(星爷 + 沈腾喜剧手法)/(本山 + 憨豆喜剧手法)→ 按索引定向读取会取不到文件。 - ❌ #15(P2)
索引_知识素材库.md:2阶段枚举「S5选题→S7大纲→S9脚本→S11诊断」漏 S6(核心依赖 03_框架节奏 + 07_情绪共鸣)与 S10(核心依赖 10_分镜拍摄)。 - ❌ #17(P2)
references-add/通用知识/03_Seedance与换皮工具箱.md:33仍把「括号内心独白(字幕)」列为技巧,与"内心独白已降级、统一用旁白"的定稿口径冲突。(其余 7 处「内心独白」出现在「禁止项 / 开场类型名 / 第三方词库」语境,属豁免,未误判。) - ✅ 未发现"同一概念多处重复定义"的结构性冗余——S9 格式定义已收敛到规范 §三 + 知识库
03_框架节奏/07。
三、机械扫描支撑数据
| 项目 | 结果 |
|---|---|
| 扫描范围 | V1.0 全树 264 个 md(已排除 browser-harness / lieflat-charts / nuwa-skill-main / 参考skills / vendor / tmp 等原样分发目录) |
| 相对链接 | 100 条,报错 39 条 → 经逐条核对:37 条占位符误报、2 类真错(见 #1、#6) |
| 硬编码扫描 | 盘符/废弃环境/旧仓库名/账号名/本地端口/桌面字面量 六类全扫;当前规则行零违规,剩余命中全部落在四类豁免(禁止性示例行、变更记录、路径配置判定表、第三方技能原创文档) |
| 术语分布 | 钩子家族 4 叫法(#4)、内心独白 8 文件 10 处(1 处真冲突 #17)、「框架层」仅 1 文件命中(S6 第一步,S6 内三步定位词完整,非问题)、赛道编号 S01-S27 曾被正则误判为步骤号(非问题) |
| 步骤编号 | S1–S11 在 SKILL.md / 规范 / 11 个步骤文件全链路可追溯,无跳号 |
扫描脚本与原始输出(只读产物,可复跑):
tools/_audit_scan.py、tools/_audit_scan.txt
四、修复方案(待授权,未执行)
建议按"一次改完一个主题、改一处验一处"的节奏分 3 批:
| 批次 | 主题 | 涉及 | 建议动作 |
|---|---|---|---|
| A | 口径统一(P1,影响执行) | #1 #2 #3 #4 #7 | 6 个文件:S7 L31 改指向;契约表补 2 入口 + SKILL.md L81;S11 门禁口径两处统一;钩子术语统一为「开场钩子」;S5 L227 补 2 字段 |
| B | dsh 残留清理(P1,红线) | #8 #9 | 5 个文件:dou-analysis SKILL.md / feature 05 / 本地接口调用规范 / 账号设定执行避坑 / 路径配置 + 主 SKILL.md L78;活分支改为工作台 API,历史叙述按 09-10 原则删净 |
| C | 细节对齐(P2) | #5 #6 #10–#17 | 索引文件名与阶段枚举、规范乱码与旧名、B 格式漏「表情」、S10 标题格式、帮助文档示例账号名、增量库旧口径 |
修复完成后按规范 §七执行"逐条读取→逐条修改→逐条验证",并把本轮发现沉淀进
失误与规避记录.md(新增条目)与references-add/变更日志.md。
五、本次未覆盖(诚实声明)
按"链路层优先"口径,以下未逐字通读,若需深入请单独立项:
references/知识库/66 个方法文件的内容级审计(本次只做跨文件术语/引用交叉验证)references/素材库/10 个库文件的字段级审计(15 字段一致性未逐库核对)- 第三方原样分发子技能内部(browser-harness、lieflat-charts、mcn-video-prompt/参考skills、nuwa-skill-main)——按"上游原包不改"约定跳过
mcn-workshop前端/后端代码级审计(本次只核了 AI 任务入口契约这一条链路)