R32: 技能更名 短视频脚本创作→短视频工作台(对外统一名)

- frontmatter name:V1.0=短视频工作台、Lite1.0=短视频工作台 Lite(含标题/帮助文档/last_change)
- 工作台 JS:data-pages.js skills 参数 3 处+SKILL_HINT_CREATE 加载名+5 常量路径段、app.js SKILL_HINT_ACCOUNT、server.js 注释 → ~/.workbuddy/skills/短视频工作台/
- 文档一致性:dou-analysis SKILL.md L51/L60 主技能指称、浏览器操作规范 2 处、script-review Scope、docs 契约表+调度机制 skills 示例
- repo 目录 project/短视频脚本创作/ 保留原名(工程结构),仅改注册/显示名;流程术语与产品历史文档保留
- 版本 ?v=20260903r;注册 junction 已重建为 短视频工作台
This commit is contained in:
maogeigei committed 2026-09-03 16:43:21 +08:00
1 parent 8a78c5b856
commit 057522ce63
13 files changed
+35 -35

No files matched your search

@@ -1,7 +1,7 @@
---
name: 短视频脚本创作 Lite
name: 短视频工作台 Lite
description: >
短视频脚本创作全流程技能:脚本创作(完整脚本/口播/带货)、
短视频工作台 Lite(短视频脚本创作全流程技能):脚本创作(完整脚本/口播/带货)、
对标视频拆解与分析、脚本质量诊断、账号定位与人设设计、选题策划、分镜生成、广告植入设计。
支持自动/共创/开发三种创作模式。
适用平台:抖音/快手/视频号/B站/小红书。
@@ -9,11 +9,11 @@ description: >
诊断脚本质量、设计账号人设、选题策划、生成分镜、广告植入设计、生成创作回顾。
version: "1.0-lite"
updated_at: "2026-08-26"
last_change: "帮助文档功能重组:按创作链路改为5大功能块(找选题灵感→写脚本→账号分析[提炼设定/分析视频/分析账号]→诊断评分→工具接口),原「从账号分析到脚本创作」衔接场景并入写脚本块;前置变更:开场口径区分固化+输出边界铁律固化+产出层级精简"
last_change: "技能更名:短视频脚本创作 Lite→短视频工作台 Lite(09-03 用户定,随 V1.0 同步改名);帮助文档功能重组:按创作链路改为5大功能块(找选题灵感→写脚本→账号分析[提炼设定/分析视频/分析账号]→诊断评分→工具接口),原「从账号分析到脚本创作」衔接场景并入写脚本块;前置变更:开场口径区分固化+输出边界铁律固化+产出层级精简"
agent_created: true
---
# 短视频脚本创作 Skill
# 短视频工作台 Lite Skill
## 技能概述
@@ -1,4 +1,4 @@
# 短视频脚本创作技能 — 使用指南
# 短视频工作台 Lite — 使用指南
> 本技能提供短视频**创作、分析、诊断**的全链路能力。直接对话即可使用,无需记住指令。
+5 -5
View File
@@ -1,7 +1,7 @@
---
name: 短视频脚本创作
name: 短视频工作台
description: >
短视频脚本创作全流程技能:脚本创作(完整脚本/口播/带货)、
短视频工作台(短视频脚本创作全流程技能):脚本创作(完整脚本/口播/带货)、
对标视频拆解与分析、脚本质量诊断、账号定位与人设设计、选题策划、分镜生成、广告植入设计。
支持自动/共创/开发三种创作模式。
适用平台:抖音/快手/视频号/B站/小红书。
@@ -9,12 +9,12 @@ description: >
诊断脚本质量、设计账号人设、选题策划、生成分镜、广告植入设计、生成创作回顾。
version: "1.0"
updated_at: "2026-09-03"
last_change: "触发条件新增🧹后台任务清理场景:用户问后台任务/清理过期失败任务时按 references/接口调用/自动化任务清理规范.md 执行(09-03 新增,全环境通用:只清过期或错误失败的一次性任务,禁清未来/周期/运行中任务,删除走宿主工具禁直改库);09-02 前:工作台新增第7条「AI 任务入口技能契约(P0)」:所有 AI 会话任务入口须遵守功能入口×技能调用契约(prompt=技能前缀常量+业务正文+skills 参数级挂载),新增/修改入口前先读 mcn-work-shop/docs/AI会话任务输入输出对照.md(含新增入口检查清单7项)——防裸 prompt 跳步/技能声明混入业务串/BROWSER_HINT 误注入(09-02 提炼/分镜/复盘三入口缺约束修复后固化,data-pages.js 四前缀常量);原第7/8条顺延为8/9;09-02 前:工作台任务执行方式铁律固化(创作/改写/复盘必须走 POST /api/run+skills 参数,禁会话内手写草稿)+09-01 调度机制实测定稿+端口 8899→8900"
last_change: "技能更名:短视频脚本创作→短视频工作台(09-03 用户定,对外统一名称;触发方式与引用结构不变);触发条件新增🧹后台任务清理场景:用户问后台任务/清理过期失败任务时按 references/接口调用/自动化任务清理规范.md 执行(09-03 新增,全环境通用:只清过期或错误失败的一次性任务,禁清未来/周期/运行中任务,删除走宿主工具禁直改库);09-02 前:工作台新增第7条「AI 任务入口技能契约(P0)」:所有 AI 会话任务入口须遵守功能入口×技能调用契约(prompt=技能前缀常量+业务正文+skills 参数级挂载),新增/修改入口前先读 mcn-work-shop/docs/AI会话任务输入输出对照.md(含新增入口检查清单7项)——防裸 prompt 跳步/技能声明混入业务串/BROWSER_HINT 误注入(09-02 提炼/分镜/复盘三入口缺约束修复后固化,data-pages.js 四前缀常量);原第7/8条顺延为8/9;09-02 前:工作台任务执行方式铁律固化(创作/改写/复盘必须走 POST /api/run+skills 参数,禁会话内手写草稿)+09-01 调度机制实测定稿+端口 8899→8900"
deployment: "source"
agent_created: true
---
# 短视频脚本创作 Skill
# 短视频工作台 Skill
## 技能概述
@@ -72,7 +72,7 @@ agent_created: true
- **📁 产出浏览(#/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 为空而卡死)**
6. **工作台任务执行方式铁律(P0,09-02 固化)**:凡工作台场景的**创作/改写/重写/复盘/解析**类任务(含"重新执行历史任务"),必须通过 `POST /api/run` 提交 AI 会话任务执行(automation 触发 → 独立 AI 会话按技能 S1-S11 执行 → 写库 rewrite_log/入库),**禁止在会话内直接产出脚本草稿**(不会入库、不在左侧会话栏可见、不走技能会话,等于"影子脚本")。**重新执行历史任务 = 复用原任务的 prompt(人设卡+视频选题+创作要求+落库字段)+ `skills:['短视频脚本创作']` 提交新任务**——新任务自动加载当前技能版本(含最新优化),无需手工搬内容。执行方式判定细则见「关键规则 〇·执行方式判定」。
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 副本**
9. **改完必重开页面(硬性约定)**:对工作台任何页面/代码改动完成后,**最后一步必须用 present_files 重新打开对应页面**(带 hash 直接定位,如 `http://localhost:8900/#/accounts`),让用户在 WorkBuddy 内置浏览器立即看到最新效果。原因:内置浏览器无 CDP 调试端口(9222/9224 等均无响应),无法模拟 F5;重开页面是唯一可靠刷新方式。此约定对工作台所有 UI 改动强制生效
@@ -12,9 +12,9 @@
| # | 功能入口 | 按钮 | label | 技能(skills_json) | 前缀常量 | prompt 边界要点 | 代码位置 |
|---|---------|------|-------|------------------|---------|----------------|---------|
| 1 | 账号列表(#/accounts)弹窗 | AI创作 | 创作指令 | `['短视频脚本创作']` | `SKILL_HINT_CREATE` | 完整人设卡(剔非创作章节)+选题方向;未解析先解析再创作 | data-pages.js confirmAiScript ~L386 |
| 2 | 账号详情(#/account/:id)视频列表 | AI创作 | 创作指令 | `['短视频脚本创作']` | `SKILL_HINT_CREATE` | 人设卡+视频选题块(topic/content/未解析三分支) | data-pages.js renderAccountDetail ~L720 |
| 3 | AI写脚本(#/rewrites)视频列表 | AI创作 | 创作指令 | `['短视频脚本创作']` | `SKILL_HINT_CREATE` | 同 2 | data-pages.js renderRewrites ~L929 |
| 1 | 账号列表(#/accounts)弹窗 | AI创作 | 创作指令 | `['短视频工作台']` | `SKILL_HINT_CREATE` | 完整人设卡(剔非创作章节)+选题方向;未解析先解析再创作 | data-pages.js confirmAiScript ~L386 |
| 2 | 账号详情(#/account/:id)视频列表 | AI创作 | 创作指令 | `['短视频工作台']` | `SKILL_HINT_CREATE` | 人设卡+视频选题块(topic/content/未解析三分支) | data-pages.js renderAccountDetail ~L720 |
| 3 | AI写脚本(#/rewrites)视频列表 | AI创作 | 创作指令 | `['短视频工作台']` | `SKILL_HINT_CREATE` | 同 2 | data-pages.js renderRewrites ~L929 |
| 4 | 账号详情(#/account/:id) | 提炼账号设定 | 提炼指令 | `['mcn-dou-analysis']` | `SKILL_HINT_EXTRACT` | 功能三提炼;仅基于库中已有解析数据,**禁数据抓取字样**(防 BROWSER_HINT 误注入) | data-pages.js ~L732 |
| 5 | 脚本对比弹窗 | 生成分镜 / 重新生成 | 分镜指令 | `['短视频分镜脚本']` | `SKILL_HINT_STORYBOARD` | F4 生成分镜;只产出分镜提示词不改写脚本 | data-pages.js openRewriteCompare fireGenSb ~L1007 |
| 6 | AI脚本诊断(#/reviews) | 复盘 / 更新 | 复盘指令 | `['脚本复盘']` | `SKILL_HINT_REVIEW` | 独立会话一脚本一上下文;按有无源脚本动态分支(三模式 vs 独立10维) | data-pages.js startReview ~L1130 |
@@ -23,8 +23,8 @@ const EXT_ICON = { md: 'file-text', json: 'file-code', xlsx: 'table', csv: 'tabl
→ 轮询 /api/run/status 直到任务完成(done/error)→ 按钮恢复 */
/* 账号分析技能指令(09-01 修复:F1/F2 入口任务必须按「mcn-dou-analysis」技能执行,与提炼账号设定入口统一。
定位方式跨环境:优先用 Skill 工具按技能名加载;技能位于用户技能目录 ~/.workbuddy/skills/短视频脚本创作/subskills/mcn-dou-analysis/(部署到用户环境时同此标准位),不写死机器绝对路径 */
const SKILL_HINT_ACCOUNT = '请调用 Skill 工具加载「mcn-dou-analysis」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频脚本创作/subskills/mcn-dou-analysis/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。严格按技能工作流执行(获取账号信息 → 视频列表抓取 → 登记达人账号表 15 列规范),遵守技能红线:TOP6 筛选、≥60 条停止、账号身份标识(sec_uid/抖音号/地址)必须由浏览器获取、禁止从数据库回填。';
定位方式跨环境:优先用 Skill 工具按技能名加载;技能位于用户技能目录 ~/.workbuddy/skills/短视频工作台/subskills/mcn-dou-analysis/(部署到用户环境时同此标准位),不写死机器绝对路径 */
const SKILL_HINT_ACCOUNT = '请调用 Skill 工具加载「mcn-dou-analysis」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频工作台/subskills/mcn-dou-analysis/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。严格按技能工作流执行(获取账号信息 → 视频列表抓取 → 登记达人账号表 15 列规范),遵守技能红线:TOP6 筛选、≥60 条停止、账号身份标识(sec_uid/抖音号/地址)必须由浏览器获取、禁止从数据库回填。';
// 任务完成后自动刷新当前数据页(无需手动刷新即可看到最新数据)
function refreshCurrentPage() {
@@ -2,21 +2,21 @@
依赖 app.js 暴露的工具:esc/api/renderMarkdown/copyText/showToast/fmtSize */
'use strict';
/* AI创作技能指令(09-01 修复:任务必须按「短视频脚本创作」技能执行,禁止模型自由发挥导致分镜表格/TXT/MD 格式混杂。
定位方式跨环境:优先用 Skill 工具按技能名加载;技能位于用户技能目录 ~/.workbuddy/skills/短视频脚本创作/(部署到用户环境时同此标准位),不写死机器绝对路径 */
const SKILL_HINT_CREATE = '请调用 Skill 工具加载「短视频脚本创作」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频脚本创作/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务以技能 ⚡自动模式 执行:严格按 SKILL.md 的 S1-S11 步骤顺序逐步走完完整创作流程(选题→框架→大纲→情绪→结构→脚本)——中间步骤后台静默 = 各步产物在对话上下文中按序完整产出但不逐个展示,禁止跳过或合并中间步骤一步直出成品。最终输出 S9 标准脚本格式(按场次+对白组织,画面标注【景别|环境|光线|场景|场景元素】),禁止输出分镜头表格、禁止偏离脚本格式。创作时必须逐条读取并严格执行 SKILL.md 的「开场钩子铁律」与【账号设定】的「内容规则」(如果…则…)——二者为硬约束,不得自由发挥、不得跳过,具体标准一律以 SKILL.md 与内容规则原文为准。';
/* AI创作技能指令(09-01 修复:任务必须按「短视频工作台」技能执行,禁止模型自由发挥导致分镜表格/TXT/MD 格式混杂。
定位方式跨环境:优先用 Skill 工具按技能名加载;技能位于用户技能目录 ~/.workbuddy/skills/短视频工作台/(部署到用户环境时同此标准位),不写死机器绝对路径 */
const SKILL_HINT_CREATE = '请调用 Skill 工具加载「短视频工作台」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频工作台/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务以技能 ⚡自动模式 执行:严格按 SKILL.md 的 S1-S11 步骤顺序逐步走完完整创作流程(选题→框架→大纲→情绪→结构→脚本)——中间步骤后台静默 = 各步产物在对话上下文中按序完整产出但不逐个展示,禁止跳过或合并中间步骤一步直出成品。最终输出 S9 标准脚本格式(按场次+对白组织,画面标注【景别|环境|光线|场景|场景元素】),禁止输出分镜头表格、禁止偏离脚本格式。创作时必须逐条读取并严格执行 SKILL.md 的「开场钩子铁律」与【账号设定】的「内容规则」(如果…则…)——二者为硬约束,不得自由发挥、不得跳过,具体标准一律以 SKILL.md 与内容规则原文为准。';
/* 提炼账号设定技能声明(09-02 修复:原为裸 prompt,且不可复用 SKILL_HINT_ACCOUNT——后者写死 F1/F2 浏览器抓取流程,
提炼是 mcn-dou-analysis 功能三「基于视频解析生成人设卡」,复用会把任务带偏去执行浏览器流程) */
const SKILL_HINT_EXTRACT = '请调用 Skill 工具加载「mcn-dou-analysis」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频脚本创作/subskills/mcn-dou-analysis/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为技能功能三「提炼账号设定」:先读 SKILL.md「功能总览」定位功能三,再按 references/feature/03_提炼账号设定.md 与 references/人设卡生成方法.md 执行——先判定账号类型,基于该账号已有的视频 MCP 解析数据,按人设卡统一 12 段结构生成账号设定(聚焦内容创作维度:内容基因/打法/情绪/视听/规则/差异化壁垒,不含商业化变现分析;数据复用遵循技能「已有数据处理规则」)。技能边界:产出止步于账号设定人设卡文件({达人昵称}账号设定.md);禁止生成或改写脚本(属「短视频脚本创作」技能 S1-S11 流程);本任务不执行任何数据抓取流程,仅基于库中已有解析数据做分析提炼。';
const SKILL_HINT_EXTRACT = '请调用 Skill 工具加载「mcn-dou-analysis」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频工作台/subskills/mcn-dou-analysis/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为技能功能三「提炼账号设定」:先读 SKILL.md「功能总览」定位功能三,再按 references/feature/03_提炼账号设定.md 与 references/人设卡生成方法.md 执行——先判定账号类型,基于该账号已有的视频 MCP 解析数据,按人设卡统一 12 段结构生成账号设定(聚焦内容创作维度:内容基因/打法/情绪/视听/规则/差异化壁垒,不含商业化变现分析;数据复用遵循技能「已有数据处理规则」)。技能边界:产出止步于账号设定人设卡文件({达人昵称}账号设定.md);禁止生成或改写脚本(属「短视频工作台」技能 S1-S11 流程);本任务不执行任何数据抓取流程,仅基于库中已有解析数据做分析提炼。';
/* 生成分镜提示词技能声明(09-02 修复:原为裸 prompt 且表述模糊「按分镜技能生成镜头级描述」,无技能加载指令,
模型可能自创格式;分镜技能 F4 有严格时间戳分段/实体绑定/6层结构规则) */
const SKILL_HINT_STORYBOARD = '请调用 Skill 工具加载「短视频分镜脚本」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频脚本创作/subskills/mcn-video-prompt/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为技能 F4「生成分镜提示词」(脚本→分镜):严格按技能 F4 流程与输出格式执行(references/制作流程:时间戳分段+智能分段策略;实体绑定属性跟随实体、独立字段只放全局项;6 层结构),产出分镜提示词序列。技能边界:只产出分镜提示词,禁止改写/重写输入的脚本正文,禁止输出脚本本身。';
const SKILL_HINT_STORYBOARD = '请调用 Skill 工具加载「短视频分镜脚本」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频工作台/subskills/mcn-video-prompt/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为技能 F4「生成分镜提示词」(脚本→分镜):严格按技能 F4 流程与输出格式执行(references/制作流程:时间戳分段+智能分段策略;实体绑定属性跟随实体、独立字段只放全局项;6 层结构),产出分镜提示词序列。技能边界:只产出分镜提示词,禁止改写/重写输入的脚本正文,禁止输出脚本本身。';
/* 脚本复盘技能声明(09-02 修复:原技能声明混写在业务 prompt 字符串内,拆出独立前缀统一管理;
复盘技能=只分析不改写,且工作台复盘必须独立会话一条脚本一上下文) */
const SKILL_HINT_REVIEW = '请调用 Skill 工具加载「脚本复盘」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频脚本创作/subskills/mcn-script-review/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为工作台复盘任务:严格按技能执行方式判定与复盘流程执行(评分式复盘/对比分析模式由任务说明指定;一条脚本=一个独立上下文,禁止混审多条脚本)。技能边界:只做分析与建议,不修改脚本、不触发创作流程、不改动任何技能文件。';
const SKILL_HINT_REVIEW = '请调用 Skill 工具加载「脚本复盘」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频工作台/subskills/mcn-script-review/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为工作台复盘任务:严格按技能执行方式判定与复盘流程执行(评分式复盘/对比分析模式由任务说明指定;一条脚本=一个独立上下文,禁止混审多条脚本)。技能边界:只做分析与建议,不修改脚本、不触发创作流程、不改动任何技能文件。';
/* 视频解析技能声明(09-03 R28:视频详情页「解析/刷新」按钮=单视频 MCP 解析,任务必须按 mcn-dou-analysis 功能五执行,
一次性产出「视频脚本」(content 分镜头表)与「视频拆解」(analysis 结构化拆解)两个数据源 */
const SKILL_HINT_VIDEO_PARSE = '请调用 Skill 工具加载「mcn-dou-analysis」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频脚本创作/subskills/mcn-dou-analysis/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为技能功能五「解析视频」:对单条抖音视频做 MCP 内容解析。按 references/feature/05_解析视频.md 流程执行:① 调用 MCP 工具 upload_douyin_video 提交视频链接(share_text=该视频抖音链接)获取 detailId;② 等待解析完成(新视频约 3-5 分钟,用 sleep 等待后查询,content 已出而 analysis 未出时稍后重试);③ 用 short_video_detail 查询解析结果 content(视频脚本/分镜头表)与 analysis(视频拆解/结构化JSON);④ 按 references/解析结果格式规范.md 用 scripts/json_tool.py 将 content.json 与 analysis.json 保存到产出目录对应视频文件夹;⑤ 解析结果入库:工作台环境(本机 http://localhost:8900)产物落盘后调用 POST /api/import/account(body {"account":"{达人昵称}"})同步入库,接口不可用则跳过不影响保存。完成后汇报 detailId、content/analysis 是否齐备与保存路径。技能边界:只做该单视频解析,不抓取账号信息、不提炼账号设定、不创作/改写脚本。';
const SKILL_HINT_VIDEO_PARSE = '请调用 Skill 工具加载「mcn-dou-analysis」技能(技能根目录 = 用户技能目录 ~/.workbuddy/skills/短视频工作台/subskills/mcn-dou-analysis/,先读取其 SKILL.md 及 references 规范;若 Skill 工具无法加载,请直接读取该目录下的 SKILL.md 文件)。本任务为技能功能五「解析视频」:对单条抖音视频做 MCP 内容解析。按 references/feature/05_解析视频.md 流程执行:① 调用 MCP 工具 upload_douyin_video 提交视频链接(share_text=该视频抖音链接)获取 detailId;② 等待解析完成(新视频约 3-5 分钟,用 sleep 等待后查询,content 已出而 analysis 未出时稍后重试);③ 用 short_video_detail 查询解析结果 content(视频脚本/分镜头表)与 analysis(视频拆解/结构化JSON);④ 按 references/解析结果格式规范.md 用 scripts/json_tool.py 将 content.json 与 analysis.json 保存到产出目录对应视频文件夹;⑤ 解析结果入库:工作台环境(本机 http://localhost:8900)产物落盘后调用 POST /api/import/account(body {"account":"{达人昵称}"})同步入库,接口不可用则跳过不影响保存。完成后汇报 detailId、content/analysis 是否齐备与保存路径。技能边界:只做该单视频解析,不抓取账号信息、不提炼账号设定、不创作/改写脚本。';
/* 09-02 v25:AI创作任务完成后的写库回调指令——否则脚本只落会话/产出目录,工作台「AI写脚本」列表看不到。
参考选题创作(有原视频,如视频行 AI创作):传 videoId/awemeId → rewrite_log.video_id 关联原视频;
自定义选题创作(无原视频,如账号列表 AI创作 弹窗):不传 videoId → video_id 留空,归「自定义选题创作」tab。
@@ -494,7 +494,7 @@ async function confirmAiScript(accountName, btn) {
rm();
const prompt = `${SKILL_HINT_CREATE}\n${buildCreatePrompt(accountName, w, personaBlock(), pHas, attach.text)}${saveHintOf({ accountId: accId })}`;
close();
executeTask({ prompt, label: '创作指令', btn, skills: ['短视频脚本创作'] });
executeTask({ prompt, label: '创作指令', btn, skills: ['短视频工作台'] });
});
document.body.appendChild(ck);
});
@@ -989,7 +989,7 @@ async function renderAccountDetail(view, id) {
target: `达人「${r.name}」|选题《${r.title}》`,
prompt: basePrompt + saveHintOf({ videoId: r.id, awemeId: r.aweme, accountId: id }),
label: '创作指令',
skills: ['短视频脚本创作'],
skills: ['短视频工作台'],
btn: b,
});
}));
@@ -1303,7 +1303,7 @@ async function renderRewrites(view, initAccount) { /* v22:initAccount=账号
? `${SKILL_HINT_CREATE}\n请为达人「${r.name}」创作一条全新的短视频故事脚本。${personaBlock}${noPersonaNote}${tb.block}${createTail}${saveHint}`
: `${SKILL_HINT_CREATE}\n请为达人「${r.name}」创作一条全新的短视频故事脚本。${personaBlock}${noPersonaNote}\n该视频尚未解析,请先解析这个抖音视频并做拆解分析(${r.url ? '视频地址:' + r.url + '\n' : ''}视频标题:《${r.title}》),再基于账号设定与提炼出的选题,创作完整故事脚本。${saveHint}`,
label: '创作指令',
skills: ['短视频脚本创作'],
skills: ['短视频工作台'],
btn: b,
});
}
@@ -41,7 +41,7 @@
</div>
</div>
<script src="app.js?v=20260903q"></script>
<script src="data-pages.js?v=20260903q"></script>
<script src="app.js?v=20260903r"></script>
<script src="data-pages.js?v=20260903r"></script>
</body>
</html>
@@ -536,7 +536,7 @@ const server = http.createServer((req, res) => {
const { prompt, name, skills } = JSON.parse(body || '{}');
if (!prompt || typeof prompt !== 'string' || !prompt.trim()) return sendErr(400, 'prompt 不能为空');
// 09-01 参数级技能挂载:skills_json 是 automations 表原生字段(default '[]'),
// 客户端调度器创建会话时按该字段挂载技能;前端传技能名数组(如 ['短视频脚本创作'])即完成任务级技能绑定
// 客户端调度器创建会话时按该字段挂载技能;前端传技能名数组(如 ['短视频工作台'])即完成任务级技能绑定
// 09-03 模型跟随用户选择:原 model_id 钉死 'deepseek-v4-flash'(绕过用户模型选择,全任务跑 flash)。
// 已改为动态读取最近活跃手动会话的 model(下方 modelRow/modelId,跟随用户在 UI 的 auto/flash/pro 选择);
// 兜底 'auto' = 系统按任务复杂度自动路由。实证:调度器 model_id 有值 → setSessionModel 强制指定会话模型,
@@ -78,7 +78,7 @@ for r in db.execute(\"SELECT automation_id,status,metadata_json FROM automation_
> 背景:用户要求"前3条重写"时,曾误在会话内直接手写脚本草稿(影子脚本:不入库、不在左侧会话栏、不走技能会话)。根因=没有先判定执行方式。正确姿势如下:
1. **取原任务 prompt**:从 `~/.workbuddy/workbuddy.db` 的 `automations` 表按任务 id 读取完整 prompt(含人设卡+视频选题+创作要求+落库字段)
2. **组装并提交**:`POST /api/run`,body 含 `{ prompt: <原prompt>(可按需附注"执行最新技能版本"), name: '重写-...', skills: ['短视频脚本创作'] }`——`skills_json` 让客户端会话挂载指定技能,任务自动应用当前技能版本(含最新优化)
2. **组装并提交**:`POST /api/run`,body 含 `{ prompt: <原prompt>(可按需附注"执行最新技能版本"), name: '重写-...', skills: ['短视频工作台'] }`——`skills_json` 让客户端会话挂载指定技能,任务自动应用当前技能版本(含最新优化)
3. **轮询状态**:`GET /api/run/status?id=<新任务id>`(queued/pending/running/done/error/review)
4. **验证落库**:任务完成后查 `mcn-plugin.db` 的 `rewrite_log` 表,确认 `video_id/script_text/status='done'` 已更新;前端在 AI写脚本页可见
5. **不重复建任务**:同一"重写"诉求只提交一次;若用户要"改一版",也是新任务而非改原任务
@@ -48,7 +48,7 @@ description: "MCN 达人爆款视频解析与人设卡生成技能:达人账
| 人设卡方法论 | 必须结合 **脚本创作技能 + 女娲造人术** 两个技能库综合生成,不可仅凭通用知识。**人设卡聚焦内容创作本身(内容基因/打法/情绪/视听/规则/差异化壁垒的内容侧),不含商业化变现路径分析**(商业化/市场分析归功能四账号数据分析)。**人设卡统一 12 段结构**(账号核心定位→内容基因→类型库→情绪结构→视听风格→内容打法→内容规则→系列内容规划→差异化壁垒→红线清单→当前需解决的问题→设定分析说明),详见 `references/人设卡生成方法.md` 5.3。 |
| 账号类型判定 | 生成人设卡前**必须先判定账号类型**,不同类型使用不同模板结构。判定标准见 `references/人设卡生成方法.md`。 |
| 浏览器操作规范(红线) | **执行任何浏览器操作(功能一/二及任何网页获取)前,必须先读取 `references/浏览器搜索抖音账号操作规范.md` 全文**,严格遵守:① 环境前置(清除代理环境变量、固定 9223 调试 Chrome 实例);② **标签页复用(5.5)**——操作前检查已打开标签页,有则 goto_url 直接导航复用,无才 new_tab 新建,用完不关闭;③ 登录检测(弹登录窗口停止操作提示用户);④ 滚动收集技巧(.route-sc 容器);⑤ **访问账号主页必须走搜索路径→模拟点击进入,禁止直接构造 `/user/{sec_uid}` 地址跳转**;⑥ **视频数据提取首选列表组件 Fiber `defaultDataList`(一次拿全含 createTime),禁止逐条打开 `/video/{id}` 视频页抓字段**(详见规范「提取方法优先级」);⑦ **浏览器进程生命周期:已开启的 Chrome(9223 调试实例/用户 Chrome)一律不主动关闭,除非用户明确要求**(详见规范 5.7)。浏览器要求由插件 prompt 注入与本规范双重保证。 |
| browser-harness 依赖(红线) | 功能一/二(浏览器抓取)执行前**必须先检测 browser-harness 是否可用**:检测方法(任一即可判定)——① 可执行文件存在性:`~/.local/bin/browser-harness.exe`(Windows)/ `~/.local/bin/browser-harness`(macOS/Linux);② `command -v browser-harness`(macOS/Linux)/ `where browser-harness`(Windows)有输出。**未安装 → 提醒用户安装**(可跳过:改用三方数据 API / MCP 兜底数据源,但功能一/二浏览器抓取无法执行;同意后安装)→ 执行 `uv tool install --python 3.12 --upgrade --force browser-harness` → `browser-harness doctor` 验证三要素(工具/daemon/Chrome)全绿。**技能本体位置(09-02 调整)**:主技能 `短视频脚本创作/subskills/browser-harness/`(源仓库 `project/短视频脚本创作/V1.0/subskills/browser-harness/`,含 envs 环境与 src;**不再挂在 mcn-dou-analysis 下**);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发,换机器自带)。检测与安装细节见 `references/浏览器搜索抖音账号操作规范.md` 第五节。 |
| browser-harness 依赖(红线) | 功能一/二(浏览器抓取)执行前**必须先检测 browser-harness 是否可用**:检测方法(任一即可判定)——① 可执行文件存在性:`~/.local/bin/browser-harness.exe`(Windows)/ `~/.local/bin/browser-harness`(macOS/Linux);② `command -v browser-harness`(macOS/Linux)/ `where browser-harness`(Windows)有输出。**未安装 → 提醒用户安装**(可跳过:改用三方数据 API / MCP 兜底数据源,但功能一/二浏览器抓取无法执行;同意后安装)→ 执行 `uv tool install --python 3.12 --upgrade --force browser-harness` → `browser-harness doctor` 验证三要素(工具/daemon/Chrome)全绿。**技能本体位置(09-02 调整)**:主技能 `短视频工作台/subskills/browser-harness/`(源仓库 `project/短视频脚本创作/V1.0/subskills/browser-harness/`,含 envs 环境与 src;**不再挂在 mcn-dou-analysis 下**);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发,换机器自带)。检测与安装细节见 `references/浏览器搜索抖音账号操作规范.md` 第五节。 |
| 账号信息数据源(红线) | 获取达人账号信息(功能一)**必须浏览器优先**:browser-harness 打开抖音网页版访问达人主页提取(昵称/抖音号/抖音ID(sec_uid)/抖音地址/粉丝数/获赞数/关注数/作品数/IP属地/简介等)。**禁止从任何数据库读取账号字段回填账号表(含身份标识 sec_uid/抖音号/抖音地址)**:工作台库 `mcn-plugin.db` 的 `hot_accounts` 表 = MCP 内部账号库(`list_hot_accounts`/`hot_account_detail`)的**本地副本,读取其数据填表等同违反本红线**;dsh 原库(`~/.dsh/mcn-plugin.db`)同样只读参考。这些库仅用于**流程状态参考**(判断是否已有解析/产出),**不是功能一数据源**;账号表登记(Step 1.0)只占位 账号ID+达人昵称,抖音号/sec_uid/地址等一律留空,**待浏览器抓取后回填**(浏览器抓取到的值才写)。仅当浏览器无法访问(账号搜索不到/主页打不开等)时才可兜底补充,并须注明数据来源。详见 `references/铁律避坑规则/账号信息获取执行避坑.md`。 |
| 已有数据处理(统一决策) | 用户要求「获取账号数据/提取账号设定/分析视频」时,**库中已有 ≠ 可直接使用**:实时数据(账号信息/视频列表)必须重新获取(红线禁回填);分析产物(人设卡/视频解析/分析报告)**复用优先 + 询问是否更新**,只对增量(新视频/未解析)补获取;「已有」须校验内容质量(存在≠有效,假数据视为无)。分场景决策表见 `references/铁律避坑规则/已有数据处理规则.md`(收敛更新时间检查/卡片覆盖询问/表格复用/入库去重等散落规则)。 |
| 赛道标准枚举(29个,**唯一权威**) | 赛道(track/「赛道」键)取值必须属于以下 **29 个赛道**(28 标准 + 1 补充):个人才艺 / 生活vlog / 财富理财 / 二次元 / 居家装修 / 学习教育 / 小剧场 / 数码科技 / 旅行 / 美食 / 美妆(原「化妆美容」统一更名) / 动物 / 亲子 / 汽车 / 情感 / 三农 / 健康医学 / 潮流风尚 / 舞蹈才艺 / 颜值造型 / 人文 / 音乐 / 影视 / 身体锻炼 / 体育 / 明星娱乐 / 游戏 / 其他 / **剧情**(剧情为用户指定保留,不归一)。**不带「赛道」后缀**(如「生活vlog」);人设卡/账号设定「赛道」键取首段(" / " 分隔)后去后缀,不在 29 个枚举内则归一到最接近标准值或置空待确认。本参数只在 SKILL.md 定义(源:`dsh-plugin-dev/references/赛道标准枚举.md`),其他文件引用此处,调整只改本行。 |
@@ -57,7 +57,7 @@ description: "MCN 达人爆款视频解析与人设卡生成技能:达人账
| 数据分析两段式(红线) | 功能四强制「**逐条拆解 → 汇总分析**」两段式:先对每条入选视频重度调用源技能逐条拆解(拆解内容单独保存到各视频自己的文件夹),**拆解全部完成后**才能进入汇总分析,禁止跳过逐条拆解直接写报告。 |
| 源技能路径与同步 | 生成账号设定/分析视频数据时,**调用源技能** `{源技能目录}/references/` 下的对应文件(`创作流程/4_账号设定解析和确认.md`、`创作流程/3_对标视频账号拆解.md`、`知识库/01_账号设定/`、`知识库/08_对话风格/`、`知识库/12_爆款拆解/`、`知识库/11_广告植入/` 等)。**三环境判定(锚点 = 本机是否存在 `D:\AgentSkill`,与技能装在什么路径无关)**:① 开发机 = 本机有 `D:\AgentSkill` 且技能路径在 `D:\AgentSkill\` 下(源技能);② dsh 环境 = 本机有 `D:\AgentSkill` 且技能路径含 `.dsh`(如 `C:\Users\{用户名}\.dsh\skills\`);③ 用户环境 = 本机**没有** `D:\AgentSkill`(技能装在哪、什么路径都是用户环境)。`{源技能目录}` 仅在 ①/② 存在,③ 不存在(用本技能自有知识库)。**源技能只读,禁止修改(不提供任何改前评估流程,一律视为不可写)**;本技能只能**从源技能单向同步**:① 从源技能**定位相关文件**(账号设定提炼实际依赖);② **重新整理为适合本技能的流程和知识库**(按本技能自有体系组织,**不复刻源技能目录结构**)。源技能为权威源;本技能 `references/知识库/账号设定/`(账号设定专用)与 `references/知识库/视频拆解/`(账号数据分析专用,23文件)为重组后的自有知识库,③用户环境独立使用。 |
| 部署场景修改规则 | **仅 ③ 用户环境(本机没有 `D:\AgentSkill`)适用本规则**;① 开发机 / ② dsh 环境(本机有 `D:\AgentSkill`)不适用本规则。用户环境:源技能路径不存在,标准库 `references/`(含自有知识库 `知识库/账号设定/` + `知识库/视频拆解/`)**永远不变**。用户新增/修改内容统一写入 `references-add/` 增量库,**目录结构与标准库镜像对齐**:`feature/`(功能级增量,按 `01_获取账号信息/02_获取视频/03_提炼账号设定/04_分析视频数据` 命名,对应标准库 `references/feature/`)、`知识库/`(方法论增量)、`铁律避坑规则/`(铁律与避坑)。运行时 `references/` + `references-add/` 取并集、标准库优先。**功能禁用判定 = 标准库与增量库中该功能文件都不存在**(只删标准库、增量库仍有时功能仍启用)。产出路径以 `references/路径配置.md` 为准(①开发机/②dsh环境并入标准库;③ 用户环境迁移回 `references-add/` 见其 README)。详见 `references-add/README.md`。 |
| 技能边界(红线) | 本技能是**账号分析技能**,产出止步于账号分析侧交付物:达人账号表更新(功能一)、短视频数据表格(功能二)、账号设定人设卡(功能三)、账号数据分析报告(功能四)、视频解析产物(功能五)。凡需**生成或改写脚本**(含「基于账号设定替换事件重写」等轻量场景),**必须切换到「短视频脚本创作」技能走 S1-S11 全流程**(含 S11 脚本检查和诊断:数字账取证、开场钩子铁律、编导终审验收),**禁止在本技能会话内直接手写脚本交付**。 |
| 技能边界(红线) | 本技能是**账号分析技能**,产出止步于账号分析侧交付物:达人账号表更新(功能一)、短视频数据表格(功能二)、账号设定人设卡(功能三)、账号数据分析报告(功能四)、视频解析产物(功能五)。凡需**生成或改写脚本**(含「基于账号设定替换事件重写」等轻量场景),**必须切换到「短视频工作台」技能走 S1-S11 全流程**(含 S11 脚本检查和诊断:数字账取证、开场钩子铁律、编导终审验收),**禁止在本技能会话内直接手写脚本交付**。 |
---
@@ -156,7 +156,7 @@
## 五、browser-harness 调用方式(环境 SOP)
> **环境说明(2026-09-02 调整)**:browser-harness 由 uv 工具安装,可执行文件位置**按系统区分**——Windows:`~/.local/bin/browser-harness.exe`;macOS/Linux:`~/.local/bin/browser-harness`;**技能本体位置(09-02 起)**——主技能 `短视频脚本创作/subskills/browser-harness/`(源仓库:`project/短视频脚本创作/V1.0/subskills/browser-harness/`,含 `envs/browser-harness/` 环境与 `src/`;**不再挂在 mcn-dou-analysis 下**);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发,换机器自带)。
> **环境说明(2026-09-02 调整)**:browser-harness 由 uv 工具安装,可执行文件位置**按系统区分**——Windows:`~/.local/bin/browser-harness.exe`;macOS/Linux:`~/.local/bin/browser-harness`;**技能本体位置(09-02 起)**——主技能 `短视频工作台/subskills/browser-harness/`(源仓库:`project/短视频脚本创作/V1.0/subskills/browser-harness/`,含 `envs/browser-harness/` 环境与 `src/`;**不再挂在 mcn-dou-analysis 下**);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发,换机器自带)。
### 5.0 环境检查与安装(每次浏览器任务前【必做】)
@@ -172,7 +172,7 @@
- **可跳过**:改用三方数据 API / MCP 兜底数据源,但功能一/二浏览器抓取无法执行
- **同意安装**:`uv tool install --python 3.12 --upgrade --force browser-harness`(`--python 3.12` 防止选中过旧版本;`--upgrade --force` 覆盖旧安装)
- **技能本体**:源仓库 `project/短视频脚本创作/V1.0/subskills/browser-harness/`(主技能 `短视频脚本创作/subskills/browser-harness/`);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发;如缺失可从 browser-harness 仓库的 `browser-harness skill` 命令重新生成)
- **技能本体**:源仓库 `project/短视频脚本创作/V1.0/subskills/browser-harness/`(主技能 `短视频工作台/subskills/browser-harness/`);dsh 部署环境 `~/.dsh/skills/browser-harness/`(随 dsh_MCNProject 仓库分发;如缺失可从 browser-harness 仓库的 `browser-harness skill` 命令重新生成)
- **安装后验证**:`command -v browser-harness`(macOS/Linux)/ `where browser-harness`(Windows)有输出 + `browser-harness doctor` 三要素全绿,再进入下方 5.1 环境准备
### 5.1 环境准备(每次浏览器任务前【必做】)
@@ -2,7 +2,7 @@
> Method: Creation Review | 创作复盘方法
> Status: 有效 (2026-08-22)
> Scope: 短视频脚本创作全流程(S1-S11)问题复盘与经验沉淀
> Scope: 短视频工作台·脚本创作 S1-S11 全流程问题复盘与经验沉淀
> 本目录存放创作流程中出现的问题复盘方法与经验总结,供后续创作/改写时参考,避免同类问题复现。
---
@@ -1,4 +1,4 @@
# 短视频脚本创作技能 — 使用指南
# 短视频工作台 — 使用指南
> 本技能提供短视频**创作、分析、诊断**的全链路能力。直接对话即可使用,无需记住指令。