Files
mcn-short-video/project/短视频脚本创作/V1.0/references-add/变更日志.md
T
maogeigei c48902f063 09-10 工作台:配置收敛、复盘字段契约修复、原创选题分镜支持、榜单期号区间显示
配置收敛:
- 端口/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 条已知坑)
2026-09-10 18:28:42 +08:00

116 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 变更日志(主 SKILL.md frontmatter last_change 历史归档,09-04 起)
> 用途:SKILL.md frontmatter `last_change` 字段的历史明细归档处(该字段仅保留最近一次变更的**一行摘要**,完整明细按日期记于此)。
> 维护规则:每次变更 SKILL.md 时——① 在下方**按日期追加**一条(新在上);② frontmatter `last_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/浏览器搜索抖音账号操作规范.md` 5.6 节锁文件路径由 8 处盘符硬编码 → 改为相对 `.browser-lock`(工作台触发的会话 cwd 即工作台目录),并注明以工作台注入的绝对路径为准。
- **残留核对**:全树扫描 `AgentSkill` 剩 18 处(含本条目自身 5 处),**全部为豁免类别**——变更记录/变更日志行 11 处、frontmatter `last_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 提交历史)。