配置收敛:
- 端口/DB名/产出根/榜单目录单源化到 mcn-work-shop/config.json,代码层统一经 load-config.js 读取
- 新增 get-port.js 供 start.bat 读端口(bat 内嵌 node -e 会被 cmd 截断,读到的是兜底值)
- start.bat 修复失效的 managed node 路径(原写死 22.22.2 已不存在),改为遍历 versions 自动探测
复盘诊断页(真 bug 修复):
- 问题清单严重度全部显示成绿色 + 修改建议不显示:模型输出 {sev:'high',fix} 与前端读取 {severity:'高',suggestion} 字段名与取值均不匹配
- 前端新增 normIssue 归一化,兼容 sev/severity/level 与中英取值,并回补所属维度显示
- 在 submit-review-tasks 与诊断/复盘 prompt 中固化 issues_json 字段契约,从源头防 schema 漂移
分镜提示词:
- 原创选题(video_id 为空)原本无生成入口(分镜按 video_id 查询)
- listStoryboards 支持按 rewrite_id 查询,前端放开入口、切版本重查,并补落库指令(此前入库靠模型自由发挥)
榜单展示:
- 期号改为显示区间「08/31 ~ 09/06」,避免被误读为单日(期号=该周周一)
- 后端新增 collectRanges,从落盘文件读真实 dateStart/dateEnd 随 API 返回(日榜 start=end 不显区间)
其他:
- 清理 dsh 环境废弃后的历史叙述类废话(16 文件约 18 处),文末变更记录区保留
- 新增 docs/工作台UI规范.md(设计 token / 布局 / 8 页面路由 / 12 类组件 / 9 条已知坑)
21 KiB
变更日志(主 SKILL.md frontmatter last_change 历史归档,09-04 起)
用途:SKILL.md frontmatter
last_change字段的历史明细归档处(该字段仅保留最近一次变更的一行摘要,完整明细按日期记于此)。 维护规则:每次变更 SKILL.md 时——① 在下方按日期追加一条(新在上);② frontmatterlast_change更新为当次一行摘要。 本文件位于references-add/(运行时与标准库取并集加载,不影响创作执行逻辑,仅供维护追溯)。
2026-09-10(工作台配置收敛:端口/DB/目录单源化,代码层统一引用 config.json)
- 触发:用户问「这些设定能否用配置,所有文件和脚本都引用,避免有调整时到处修改」。确认范围:只收敛代码层(不动文档/技能规范),配置放
mcn-work-shop/config.json。 - 目标:工作台散落在 server.js / dsh-data.js / 4 个辅助脚本 / 前端 data-pages.js / start.bat 里的硬编码设定(端口 8900、DB 名 mcn-plugin.db、产出根 MCNSkill项目、榜单目录),统一收进 config.json,代码层一律从配置读,调整只需改 config.json 一处。
- 新增:
mcn-work-shop/config.json:单一配置源(port / dbName / outputRoot / businessDataDir / extraRoots)mcn-work-shop/load-config.js:配置读取唯一入口 + 默认值唯一来源(config 缺失/损坏回退 DEFAULTS)
- 改动:
server.js:require('./load-config')取 CFG;PORT_BASE = argv[2] || CFG.port(argv 端口仍优先);DEFAULT_ROOT/path.join(ROOT, CFG.dbName)从 CFG 读;saveConfig合并写盘保留其它字段;错误提示「mcn-plugin.db」→ CFG.dbName 动态dsh-data.js:删本地 loadCfg,改用 loadConfig;DSH_DB = path.join(__dirname, CFG.dbName);榜单目录path.join(...CFG.businessDataDir)build-create-prompts.cjs/submit-review-tasks.cjs/poll-create-tasks.cjs/poll-review-tasks.cjs:DB / API 端口 / prompt 内 dbName 字面量 → CFG 动态public/data-pages.js:新增const BASE = location.origin;SKILL_HINT_VIDEO_PARSE / SKILL_HINT_ANALYZE / saveHintOf 里的http://localhost:8900全部改 BASE 动态(前端读不到 server 端 config.json,用 location.origin 让回调地址端口自动跟随当前访问地址)start.bat:端口从 config.json 读取(for /f+ load-config),不再写死 8900
- 踩坑:
load-config.cjs用.cjs扩展名时,require('./load-config')无扩展名解析会 MODULE_NOT_FOUND(Node 不会把 .cjs 作为无扩展 require 的解析目标)→ 重命名为load-config.js(无 package.json,默认 CommonJS)后所有引用自动生效。node --check 只查语法不执行 require,此坑在运行时才暴露。 - 验证:8 文件 node --check 全通过;
loadConfig()正确读回 config.json 全字段;工作台重启 HTTP 200(端口 8900、产出根 MCNSkill项目 均从 config 正确读取)。
2026-09-10(dsh 部署环境废弃:三环境 → 两环境,判定简化为一步)
- 触发:用户确认「第一步 技能路径含
.dsh路径段 ② dsh 部署环境 —— 没有这个环境了」。实测依据:~/.dsh/skills/不存在、~/.dsh/mcn-plugin.db不存在、~/.dsh下仅剩profiles/、D:\dshworkspace整个目录不存在。 - 判据 v3(一步 · 仓库特征判定):删除
.dsh路径段判定步骤,仅保留git -C {技能目录} rev-parse --show-toplevel返回仓库根 = ①开发机、失败 = ②用户环境(无 git 兜底向上找.git)。环境模型由三环境精简为两环境。 - 产出结果不变:两环境(开发机/用户环境)产出本就同构(桌面
MCNSkill项目/),仅判定依据简化。 - 改动范围:
- 判定层:
V1.0/references-add/路径配置.md、Lite1.0/references-add/路径配置.md、subskills/mcn-dou-analysis/references/路径配置.md、subskills/mcn-video-prompt/references-add/路径配置.md(判定表/执行规则/解析规则/变更记录,v3) - SKILL 层:
V1.0/SKILL.md(榜单读取 71/78、外部技能依赖 dsh 副本删除、产出路径表述)、Lite1.0/SKILL.md、subskills/mcn-dou-analysis/SKILL.md(42/44/51/52/58/59/82/95 行)、subskills/mcn-video-prompt/SKILL.md(502/505/531-539)、subskills/mcn-data-insight/SKILL.md(90-96/116 行) - 标准库:5 份
references/规则/路径引用规范.md(「三种机器」→「两种机器」)、references/创作流程规范.md、references/创作流程/{11_脚本检查和诊断,4_账号设定解析和确认}.md、references/接口调用/{MCP_工具调用规范,自动化任务清理规范}.md - 数据源层:
subskills/mcn-data-insight/scripts/fetch_week_ranks.py(删.dsh分支代码)、mcn-work-shop/dsh-data.js(删isDshDeploy分支 + 注释)、mcn-work-shop/public/data-pages.js(SKILL_HINT_RANKING + 写库注释)、subskills/mcn-data-insight/subskills/{douyin-rise-ranking,douyin-weekly-surge,douyin-content-surge,douyin-daily-hot}/SKILL.md、references/规则/抖音数据规则.md - 账号分析层:
references/账号数据分析方法.md、references/feature/{01_获取账号信息,03_提炼账号设定,04_分析视频数据,06_生成账号设定卡片}.md、references/铁律避坑规则/账号信息获取执行避坑.md(删「dsh 原库」)、references/浏览器搜索抖音账号操作规范.md(159/175 行 browser-harness dsh 部署环境) - README:
references-add/README.md(两处)、subskills/mcn-dou-analysis/references-add/README.md、subskills/mcn-video-prompt/references-add/README.md、subskills/mcn-video-prompt/references/README.md
- 判定层:
- 残留核对:全树扫描
.dsh/dshworkspace/dsh 部署/dsh 环境/dsh_MCNProject/②dsh/③用户环境——当前有效规则零残留,剩余命中全部为豁免三类:①变更记录/变更日志历史行;②「09-10 起 dsh 环境已废弃」说明文字;③路径引用规范.md用户级路径示例{主目录}/.dsh/...(DSH 工具配置目录,非部署环境)。工作台重启验证 HTTP 200,dsh-data.js/fetch_week_ranks.py语法校验通过。
2026-09-10(路径治本:环境判定锚点重构为「仓库特征判定」+ 全树写死路径清理)
- 触发:仓库本地路径由
D:\AgentSkill\mcn-video-script迁移至D:\AI技能\mcn-short-video,D:\AgentSkill已不存在 → 全部以「本机是否存在D:\AgentSkill」为锚点的环境判定失效,开发机被误判为「③ 用户环境」(产出落桌面、且误启用 references-add 增量分支)。同时发现技能目录 8 处真实读写路径写死盘符。 - 判据重构(新口径 v2 · 两步):
- 第一步:技能路径是否含
.dsh路径段 → 含 = ② dsh 部署环境 - 第二步:不含
.dsh时,git -C {技能目录} rev-parse --show-toplevel能返回仓库根 = ① 开发机(处于源技能 git 检出内);命令失败 = ③ 用户环境。无 git 环境兜底:从技能目录向上逐级查找.git - ⚠️ 必须
.dsh优先判定——~/.dsh自身也是 git 仓库,先查.git会把 dsh 环境误判为开发机 - 产出根目录三环境结果完全不变,仅判定依据改变
- 第一步:技能路径是否含
- 改动范围(21 个文件):
- 规范层:
references/规则/路径引用规范.md(允许项「锚点禁止用写死盘符」+ 禁令项示例D:\MyRepo+ 豁免表);V1.0/references-add/路径配置.md、Lite1.0/references-add/路径配置.md(判定表/执行规则/解析规则/变更记录);两份references-add/README.md - 标准库副本(4 份
路径引用规范.md同步):subskills/{mcn-data-insight,mcn-dou-analysis,mcn-script-review,mcn-video-prompt}/references/规则/ - 子技能判定节:
subskills/mcn-dou-analysis/{SKILL.md,references/路径配置.md,references-add/README.md}、subskills/mcn-video-prompt/{SKILL.md,references-add/README.md,references-add/路径配置.md,references/README.md} - MCP 文档:
references/接口调用/MCP_工具调用规范.md、subskills/mcn-dou-analysis/references/接口调用/MCP_工具调用规范.md(开发/非开发环境判定) - Lite1.0:
SKILL.md外部技能依赖段落(见下)
- 规范层:
- 真实读写路径修复(B 类 8 处):
mcn-work-shop/server.js:新增BROWSER_LOCK_FILE = path.join(ROOT, '.browser-lock')、SESSION_CWD = ROOT;2 处const cwd与BROWSER_LOCK改用常量;SESSION_CWD_PATTERN由'%mcn-workshop%'放宽为'%mcn-work%'(同时兼容历史会话 mcn-workshop 与新建会话 mcn-work-shop,避免 6 小时清理对旧会话失效)mcn-work-shop/build-create-prompts.cjs/submit-review-tasks.cjs:prompt 内 DB 绝对路径 → 改用文件内既有DB常量插值V1.0/SKILL.md第 5 条:文档里的运行时cwds=["D:\AgentSkill\mcn-workshop"]→ 改为<工作台目录>(由 server.js 从 ROOT 动态推导)
- Lite1.0 外部技能依赖修正(09-02 结构变更补同步):原段落仍写「三环境两步判定 +
D:\AgentSkill\mcn-dou-analysis外部路径」,既失效又未同步 09-02「mcn-dou-analysis 并入subskills/」变更。修正为:Lite1.0 目录下无subskills/(实测),未内置该技能;需要账号解析改用完整版「短视频工作台」V1.0,或先把技能同步进Lite1.0/subskills/后按相对路径subskills/mcn-dou-analysis/SKILL.md调用;禁止盘符绝对路径定位。 - BROWSER_LOCK 契约同步:
subskills/mcn-dou-analysis/references/浏览器搜索抖音账号操作规范.md5.6 节锁文件路径由 8 处盘符硬编码 → 改为相对.browser-lock(工作台触发的会话 cwd 即工作台目录),并注明以工作台注入的绝对路径为准。 - 残留核对:全树扫描
AgentSkill剩 18 处(含本条目自身 5 处),全部为豁免类别——变更记录/变更日志行 11 处、frontmatterlast_change摘要 1 处、09-04/09-10 修正说明行 2 处、Lite 技能审计报告历史 2 处、路径引用规范修订脚注 1 处、本条目残留核对说明 1 处。当前规则行零残留。mcn-video-script剩 1 处(变更记录行)、MCNVideo AI剩 3 处(Lite 审计报告历史)。
2026-09-07(S1/S2 产物文件名改名:01_需求理解 / 02_需求补全)
-
决策:产物文件名 01_需求拆分.md / 02_需求拆解.md(旧步骤名「需求拆分任务规划 / 任务需求拆解完善」残留,两词同音近义、与现行步骤名对不上)→ 改名 01_需求理解.md(S1 产物=五板块状态表)/ 02_需求补全.md(S2 产物=归类+AI 补全)。命名口径:编号承担"属于哪步"(01=S1、02=S2),文件名承担"装了什么"(与 03_对标拆解~11_诊断报告 产物语义名体系一致;不采用对齐步骤名方案,避免与 references/创作流程/1_意图识别.md、2_需求完善.md 撞名)。
-
影响面(V1.0 内 9 处,运行时产物文件无需 mv):创作流程规范 L49/L68(行文 01需求理解~08广告植入)、L78、落盘表 L426-427、L452(需求拆分/拆解→需求理解/补全);1_意图识别 L83 User Prompt 引导语「完成需求拆分和任务规划」→「完成需求理解与信息完整度判定」(旧步骤名残留联动清理);11_脚本检查和诊断 L241-243。
-
写入事故复盘(补入失误记录):同文件多处 Edit 并行提交发生写竞态——前一个 replace_all 的成果被并发写覆盖丢失(L49/L68/L427 残留),串行补做后零残留。教训:同一文件多处修改必须串行,禁止并行 Edit;改后全量 grep 验证零残留。
-
D·视觉脚本 → D·视觉短片(全量):S9 格式列举(SKILL.md)、S6 内容形式映射表(F04 测评种草/F07 纯视觉短片)、S9 正文 6 处、创作流程规范 3 处、03_框架节奏/07_脚本格式选择指南 8 处——与工作台需求框/用户既定术语对齐,消除「纯视觉短片→D·视觉脚本」混用。
-
预设钩子 → 开场钩子(全量):S5 选题方案字段(含 10 种开场方式引用)+ S7 大纲回扣语义 + 04_爆款开场/00_口径说明——对外统称「开场钩子」(=S6 场1 段名、工作台需求框 hook 字段同名同义),S5 阶段语义由「预设」改为直接以开场钩子表达。
-
需求框-技能衔接注明(mcn-work-shop/prompts/clarify.md):内容形式 4 项为粗选方向,落创作时细化为 S6 口径(口播→教程/知识分享/盘点,视觉短片→测评/沉浸式);故事框架四词(钩子前置/悬念反转/递进铺垫/先抑后扬)=达人倾向词,由 S6 用叙事形态 F01-F08 + 结构模板(三段式/五段式)定型。
-
规则沉淀(09-07):新增 references/规则/概念分层与源头表述规范.md(先分层再落笔:策略/实现/容器各写源头正文;禁止 X=Y/括注跨文档打补丁,改源头正文;同族术语对外一个总称、改名一次全链路;含开场钩子家族案例);SKILL.md 红线摘要区新增 🔴 索引行;项目级 技能审计检查清单.md 一致性维新增第 11/12 条(概念分层、源头表述自洽),编号重排 1→15,使用方法补层级先于枚举。
-
开场钩子分层表述源头化(5_选题 / 6_框架 / 04_爆款开场·00_):三个源头正文自洽——开场方式(04_ 库 10 种标准分类)由 S5 依据用户要求/账号结构性符号/对标拆解(S3)选定并写入选题方案;S6 场次表「本场钩子」=五类留人机制(悬念提问/反差画面/直击痛点/身份共鸣/利益承诺),场1 的本场钩子用于把 S5 已选开场方式实现为镜头与台词。消除 S5「钩子类型」一词双指(表头改「开场方式」、方案字段行改为单一开场方式成分);不再以对照式/括注维护,概念各归其位。
2026-09-07(S1/S2 五板块归一 + 台词风格降层 + 说话风格词族全链路)
- S1/S2 五维度 → 五板块(顶层集合归一):1_意图识别 / 2_需求完善 顶层一律为 账号设定 / 选题 / 框架 / 大纲 / 广告Brief(与 S2/S3 板块名、S4 输入引用、下游产物链对齐);S1 原「人设信息」行改名「账号设定」;「选题信息/框架信息」后缀去除;SKILL.md 步骤1 描述、创作流程规范落盘表说明(五板块状态表 + 02 容器不补全)同步。
- 台词风格顶层维度降层:S1 判定表删顶层「台词风格」行,语气/语速/口头禅/语言禁忌并入 账号设定·说话风格 子项(保留推荐级);S2 补全策略 D「台词风格补全」并入 A「账号设定补全(含说话风格子层)」,E 重编号为 D;S2 大纲板块明确定位=草稿容器(承接用户已写段落,缺失正常由 S7 生成,不补全、不参与必补判定)。
- 语音层词族全链路统一为「说话风格」(对齐 S4 达人设定⑤说话风格权威字段名):S3 拆解维度行与对标视频表列、S7 输入/自检 3 处、S8 广告植入 4 处、S9 输入与一致性检查 3 处、S11 检查轴 2 处(台词风格一致性→说话风格一致性)、人设设计参考选项十(台词风格设计用→说话风格设计用);「语言风格」仅保留于 S4 卡模板内部作 ⑤说话风格 的子成分描述语(2-3 个形容词层),不再作为对外字段名。S1/S2 内与卡内层级词区分:需求层=板块/子项,卡内=达人设定维度①-⑨。
- S2 大纲板块下游断链修复:7_生成短视频大纲 输入段补「步骤2大纲草稿容器→大纲生成起点和约束」承接句式(对齐 S5/S6 既有模式)。
- 顺带修正:创作流程规范落盘表 05 行「钩子预设」→「开场钩子」(此前改名漏网变体)。
2026-09-07(S5↔S4 字段漂移修复:账号定位补「核心价值类型」7 字段)
- 根因:S4 账号定位重构为 6 字段时漏掉旧模板「②核心价值类型」字段,S5 约束提取仍按旧编号引用(维度①赛道/受众/差异化、维度②核心价值类型)——核心价值实为 S5 选题生成锚点(L304 推导依据)+ 选题方案必填输出字段(core_value_type),非可删引用。
- 修复(用户选方案 1 补字段):S4 账号定位 6→7 字段(赛道定位后插入「核心价值类型:知识/情感/实用/娱乐/观点 选 1,细化参考 人设设计参考选项.md 五、主导价值」;确认清单①、输出模板表、P0 输入约束承接规则同步补行);S5 约束提取 4 行去旧编号改指 S4 现行字段名 + 老卡缺字段兜底(由赛道定位+内容打法推导并回填);参考选项五标注改「账号定位·核心价值类型」;SKILL.md 步骤 4 输出描述同步 7 字段。
- 影响面:仅技能层 4 文件;工作台账号设定为自由 md 无固定字段表单,不受影响;存量人设卡片零迁移(S5 读取兜底)。
2026-09-07(B项收尾:落盘表说明列修正 + 人设设计参考选项对齐 S4 卡模板 + dsh 副本废弃)
- 创作流程规范落盘表 04 行说明列修正:「账号设定 + 人设卡片」→「账号设定 + 达人设定」(04_人设卡片.md 内容 = S4 产出的账号设定+达人设定两个板块,原说明列自指文件名系笔误)。
- 人设设计参考选项.md 编号体系对齐 S4 人设卡片:删除全文旧版「达人维度③/④/⑥/⑧」「账号维度②」编号(源自旧 9 维模板,与 S4 现行「达人设定 6 章节:身份人设/性格人设/外在特质/价值观与底线/说话风格/行为决策 + 账号定位 6 字段」不同源,实锤错位);各章标注改为指向 S4 现行字段(核心性格/气质/小瑕疵/情绪倾向→性格人设,三观→价值观与底线,语态细节→说话风格,专属符号→外在特质·记忆符号,传递感觉→账号定位·差异化定位,主导价值→账号定位·核心价值类型);文件头用途行新增章节归属说明。dou-analysis 子技能知识库副本同文件同步(台词风格设计用→说话风格设计用)。
- 决策记录:dsh 技能副本项目经确认不存在,同步策略更新为「只改 V1.0 源;Lite1.0 默认不动、术语同步由用户手动发起」。
2026-09-04(R73/R74 技能树体量优化)
主 SKILL.md 压缩维护:frontmatter last_change 明细迁移至本文件(历史归档);11 步流程 ASCII 总览图压缩为行式 Gate 链(S1→[G0]→…→[G6]);文件底部新增「阅读分层」说明(🔑 导航行/🚫 红线/无标记正文三类)。
2026-09-04(子技能索引登记 + 外部依赖路径修正)
- 新增「子技能索引(subskills/)」章节:subskills 下 6 个子技能全部登记入主 SKILL.md(browser-harness/lieflat-charts/mcn-data-insight/mcn-dou-analysis/mcn-script-review/mcn-video-prompt),引用一律相对路径
subskills/<目录>/SKILL.md;目录树补subskills/行。 - 修正外部技能依赖段落:mcn-dou-analysis 原「D:\AgentSkill 两步判定」规则废弃(独立仓库不存在,改 subskills/ + dsh 平级
~/.dsh/skills双描述);browser-harness 可执行文件改技能自带 venv 相对路径(原 uv 工具安装已废弃);lieflat-charts 路径改相对。 - 全文件旧绝对路径引用零残留。
2026-09-03(技能更名 + 触发条件补清理场景)
- 技能更名:短视频脚本创作 → 短视频工作台(用户定,对外统一名称;触发方式与引用结构不变)。
- 触发条件新增 🧹 后台任务清理场景:用户问后台任务/清理过期失败任务时按
references/接口调用/自动化任务清理规范.md执行——只清过期或错误失败的一次性任务,禁清未来/周期/运行中任务,删除走宿主工具禁直改库。
2026-09-02(工作台 AI 任务契约与执行铁律)
- 工作台新增第 7 条「AI 任务入口技能契约(P0)」:所有 AI 会话任务入口须遵守功能入口×技能调用契约(prompt=技能前缀常量+业务正文+skills 参数级挂载),新增/修改入口前先读
mcn-work-shop/docs/AI会话任务输入输出对照.md(含新增入口检查清单 7 项)——防裸 prompt 跳步/技能声明混入业务串/BROWSER_HINT 误注入;原第 7/8 条顺延为 8/9。 - 工作台任务执行方式铁律固化:创作/改写/复盘必须走
POST /api/run+ skills 参数,禁会话内手写草稿。 - 调度机制实测定稿 + 端口 8899→8900。
⚠️ 仅记录 2026-09-02 起的变更明细(本文件创建前,更早历史未归档——如确需追溯请查 git 提交历史)。