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 条已知坑)
This commit is contained in:
maogeigei committed 2026-09-10 18:28:42 +08:00
1 parent 3926d742fd
commit 0165144292
58 files changed
+895 -263

No files matched your search

+9 -11
View File
@@ -8,8 +8,8 @@ description: >
触发场景:写脚本、创作短视频、生成脚本、拆解对标视频、分析爆款视频、
诊断脚本质量、设计账号人设、选题策划、生成分镜、广告植入设计、生成创作回顾。
version: "1.0"
updated_at: "2026-09-07"
last_change: "09-07 产物文件名改名:01_需求拆分/02_需求拆解 → 01_需求理解/02_需求补全(对齐产物语义名体系,V1.0 内 9 处引用零残留;明细见 references-add/变更日志.md)"
updated_at: "2026-09-10"
last_change: "09-10 工作台配置收敛:端口/DB/产出根/榜单目录单源化到 mcn-work-shop/config.json,代码层(server.js/dsh-data.js/4 辅助脚本/data-pages.js/start.bat)统一经 load-config.js 读取,前端用 location.origin 动态取回调地址(明细见 references-add/变更日志.md)"
deployment: "source"
agent_created: true
---
@@ -68,15 +68,15 @@ agent_created: true
2. 用内置浏览器打开 `http://localhost:8900`。**注意端口**:本机 8899 可能被 `MiPCAudio.exe`(小米 PC 管家)占用系统级 0.0.0.0:8899 且杀后自愈,工作台默认端口已迁移为 **8900**;如需指定端口用 `node server.js <端口>`(`PORT_BASE = parseInt(process.argv[2],10) || 8900`)
3. 工作台采用 hash 路由,页面结构:
- **首页(#/)**:数据功能卡片(抖音周榜/热门账号/AI写脚本/AI写作复盘)+ 5 大技能功能块(问法点击复制)+ 三种创作模式
- **📈 抖音周榜(#/ranking)**:读 `D:\dshworkspace\抖音榜单\*.json`(环境变量 `MCN_RANKING_DIR` 可覆盖),赛道筛选 + 日期切换 + 数值排序
- **📈 抖音周榜(#/ranking)**:读桌面 `MCNSkill项目\三方数据\红狐数据\抖音榜单\*.json`(运行时解析真实桌面、兼容 OneDrive 重定向;环境变量 `MCN_RANKING_DIR` 可覆盖),赛道筛选 + 日期切换 + 数值排序
- **👥 热门账号(#/accounts)**:读工作台自有数据库副本 `mcn-work-shop/mcn-plugin.db`(只读),分页/搜索/赛道/类型筛选,账号点击进详情
- **账号详情(#/account/:id)**:信息卡 + 账号信息/账号设定/数据分析 3 tab + 视频列表分页;解析/改写/提炼按钮直接提交 AI 任务执行
- **视频详情(#/video/:id)**:信息卡 + 视频脚本/视频拆解/视频分析 3 tab
- **✍️ AI写脚本(#/rewrites)**:爆款视频列表 + 源脚本 vs AI脚本双栏对比 + 分镜提示词分块渲染
- **🧪 AI写作复盘(#/reviews)**:评分维度列表 + 复盘详情(评分条/问题清单/报告)
- **📁 产出浏览(#/files)**:默认读桌面 `MCNSkill项目/`,支持 ⚙️ 设置添加其他项目地址;md/json 在线预览
4. **数据边界**:数据库读工作台自有副本 `mcn-work-shop/mcn-plugin.db`(由 dsh 库复制而来,与 dsh 原库 `~/.dsh/mcn-plugin.db` 完全隔离,两边各访问各的互不影响);周榜读 `D:\dshworkspace\抖音榜单\*.json` 文件
5. **AI 任务触发(Automation 方案)**:各数据页「导入/创作/解析/改写/提炼/复盘」按钮点击后 → 工作台后端 `POST /api/run` → 向 `~/.workbuddy/workbuddy.db` 的 `automations` 表写入一条**一次性任务**(`schedule_type='once'`、**`scheduled_at=now+5s`(带秒)且显式写 `next_run_at=now+5000`**、`cwds=["D:\\AgentSkill\\mcn-workshop"]`)→ WorkBuddy 客户端调度器按 `next_run_at` 扫描拾取(周期≤30s)→ 创建 AI 会话执行 → **会话归入 `mcn-workshop` 空间分组**(左侧会话栏按 cwd 分组,可在该分组查看任务执行过程与结果)。参考 dsh 插件 `dsh-plugin-mcn` 的 `/mcn/api/creative` 模式(固定会话 followup 触发);前端 5 秒防连点。**调度机制/状态机/并发上限/排查命令详见同目录 `自动化任务调度机制.md`(09-01 实测定稿,勿再按旧认知 `scheduled_at=now` 直写——会因 next_run_at 为空而卡死)**
4. **数据边界**:数据库读工作台自有副本 `mcn-work-shop/mcn-plugin.db`(**dsh 侧已整套下线(09-10):`~/.dsh/mcn-plugin.db` 与 `D:\dshworkspace` 均不存在**,工作台 DB 为唯一读写副本);周榜读桌面 `MCNSkill项目\三方数据\红狐数据\抖音榜单\*.json` 文件
5. **AI 任务触发(Automation 方案)**:各数据页「导入/创作/解析/改写/提炼/复盘」按钮点击后 → 工作台后端 `POST /api/run` → 向 `~/.workbuddy/workbuddy.db` 的 `automations` 表写入一条**一次性任务**(`schedule_type='once'`、**`scheduled_at=now+5s`(带秒)且显式写 `next_run_at=now+5000`**、`cwds=[<工作台目录>]`(由 `server.js` 从 `ROOT` 动态推导,值 = `<技能根>/mcn-work-shop`,**禁止写死盘符**))→ WorkBuddy 客户端调度器按 `next_run_at` 扫描拾取(周期≤30s)→ 创建 AI 会话执行 → **会话归入 `mcn-work-shop` 空间分组**(左侧会话栏按 cwd 分组,可在该分组查看任务执行过程与结果)。参考 dsh 插件 `dsh-plugin-mcn` 的 `/mcn/api/creative` 模式(固定会话 followup 触发);前端 5 秒防连点。**调度机制/状态机/并发上限/排查命令详见同目录 `自动化任务调度机制.md`(09-01 实测定稿,勿再按旧认知 `scheduled_at=now` 直写——会因 next_run_at 为空而卡死)**
6. **工作台任务执行方式铁律(P0,09-02 固化)**:凡工作台场景的**创作/改写/重写/复盘/解析**类任务(含"重新执行历史任务"),必须通过 `POST /api/run` 提交 AI 会话任务执行(automation 触发 → 独立 AI 会话按技能 S1-S11 执行 → 写库 rewrite_log/入库),**禁止在会话内直接产出脚本草稿**(不会入库、不在左侧会话栏可见、不走技能会话,等于"影子脚本")。**重新执行历史任务 = 复用原任务的 prompt(人设卡+视频选题+创作要求+落库字段)+ `skills:['短视频工作台']` 提交新任务**——新任务自动加载当前技能版本(含最新优化),无需手工搬内容。执行方式判定细则见「关键规则 〇·执行方式判定」。
7. **AI 任务入口技能契约(P0,09-02 固化)**:工作台每个触发 AI 会话任务的入口都必须遵守「功能入口 × 技能调用契约」——任务 prompt = **固定技能声明前缀常量**(SKILL_HINT_CREATE/EXTRACT/STORYBOARD/REVIEW/ACCOUNT,分别对应 创作/提炼/分镜/复盘/账号抓取)+ **业务正文**,并传对应 `skills` 数组(参数级技能挂载)。**新增/修改任何入口时先读 `mcn-work-shop/docs/AI会话任务输入输出对照.md`(契约总表 + 新增入口检查清单 7 项),再动手**——防裸 prompt 跳步(09-02 三入口缺约束根因)、防技能声明混入业务串、防非抓取任务命中 server.js BROWSER_HINT 正则被误注入浏览器锁。
8. 本功能仅 V1.0 源技能环境提供,**不同步 dsh/Lite 副本**
@@ -98,7 +98,7 @@ agent_created: true
## 子技能索引(subskills/,09-04 登记)
本技能下设 6 个子技能,随源仓库分发(WorkBuddy 用户技能经软链自动同步、dsh 副本随 dsh_MCNProject 分发)。**引用一律用相对路径**(相对本文件:`subskills/<目录>/SKILL.md`),禁止绝对路径。
本技能下设 6 个子技能,随源仓库分发(WorkBuddy 用户技能经软链自动同步)。**引用一律用相对路径**(相对本文件:`subskills/<目录>/SKILL.md`),禁止绝对路径。
| 目录名 | 技能名 | 功能与触发场景 | 相对路径 |
|--------|--------|----------------|----------|
@@ -118,7 +118,6 @@ agent_created: true
账号解析功能(达人账号信息获取与登记、视频列表抓取、爆款视频拆解分析、人设卡生成、账号数据分析)由独立技能 **mcn-dou-analysis** 提供(09-04 修正:原「D:\AgentSkill 两步判定」规则已废弃——独立仓库不存在,该技能 09-02 起挂在本技能 subskills/ 下随源仓库分发):
- **技能本体**:`subskills/mcn-dou-analysis/`(相对本文件;WorkBuddy 用户技能经软链自动同步)
- **dsh 部署环境**:`~/.dsh/skills/mcn-dou-analysis/`(dsh 部署为平级独立技能目录,随 dsh_MCNProject 仓库分发)
## 外部技能依赖:浏览器工具(browser-harness)
@@ -126,7 +125,6 @@ agent_created: true
- **技能本体**:`subskills/browser-harness/`(相对本文件;含 `envs/browser-harness/` 自带环境与 `src/` 源码,随源仓库分发)
- **⚠️ 占位清理(09-04)**:上游 repo 自带 2 个 14B `../../SKILL.md` 占位(`skills/browser-harness/SKILL.md`、`src/browser_harness/SKILL.md`,Claude Code 分发入口),宿主递归扫描会将其误注册成坏技能变体 → **已删除**。**重拷上游整包时必须排除这 2 个文件**(只保留顶层 `SKILL.md`),否则重复注册复发
- **dsh 部署环境**:`~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发,换机器自带)
- **可执行文件**:`subskills/browser-harness/envs/browser-harness/Scripts/browser-harness.exe`(Windows;macOS/Linux 为 `envs/browser-harness/bin/browser-harness`)——**技能自带 venv**(09-04 修复重建,含 python.exe/pyvenv.cfg/全部依赖),随源仓库分发、无需 PATH/uv 工具安装;原「uv 工具安装 ~/.local/bin/browser-harness.exe」已废弃(uv 工具残留 09-04 已清理)
- **进程生命周期(红线,09-02 用户明确)**:已开启的 Chrome(9223 调试实例/用户手动开启的 Chrome)一律不主动关闭,除非用户明确要求;任务结束/失败都保留,承载登录态与标签页复用
- 调用前必做环境检查(三要素:工具/daemon/Chrome),详见 `subskills/mcn-dou-analysis/references/浏览器搜索抖音账号操作规范.md`
@@ -305,7 +303,7 @@ S1 意图识别 → S2 需求完善 → [G0 分析确认]
**用户确认:** Gate-6(最终确认),确认后完成交付。
**最终交付物(确认后自动生成):** 创作回顾.html — 整合全流程各阶段产出的可视化回顾页,命名规则 `脚本{编号}_{脚本标题}_创作回顾.html`,存放于产出根目录下 `{账号名}/` 账号文件夹根目录(dsh 部署环境:`D:\dshworkspace\创作任务\`;开发机与用户环境:桌面 `MCNSkill项目/`,以 `references-add/路径配置.md` 为准)。如有分镜则一并纳入。
**最终交付物(确认后自动生成):** 创作回顾.html — 整合全流程各阶段产出的可视化回顾页,命名规则 `脚本{编号}_{脚本标题}_创作回顾.html`,存放于产出根目录下 `{账号名}/` 账号文件夹根目录(开发机与用户环境同构:桌面 `MCNSkill项目/`,以 `references-add/路径配置.md` 为准)。如有分镜则一并纳入。
> 详细提示词和输出模板见:[11_脚本检查和诊断.md](references/创作流程/11_脚本检查和诊断.md)
@@ -365,7 +363,7 @@ Skill部署到非原始开发路径时,所有用户新增的创作流程/接
### 六、硬编码禁止规则(P0)
创作流程、知识库、素材库标准库中禁止硬编码任何具体账号信息(账号名/角色名/专属机制/专属路径)。素材库存具体物品是设计目的不算硬编码;产出目录(dsh 部署环境 `D:\dshworkspace\创作任务\`、开发机与用户环境桌面 `MCNSkill项目/`,或用户自定义路径)全允许。
创作流程、知识库、素材库标准库中禁止硬编码任何具体账号信息(账号名/角色名/专属机制/专属路径)。素材库存具体物品是设计目的不算硬编码;产出目录(开发机与用户环境同构:桌面 `MCNSkill项目/`,或用户自定义路径)全允许。
> 判定标准+替换对照表+验证命令见:[创作流程规范.md](references/创作流程规范.md) 六
> **🔴 技能内一切文件引用必须用相对路径**(绝对路径随部署机器变化失效;md 链接相对自身文件解析、禁止越级出技能根)→ [路径引用规范.md](references/规则/路径引用规范.md)
@@ -397,6 +395,6 @@ Skill部署到非原始开发路径时,所有用户新增的创作流程/接
```
> 知识库+素材库详细索引 → [索引_知识素材库.md](references/索引_知识素材库.md)
> 产出路径规范(dsh 部署环境 `D:\dshworkspace\创作任务\`、开发机与用户环境桌面 `MCNSkill项目/`(`{账号名}/脚本{编号}/` 直挂,无技能文件夹层),Windows/macOS 按系统解析;**运行时以 `references-add/路径配置.md` 为唯一权威**) → [创作流程规范.md](references/创作流程规范.md) 五
> 产出路径规范(开发机与用户环境同构:桌面 `MCNSkill项目/`(`{账号名}/脚本{编号}/` 直挂,无技能文件夹层),Windows/macOS 按系统解析;**运行时以 `references-add/路径配置.md` 为唯一权威**) → [创作流程规范.md](references/创作流程规范.md) 五
> references-add增量目录结构 → [references-add/README.md](references-add/README.md)
> 快速启动模板 → [帮助文档.md](帮助文档.md)