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 6cb29a9877
commit c48902f063
58 files changed
+895 -263

No files matched your search

@@ -2,9 +2,11 @@
用法: node submit-review-tasks.cjs [rewriteId1,rewriteId2,...] (不传则自动取 account_id=3 的最新 done 记录) */
const { DatabaseSync } = require('node:sqlite');
const path = require('path');
const { loadConfig } = require('./load-config');
const DB = path.join(__dirname, 'mcn-plugin.db');
const API = 'http://localhost:8900/api/run';
const CFG = loadConfig();
const DB = path.join(__dirname, CFG.dbName);
const API = `http://localhost:${CFG.port}/api/run`;
const ACCOUNT_ID = 3;
const db = new DatabaseSync(DB, { readOnly: true });
@@ -27,14 +29,19 @@ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
脚本标题:《${r.title || r.video_title || ''}》(rewrite_log.id=${r.id},video_id=${r.video_id})
【任务完成后必须执行】
将复盘结果保存到工作台数据库 mcn-plugin.db 的 script_review 表(数据库路径:D:\\AgentSkill\\mcn-video-script\\project\\短视频脚本创作\\V1.0\\mcn-work-shop\\mcn-plugin.db),字段:
将复盘结果保存到工作台数据库 ${CFG.dbName} 的 script_review 表(数据库路径:${DB},即本会话 cwd 下的 ${CFG.dbName}),字段:
- type='ai'
- rewrite_id=${r.id}
- video_id=${r.video_id}
- dims_json=各维度评分 JSON(设定承接/框架节奏/钩子设置/叙事逻辑/极致事件/共鸣和共情/格式规范性/台词口语化/内容合规/教程完整链/其他)
- total=总分(数字)
- verdict=结论
- issues_json=问题清单 JSON
- issues_json=问题清单 JSON 数组,**每条字段固定如下(字段名与取值不可自创)**:
[{"severity":"高","dim":"叙事逻辑","loc":"场8 妈妈台词(510-520s)","issue":"问题描述","suggestion":"修改建议","step":"S7"},
{"severity":"中","dim":"台词口语化","loc":"场3","issue":"…","suggestion":"…","step":"S9"}]
· severity:**只能取「高」「中」「低」三个中文值**(禁止 high/medium/low、禁止 sev/level 等其它字段名)
· dim=所属维度名;loc=定位(场次/时间码);issue=问题描述;suggestion=修改建议;step=所属环节(S5-S11)
· ⚠️ 若 severity 缺失或写成英文,工作台无法按严重度着色,会全部显示成绿色
- content=复盘完整内容
- summary=摘要
- status='done'