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

@@ -39,24 +39,24 @@ description: "MCN 达人爆款视频解析与人设卡生成技能:达人账
| 规则 | 说明 |
|------|------|
| 达人账号表.xlsx(外部数据文件,不入技能包) | 账号登记台账为**外部数据文件,技能包不内置**(09-03 起:原内置副本为 08-26 早期过期数据已删除)。**权威台账 = 数据目录的桌面 `MCNSkill项目/达人账号表.xlsx`(①开发机/③用户环境,含俊希等最新登记);②dsh 环境侧数据已停更(dshworkspace 遗留表为 08-26 死数据),不作为权威、不维护**。表缺失时按 15 列结构现场新建:账号ID/达人昵称/抖音号/抖音ID/抖音地址/粉丝数/解析状态/人设卡/更新时间/获赞数/关注数/作品数/IP属地/简介/备注。**只能根据用户明确要求添加/修改账号**,不得自行添加或扩充。用户说加谁就加谁。输入信息中的账号若不在表中,**先添加到表**:账号ID自增、抖音号/抖音ID(sec_uid)/抖音地址存文本格式,其余字段留空待补。 |
| 达人账号表.xlsx(外部数据文件,不入技能包) | 账号登记台账为**外部数据文件,技能包不内置**(09-03 起:原内置副本为 08-26 早期过期数据已删除)。**权威台账 = 数据目录的桌面 `MCNSkill项目/达人账号表.xlsx`(开发机与用户环境同构);dsh 侧已整套下线(09-10:`D:\dshworkspace` 不存在),其遗留表不再作为任何来源**。表缺失时按 15 列结构现场新建:账号ID/达人昵称/抖音号/抖音ID/抖音地址/粉丝数/解析状态/人设卡/更新时间/获赞数/关注数/作品数/IP属地/简介/备注。**只能根据用户明确要求添加/修改账号**,不得自行添加或扩充。用户说加谁就加谁。输入信息中的账号若不在表中,**先添加到表**:账号ID自增、抖音号/抖音ID(sec_uid)/抖音地址存文本格式,其余字段留空待补。 |
| 数据格式 | 账号原始数据保存为 **原始 JSON 格式**,不用 Markdown。 |
| 文件夹命名 | 统一使用 `账号分析/` 作为根目录(默认产出根目录按三环境判定:**①开发机/③用户环境** 桌面 `~/Desktop/MCNSkill项目/`(`{达人昵称}/` 账号层直挂);**②dsh环境** `D:\dshworkspace\解析任务\`;**实际产出路径以 `references/路径配置.md` 为准**),子文件夹以达人昵称命名。视频文件夹命名规则:`视频标题(去特殊符号)_标签1_标签2`(去掉账号名标签和#号)。 |
| 文件夹命名 | 统一使用 `账号分析/` 作为根目录(默认产出根目录按**两环境判定**:开发机与用户环境**同构** → 桌面 `~/Desktop/MCNSkill项目/`(`{达人昵称}/` 账号层直挂);**实际产出路径以 `references/路径配置.md` 为准**),子文件夹以达人昵称命名。视频文件夹命名规则:`视频标题(去特殊符号)_标签1_标签2`(去掉账号名标签和#号)。 |
| 视频筛选标准 | 先按发布时间过滤**最近三个月**,排除**视频时长>15分钟**的视频,再按点赞+分享总量降序排列,取 TOP 6(不再设30W互动量门槛)。**实际满足条件的视频不足 6 条时,按实际条数取(TOPn 的 n=实际解析条数,如王微斯 4 条→TOP4)**,产出文件(设定 md/卡片)的「TOPn」均按实际条数写,不写 6。**本参数为唯一权威参数**:只在 SKILL.md 定义,其他文件(feature/流程/方法/避坑等)引用此处,**不得重复写数字**;调整只改本行,改后自检:`references/` 下 *.md 用 `grep "TOP ?[0-9]|凑满[0-9]|默认取[0-9]"` 应无残留,并同步 `scripts/excel_tool.py` 与 `scripts/select_top6.py` 两处 `count` 默认值(执行镜像)。 |
| 视频获取数量(**唯一权威参数**) | **≥60 条即停止滚动**;若滚动到底部后无法加载更多视频,也立即停止(两个条件先到者为准,禁止无限滚动)。本参数只在 SKILL.md 定义,其他文件(feature/操作规范等)引用此处,不得重复写数字;调整只改本行。 |
| 视频补充规则 | 解析失败或无法解析的视频,从视频数据中按排名规则(点赞+分享降序)取下一位视频补充,直至凑满「视频筛选标准」规定的数量(数量见上「视频筛选标准」唯一权威参数)。 |
| 人设卡方法论 | 必须结合 **脚本创作技能 + 女娲造人术** 两个技能库综合生成,不可仅凭通用知识。**人设卡聚焦内容创作本身(内容基因/打法/情绪/视听/规则/差异化壁垒的内容侧),不含商业化变现路径分析**(商业化/市场分析归功能四账号数据分析)。**人设卡统一 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 打开抖音网页版访问达人主页提取(昵称/抖音号/抖音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`。 |
| 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 下**;**09-10 起无 dsh 部署环境**)。检测与安装细节见 `references/浏览器搜索抖音账号操作规范.md` 第五节。 |
| 账号信息数据源(红线) | 获取达人账号信息(功能一)**必须浏览器优先**:browser-harness 打开抖音网页版访问达人主页提取(昵称/抖音号/抖音ID(sec_uid)/抖音地址/粉丝数/获赞数/关注数/作品数/IP属地/简介等)。**禁止从任何数据库读取账号字段回填账号表(含身份标识 sec_uid/抖音号/抖音地址)**:工作台库 `mcn-plugin.db` 的 `hot_accounts` 表 = MCP 内部账号库(`list_hot_accounts`/`hot_account_detail`)的**本地副本,读取其数据填表等同违反本红线**。这些库仅用于**流程状态参考**(判断是否已有解析/产出),**不是功能一数据源**;账号表登记(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`),其他文件引用此处,调整只改本行。 |
| 账号数据分析(功能四) | 独立于人设卡,聚焦「数据表现规律」(内容表现规律/月度趋势/差异化壁垒/商业化空间),产出独立文件 `{达人昵称}账号数据分析.md`,**不与功能三人设卡嵌套**。方法论见 `references/账号数据分析方法.md`。 |
| 数据分析依据(红线) | 功能四所有分析结论必须有明确数据依据:具体到视频标题 + 具体数值。后台私有数据拿不到时(完播率/留存率/GMV等)标「无数据」,**禁止用间接推断或定性描述替代**。 |
| 数据分析两段式(红线) | 功能四强制「**逐条拆解 → 汇总分析**」两段式:先对每条入选视频重度调用源技能逐条拆解(拆解内容单独保存到各视频自己的文件夹),**拆解全部完成后**才能进入汇总分析,禁止跳过逐条拆解直接写报告。 |
| 源技能路径与同步 | 生成账号设定/分析视频数据时,**调用源技能** `{源技能目录}/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`。 |
| 源技能路径与同步 | 生成账号设定/分析视频数据时,**调用源技能** `{源技能目录}/references/` 下的对应文件(`创作流程/4_账号设定解析和确认.md`、`创作流程/3_对标视频账号拆解.md`、`知识库/01_账号设定/`、`知识库/08_对话风格/`、`知识库/12_爆款拆解/`、`知识库/11_广告植入/` 等)。**两环境判定(仓库特征判定:看技能是否处于源技能 git 检出内——`git -C {技能目录} rev-parse --show-toplevel`;与技能装在什么路径无关)**:① 开发机 = 技能**处于源技能 git 检出内**(源技能);② 用户环境 = 技能**不在任何 git 检出内**(技能装在哪、什么路径都是用户环境)。`{源技能目录}` 仅在 ① 存在,② 不存在(用本技能自有知识库)。**源技能只读,禁止修改(不提供任何改前评估流程,一律视为不可写)**;本技能只能**从源技能单向同步**:① 从源技能**定位相关文件**(账号设定提炼实际依赖);② **重新整理为适合本技能的流程和知识库**(按本技能自有体系组织,**不复刻源技能目录结构**)。源技能为权威源;本技能 `references/知识库/账号设定/`(账号设定专用)与 `references/知识库/视频拆解/`(账号数据分析专用,23文件)为重组后的自有知识库,②用户环境独立使用。 |
| 部署场景修改规则 | **仅 ② 用户环境(技能不在任何 git 检出内)适用本规则**;① 开发机(技能处于源技能 git 检出内)不适用本规则。用户环境:源技能路径不存在,标准库 `references/`(含自有知识库 `知识库/账号设定/` + `知识库/视频拆解/`)**永远不变**。用户新增/修改内容统一写入 `references-add/` 增量库,**目录结构与标准库镜像对齐**:`feature/`(功能级增量,按 `01_获取账号信息/02_获取视频/03_提炼账号设定/04_分析视频数据` 命名,对应标准库 `references/feature/`)、`知识库/`(方法论增量)、`铁律避坑规则/`(铁律与避坑)。运行时 `references/` + `references-add/` 取并集、标准库优先。**功能禁用判定 = 标准库与增量库中该功能文件都不存在**(只删标准库、增量库仍有时功能仍启用)。产出路径以 `references/路径配置.md` 为准(①开发机并入标准库;② 用户环境迁移回 `references-add/` 见其 README)。详见 `references-add/README.md`。 |
| 技能边界(红线) | 本技能是**账号分析技能**,产出止步于账号分析侧交付物:达人账号表更新(功能一)、短视频数据表格(功能二)、账号设定人设卡(功能三)、账号数据分析报告(功能四)、视频解析产物(功能五)。凡需**生成或改写脚本**(含「基于账号设定替换事件重写」等轻量场景),**必须切换到「短视频工作台」技能走 S1-S11 全流程**(含 S11 脚本检查和诊断:数字账取证、开场钩子铁律、编导终审验收),**禁止在本技能会话内直接手写脚本交付**。 |
---
@@ -79,7 +79,7 @@ description: "MCN 达人爆款视频解析与人设卡生成技能:达人账
| 技能 | 路径 |
|------|------|
| 脚本创作技能(权威源) | `{源技能目录}`(**三环境判定**:① 开发机 = 本机有 `D:\AgentSkill` 且技能在 `D:\AgentSkill\` 下;② dsh 环境 = 本机有 `D:\AgentSkill` 且技能路径含 `.dsh`;③ 用户环境 = 本机没有 `D:\AgentSkill`(源技能不存在)。当前机器源技能路径 `D:/AgentSkill/mcn-video-script/project/短视频脚本创作/V1.0`;生成设定/分析数据时调用此源;**只读,禁止修改,只能从源技能同步到本技能**;本技能 `references/知识库/` 为账号设定 + 账号数据分析两个专用重组库,按两步法同步,不复刻源技能目录结构) |
| 脚本创作技能(权威源) | `{源技能目录}`(**两环境判定(仓库特征判定)**:看技能是否处于源技能 git 检出内(`git -C {技能目录} rev-parse --show-toplevel`)——在 = ① 开发机、不在 = ② 用户环境(源技能不存在)。**`{源技能目录}` 定位**:本技能内嵌部署时 = 本技能所在技能树的根(即本技能目录上两级,该目录中同时含 `SKILL.md` 与 `subskills/`);独立部署时按上述判定在 ① 环境中定位。生成设定/分析数据时调用此源;**只读,禁止修改,只能从源技能同步到本技能**;本技能 `references/知识库/` 为账号设定 + 账号数据分析两个专用重组库,按两步法同步,不复刻源技能目录结构) |
| 女娲造人术(nuwa-skill) | `subskills/nuwa-skill-main/`(已内嵌,无需跨 skill 调用) |
| 人设卡生成方法 | `references/人设卡生成方法.md`(账号类型判定+模板结构+深度分析,已吸收V2.0模板核心;综合人设卡统一12段结构,独立可执行) |
| 账号设定知识库(自有) | `references/知识库/账号设定/`(功能三人设选项+IP体系+对话风格9法) |
@@ -92,7 +92,7 @@ description: "MCN 达人爆款视频解析与人设卡生成技能:达人账
| 功能六流程 | `references/feature/06_生成账号设定卡片.md`(生成账号设定卡片五步执行:读设定→读模板样例→模块映射→SVG手绘→验证交付) |
| 账号设定卡模板样例 | `references/样例/`(最佳成品模板:`模板_旧梦留声机账号设定卡.svg` + 渲染参考 `参考_旧梦留声机_账号设定卡_长图版.png`;新账号复用版式骨架与样式常量,内容全替换) |
| 产出路径配置 | `references/路径配置.md`(🔴 产出路径唯一权威配置:用户自定义路径最高优先,默认桌面 `账号分析/` 兜底) |
| 增量库(references-add) | `references-add/`(③ 用户环境场景的增量库机制;当前①开发机/②dsh环境状态仅保留 README 机制说明,原增量已并入标准库:`references/路径配置.md` + `references/铁律避坑规则/`(含功能三`账号设定执行避坑.md` + 功能四`账号数据分析执行避坑.md`)) |
| 增量库(references-add) | `references-add/`(② 用户环境场景的增量库机制;当前 ①开发机 状态仅保留 README 机制说明,原增量已并入标准库:`references/路径配置.md` + `references/铁律避坑规则/`(含功能三`账号设定执行避坑.md` + 功能四`账号数据分析执行避坑.md`)) |
### 2.3 MCP 工具(myai-mcp-production)
@@ -1,19 +1,19 @@
# references-add(增量库)—— 机制说明
> **三环境判定(两步判定,与 SKILL.md 一致)**:第一步查本机是否存在 `D:\AgentSkill`——**无 = ③ 用户环境**(技能无论装在哪、什么路径);有 → 第二步看技能路径——**在 `D:\AgentSkill\` 下 = ① 开发机(源技能)**、**含 `.dsh` = ② dsh 部署环境**(如 `{主目录}/.dsh/skills/`)。
> **两环境判定(一步判定 · 仓库特征判定,与 SKILL.md 一致)**:判断技能是否**处于源技能 git 检出内**(`git -C {技能目录} rev-parse --show-toplevel` 返回仓库根)——**在 = ① 开发机(源技能)**、**不在 = ② 用户环境**(技能无论装在哪、什么路径)。
>
> **references-add 机制只服务 ③ 用户环境**:① 开发机 / ② dsh 环境标准库 `references/` 可正常修改(新增内容直接并入标准库对应位置),本目录可仅保留本说明(机制文档);③ 用户环境部署后标准库 `references/` **永远不变**,新增/修改内容统一写入本目录。
> **references-add 机制只服务 ② 用户环境**:① 开发机标准库 `references/` 可正常修改(新增内容直接并入标准库对应位置),本目录可仅保留本说明(机制文档);② 用户环境部署后标准库 `references/` **永远不变**,新增/修改内容统一写入本目录。
## 用途
当本技能(MCNDouAnalysis)被部署到**③ 用户环境**(本机没有 `D:\AgentSkill`)时,本技能的标准库 `references/`(含自有知识库 `知识库/账号设定/` + `知识库/视频拆解/`)在部署后**永远不变**。用户在使用过程中新增/修改的流程、方法论、分析方式、铁律等内容,统一整理到本文件夹。
当本技能(MCNDouAnalysis)被部署到**② 用户环境**(技能不在任何 git 检出内)时,本技能的标准库 `references/`(含自有知识库 `知识库/账号设定/` + `知识库/视频拆解/`)在部署后**永远不变**。用户在使用过程中新增/修改的流程、方法论、分析方式、铁律等内容,统一整理到本文件夹。
## 核心原则
| 目录 | 定位 | 内容来源 | 修改策略 |
|:---:|------|------|------|
| `references/` | 原始标准库(内置) | 开发时固化(含从源技能按两步法重组的账号设定知识库 + 视频拆解知识库) | **部署后永远不变** |
| `references-add/` | 动态增量库 | ③ 用户环境中用户对话中积累 | 随使用持续增长 |
| `references-add/` | 动态增量库 | ② 用户环境中用户对话中积累 | 随使用持续增长 |
## 目录结构
@@ -57,14 +57,13 @@ references/(标准库) + references-add/(增量库) → 取并集
## 修改规则(区分场景,判定标准与 SKILL.md 一致)
| 场景 | 判断依据(两步判定) | 生成设定调用的文件 | 修改方式 |
| 场景 | 判断依据(一步判定:看是否处于源技能 git 检出内) | 生成设定调用的文件 | 修改方式 |
|------|---------|------------------------|---------|
| **① 开发机** | 本机有 `D:\AgentSkill` 且技能路径在 `D:\AgentSkill\` 下(源技能) | 调用源技能对应文件 | **源技能只读,禁止修改**;只能从源技能**单向同步**到本技能:按两步法(① 从源技能定位相关文件 → ② 重组为本技能自有流程/知识库)同步到 `references/知识库/`;标准库 `references/` 可正常修改(开发机直接改标准库,不使用增量库机制) |
| **② dsh 环境** | 本机有 `D:\AgentSkill` 且技能路径含 `.dsh`(如 `{主目录}/.dsh/skills/`) | 调用源技能对应文件 | **源技能只读,禁止修改**;只能从源技能**单向同步**到本技能:按两步法(① 从源技能定位相关文件 → ② 重组为本技能自有流程/知识库)同步到 `references/知识库/`;标准库 `references/` 可正常修改,增量内容直接并入标准库对应位置 |
| **③ 用户环境** | 本机**没有** `D:\AgentSkill`(技能装在哪、什么路径都是用户环境) | 调用本技能 `references/`(标准库,含账号设定 + 视频拆解自有知识库) | **不修改 `references/`**,新增/修改内容写入 `references-add/` 对应目录 |
| **① 开发机** | 技能**处于源技能 git 检出内**(源技能) | 调用源技能对应文件 | **源技能只读,禁止修改**;只能从源技能**单向同步**到本技能:按两步法(① 从源技能定位相关文件 → ② 重组为本技能自有流程/知识库)同步到 `references/知识库/`;标准库 `references/` 可正常修改(开发机直接改标准库,不使用增量库机制) |
| **② 用户环境** | 技能**不在任何 git 检出内**(技能装在哪、什么路径都是用户环境) | 调用本技能 `references/`(标准库,含账号设定 + 视频拆解自有知识库) | **不修改 `references/`**,新增/修改内容写入 `references-add/` 对应目录 |
## ③ 用户环境启用流程(如未来部署)
## ② 用户环境启用流程(如未来部署)
1. 把 `references/路径配置.md`、`references/铁律避坑规则/` 移回 `references-add/` 对应位置
2. 删除标准库中③ 用户环境不需要的增量内容
2. 删除标准库中② 用户环境不需要的增量内容
3. 按本文件「修改规则」维护增量库
@@ -13,7 +13,7 @@
### Step 1.0 账号表登记(前置)
先检查数据目录的 `达人账号表.xlsx`(**外部数据文件,不入技能包**,位置见 SKILL.md 红线「达人账号表.xlsx」行;**表缺失时先按 15 列结构现场新建**),输入信息中的账号若不在表中,先添加到表:**只占位 账号ID(自增)+ 达人昵称**;抖音号/抖音ID(sec_uid)/抖音地址等身份标识字段**留空,待浏览器抓取后回填**(浏览器抓取到的值才写,存文本格式防科学计数法),其余字段(粉丝数/解析状态/更新时间等)同样留空待补。**禁止从工作台库(`mcn-plugin.db` 的 `hot_accounts` 表 = MCP 内部账号库本地副本)/ dsh 原库 / MCP 内部账号库读取任何字段填表**——身份标识也一样,一律浏览器抓取(红线见 SKILL.md「账号信息数据源」)。再继续获取数据。
先检查数据目录的 `达人账号表.xlsx`(**外部数据文件,不入技能包**,位置见 SKILL.md 红线「达人账号表.xlsx」行;**表缺失时先按 15 列结构现场新建**),输入信息中的账号若不在表中,先添加到表:**只占位 账号ID(自增)+ 达人昵称**;抖音号/抖音ID(sec_uid)/抖音地址等身份标识字段**留空,待浏览器抓取后回填**(浏览器抓取到的值才写,存文本格式防科学计数法),其余字段(粉丝数/解析状态/更新时间等)同样留空待补。**禁止从工作台库(`mcn-plugin.db` 的 `hot_accounts` 表 = MCP 内部账号库本地副本)/ MCP 内部账号库读取任何字段填表**——身份标识也一样,一律浏览器抓取(红线见 SKILL.md「账号信息数据源」)。再继续获取数据。
### 浏览器搜索抖音账号ID
@@ -77,7 +77,7 @@ id = "{detailId}"
> 完整方法见 `references/人设卡生成方法.md`(账号类型判定 + 三种模板结构 + 女娲造人术深度分析 + 综合人设卡结构)
**必须使用两个技能库综合生成,缺一不可:**
- 脚本创作技能 → 源技能 `{源技能目录}/references/`(结构骨架,调用 `创作流程/4_账号设定解析和确认.md` + `创作流程/3_对标视频账号拆解.md` + `知识库/01_账号设定/` + `知识库/08_对话风格/`;①开发机/②dsh环境优先调用源技能。V2.0 模板核心已吸收进 `references/人设卡生成方法.md`,③用户环境独立使用;选项体系在 `references/知识库/账号设定/`)
- 脚本创作技能 → 源技能 `{源技能目录}/references/`(结构骨架,调用 `创作流程/4_账号设定解析和确认.md` + `创作流程/3_对标视频账号拆解.md` + `知识库/01_账号设定/` + `知识库/08_对话风格/`;①开发机优先调用源技能。V2.0 模板核心已吸收进 `references/人设卡生成方法.md`,②用户环境独立使用;选项体系在 `references/知识库/账号设定/`)
- 女娲造人术 → `subskills/nuwa-skill-main/`(深度分析方法)
**人设卡统一 12 段结构**:账号核心定位 → 账号内容基因 → 类型库(按账号类型适配)→ 情绪结构 → 视听风格 → 内容打法 → 内容规则 → 系列内容规划 → 差异化壁垒 → 红线清单 → 当前需解决的问题 → 设定分析说明。**人设卡聚焦内容创作本身(含差异化壁垒的内容侧"为什么别人做不了"),不含商业化变现路径分析**(商业化/市场分析归功能四账号数据分析)。
@@ -35,7 +35,7 @@
2. 按发布时间过滤近4个月
3. 按月份分组,每月取最好1条 + 最差1条
4. 补齐 MCP 解析:入选视频无解析的先提交解析(`upload_douyin_video` → 等待 → `short_video_detail`)
5. **逐条拆解(重度调用源技能 + 自有拆解知识库)**:按 `references/账号数据分析方法.md` 3.0 对每条入选视频完整拆解(调用源技能 `{源技能目录}/references/` 的拆解知识库,见《账号数据分析方法.md》3.0 源技能依赖表;**本技能自有拆解知识库 `references/知识库/视频拆解/`(23文件)③用户环境独立运行**,无源技能时以自有知识库为准),拆解分析保存到各视频自己的文件夹(`视频分析/{视频文件夹}/{视频标题}_拆解分析.md`)
5. **逐条拆解(重度调用源技能 + 自有拆解知识库)**:按 `references/账号数据分析方法.md` 3.0 对每条入选视频完整拆解(调用源技能 `{源技能目录}/references/` 的拆解知识库,见《账号数据分析方法.md》3.0 源技能依赖表;**本技能自有拆解知识库 `references/知识库/视频拆解/`(23文件)②用户环境独立运行**,无源技能时以自有知识库为准),拆解分析保存到各视频自己的文件夹(`视频分析/{视频文件夹}/{视频标题}_拆解分析.md`)
6. **汇总分析**:拆解全部完成后,结合拆解文件 + 表格数据,按 3.1-3.6 维度逐项分析(月度趋势/爆款共性/低表现共性/内容要素关联/差异化壁垒/商业化空间);报告内容层结论必须回溯到拆解文件
7. 产出 `{达人昵称}账号数据分析.md`
@@ -59,7 +59,7 @@
| 文件 | 用途 |
|------|------|
| `references/账号数据分析方法.md` | 完整方法(六维分析维度/报告8章结构/13条报告质量自查红线) |
| `references/知识库/视频拆解/` | 功能四拆解知识库(23文件:开场/框架/情绪/钩子/植入/拆解,③用户环境独立运行) |
| `references/知识库/视频拆解/` | 功能四拆解知识库(23文件:开场/框架/情绪/钩子/植入/拆解,②用户环境独立运行) |
| `references/解析结果格式规范.md` | 目录结构权威源 |
| `references/接口调用/MCP_工具调用规范.md` | MCP 安装/登录/降级规范(Step 7 补解析 + 拆解降级) |
| `references/铁律避坑规则/账号数据分析执行避坑.md` | 功能四执行避坑(14个问题按工具/数据/流程/分析四类归档) |
@@ -47,7 +47,7 @@
| 6 | 参考某账号样式 | 用户指定「像 XX 那样做」 | 读被参考账号的卡片做样式参考(版式+底色跟该账号风格),内容仍用本账号设定 |
| 7 | 调整已有卡片 | 用户说改现有卡片的某处 | **直接改 SVG 文件**(单点修改,不重走功能三/全流程) |
**环境路径**:① 开发机 / ③ 用户环境 = `桌面/MCNSkill项目/{账号名}/`;② dsh 环境 = `D:\dshworkspace\解析任务\{达人昵称}/`(以 `references/路径配置.md` 为唯一权威)。
**环境路径**:开发机与用户环境**同构** = `桌面/MCNSkill项目/{账号名}/`(**无 dsh 分支**,以 `references/路径配置.md` 为唯一权威)。
**双向联动维护(修改时两边一起修改)**:
- 设定 md 与设定卡 = **同一账号信息的两种载体**,任一边修改,另一边必须同步:
@@ -17,8 +17,8 @@
| 环境 | 判定条件 | 安装内容 |
|------|---------|---------|
| **开发环境** | 本机存在 `D:\AgentSkill` 且 Skill 根目录路径在 `D:\AgentSkill\` 下(源技能仓库) | `myai-mcp-production` + `myai-mcp-test`(推荐两个都装,可选只装正式) |
| **非开发环境** | 部署到其他路径(组员机器、服务器) | 只装 `myai-mcp-production`(正式),不装测试环境 |
| **开发环境** | Skill 根目录**处于源技能 git 检出内**(源技能仓库,`git -C {技能目录} rev-parse --show-toplevel` 返回仓库根) | `myai-mcp-production` + `myai-mcp-test`(推荐两个都装,可选只装正式) |
| **非开发环境** | 部署到其他路径(组员机器、服务器;不在任何 git 检出内) | 只装 `myai-mcp-production`(正式),不装测试环境 |
---
@@ -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 下**;**09-10 起无 dsh 部署环境**)。
### 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/`;**09-10 起无 dsh 部署环境**;如缺失可从 browser-harness 仓库的 `browser-harness skill` 命令重新生成)
- **安装后验证**:`command -v browser-harness`(macOS/Linux)/ `where browser-harness`(Windows)有输出 + `browser-harness doctor` 三要素全绿,再进入下方 5.1 环境准备
### 5.1 环境准备(每次浏览器任务前【必做】)
@@ -262,30 +262,33 @@ PY
**锁规则(每个需要浏览器的任务必须遵守)**:
1. **锁文件**:`D:\AgentSkill\mcn-workshop\.browser-lock`(工作台 `/api/run` 对浏览器类任务已自动注入本约束到 prompt,AI 会话执行时遵守即可)
1. **锁文件位置**:**工作台目录下的 `.browser-lock`**(工作台目录 = 本技能根下的 `mcn-work-shop/`)。工作台 `/api/run` 对浏览器类任务会把**运行时解析出的绝对路径**注入 prompt,AI 会话执行时**以注入的路径为准**;此处不写死盘符。
- 工作台触发的会话 cwd 即**工作台目录**,故可直接用相对路径 `.browser-lock`(推荐,跨机器可迁移)
- 手工执行(cwd 不是工作台目录)时,先定位工作台目录再拼 `.browser-lock`
2. **操作前**:检查锁文件是否存在(`ls`)→ 存在则等 10 秒重试(最多 18 次 ≈ 3 分钟)
3. **死锁保护**:锁文件修改时间超过 10 分钟 → 视为死锁,可删除后抢占
4. **拿锁**:`echo "<任务名> <时间戳>" > D:\AgentSkill\mcn-workshop\.browser-lock` → 才操作浏览器
5. **释放**:浏览器操作全部完成后(无论成败)`rm -f D:\AgentSkill\mcn-workshop\.browser-lock`
4. **拿锁**:`echo "<任务名> <时间戳>" > .browser-lock` → 才操作浏览器
5. **释放**:浏览器操作全部完成后(无论成败)`rm -f .browser-lock`
6. **串行协调**:多个任务抢锁 = 先到先用;拿到锁的任务完成后释放,下一个任务继续;标签页复用规则(5.5)仅在自己持有锁期间适用
```bash
# 前置:确认当前目录就是工作台目录(目录内含 .browser-lock 与 server.js)
# 拿锁(互斥,带重试)
for i in $(seq 1 18); do
if [ ! -f "D:/AgentSkill/mcn-workshop/.browser-lock" ]; then
echo "$(date '+%H:%M:%S') ${任务名}" > "D:/AgentSkill/mcn-workshop/.browser-lock"
if [ ! -f ".browser-lock" ]; then
echo "$(date '+%H:%M:%S') ${任务名}" > ".browser-lock"
break
fi
# 死锁保护:锁超过 10 分钟强制抢占
if [ -f "D:/AgentSkill/mcn-workshop/.browser-lock" ] && [ $(($(date +%s) - $(stat -c %Y "D:/AgentSkill/mcn-workshop/.browser-lock" 2>/dev/null || echo 0))) -gt 600 ]; then
rm -f "D:/AgentSkill/mcn-workshop/.browser-lock"
if [ -f ".browser-lock" ] && [ $(($(date +%s) - $(stat -c %Y ".browser-lock" 2>/dev/null || echo 0))) -gt 600 ]; then
rm -f ".browser-lock"
continue
fi
sleep 10
done
# ... 浏览器操作 ...
# 释放锁(无论成败)
rm -f "D:/AgentSkill/mcn-workshop/.browser-lock"
rm -f ".browser-lock"
```
```bash
@@ -1,6 +1,6 @@
# 路径引用规范(相对路径铁律,P0)
> 适用:本技能树(主技能 + references/references-add + scripts + 全部 subskills 及嵌套 subskills)。技能会被部署到 **开发机 / dsh 环境 / 用户环境** 三种机器,**绝对路径随机器变化必然失效**,故技能内一切文件引用一律使用**相对路径**。
> 适用:本技能树(主技能 + references/references-add + scripts + 全部 subskills 及嵌套 subskills)。技能会被部署到 **开发机 / 用户环境** 两种机器,**绝对路径随机器变化必然失效**,故技能内一切文件引用一律使用**相对路径**。
## 一、铁律(3 条)
@@ -18,12 +18,12 @@
| `__file__` 动态推导 | `BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))` | 脚本定位技能根,跨环境可迁移 |
| 环境变量 | `os.getenv("REDFOX_API_KEY")`、`MCN_RANKING_DIR` | 值由外部注入 |
| URL | `https://github.com/...` | 外部资源 |
| 环境判别锚点 | 「本机是否存在 `D:\AgentSkill`」「技能路径是否含 `.dsh`」 | 仅作**是否存在/是否包含**的判定条件,**禁止**将其作为实际读写路径 |
| 动态产出目录占位 | 桌面 `MCNSkill项目/{账号名}/`、`D:\dshworkspace\创作任务\` | 由各技能 `references(-add)/路径配置.md` 运行时判定,允许出现于规则文档 |
| 环境判别锚点 | 「技能目录是否处于 git 检出内」 | 仅作**是否存在**的判定条件,**禁止**将其作为实际读写路径;锚点必须用**仓库特征**(git 检出),禁止用写死盘符 |
| 动态产出目录占位 | 桌面 `MCNSkill项目/{账号名}/` | 由各技能 `references(-add)/路径配置.md` 运行时判定,允许出现于规则文档 |
## 三、禁令项(这些绝对禁止)
- **Windows 盘符绝对路径**:`C:\Users\maidou\...`、`D:\AgentSkill\...`(含正反斜杠两种写法)——除「环境判别锚点/路径配置规则表」语境外的任何引用位置。
- **Windows 盘符绝对路径**:`C:\Users\maidou\...`、`D:\MyRepo\...`(含正反斜杠两种写法)——除「环境判别锚点/路径配置规则表」语境外的任何引用位置。
- **Unix 绝对路径**:`/Users/maidou/...`、`/home/...`、`/tmp/...`(shebang `#!/usr/bin/env python3` 除外)。
- **越级引用**:`../../..` 跳出技能根指向包外文件。
- **引用技能包外文档**:md 链接指向不存在于包内的本地文件(如仓库根的维护文档)——部署环境无此文件即断链。
@@ -34,7 +34,7 @@
| 场景 | 说明 |
|------|------|
| 仅开发机工具 | 不随技能分发的目录(如 `mcn-work-shop/`),内部可保留开发机路径 |
| 环境判别/路径配置文档 | `路径配置.md`、SKILL.md 环境判定节——锚点 `D:\AgentSkill`、`.dsh`、`D:\dshworkspace\...` 是**规则内容**不是引用,保留 |
| 环境判别/路径配置文档 | `路径配置.md`、SKILL.md 环境判定节——锚点 git 检出特征是**规则内容**不是引用,保留 |
| 示例/教学文本 | `C:/Videos/demo.mp4`、`C:/path/to/file` 等明确示例(`path/to`、`demo` 字样) |
| 历史日志 | `.workbuddy/memory/` 既有日志保留原样,不改写历史 |
| 第三方整包 | 整包拷贝的第三方技能(如 browser-harness/lieflat-charts/参考skills/)内部自带约定不重写;但**本技能对它们的引用**仍须相对路径 |
@@ -50,16 +50,16 @@
### 3.0 逐条拆解(汇总前必做)
**重度调用源技能 + 本技能自有拆解知识库**(源技能为权威源,仅①开发机/②dsh环境存在;本技能自有知识库③用户环境独立运行):
**重度调用源技能 + 本技能自有拆解知识库**(源技能为权威源,仅①开发机存在;本技能自有知识库②用户环境独立运行):
| 源技能文件(权威源,路径相对 `{源技能目录}/references/`,仅①开发机/②dsh环境存在) | 用于 |
| 源技能文件(权威源,路径相对 `{源技能目录}/references/`,仅①开发机存在) | 用于 |
|-----------|------|
| `创作流程/3_对标视频账号拆解.md` | 拆解主流程:逐条视频按拆解步骤完整过一遍 |
| `知识库/12_爆款拆解/爆款文案反推工作流_13字段标准化拆解.md` | 逐条标准化拆解字段(选题/钩子/框架/情绪/结尾等) |
| `知识库/11_广告植入/广告植入方法论.md` | 带品牌视频的植入方式评估(五种植入方式/黄金位/口播花字分工/卖点分层/自然度) |
| `知识库/03_框架节奏` `04_爆款开场` `06_剧情钩子` `07_情绪共鸣` | 拆解各内容维度时的评判标准 |
> **本技能自有拆解知识库 `references/知识库/视频拆解/`(23文件)**:与上表源技能文件对应(两步法重组为本技能自有体系),③用户环境无源技能时以自有知识库为准拆解,深度不受限。拆解时源技能(①开发机/②dsh环境)与自有知识库取并集、源技能优先。
> **本技能自有拆解知识库 `references/知识库/视频拆解/`(23文件)**:与上表源技能文件对应(两步法重组为本技能自有体系),②用户环境无源技能时以自有知识库为准拆解,深度不受限。拆解时源技能(①开发机)与自有知识库取并集、源技能优先。
> **五维诊断模型说明**:单条视频数据表现诊断沿用五维模型(传播力/留存力/互动力/转化力/内容力),维度定义见本方法论 四(报告结构·二)(不依赖源技能文件——源技能 V2.0 已删除独立五维模型文件,数据诊断标准以本方法论为准)。
@@ -129,7 +129,7 @@
### 3.6 商业化空间分析
> 原"人设卡"中的广告植入相关内容移至此处。
> **植入方式分析必须参考《广告植入方法论》**(源技能 `知识库/11_广告植入/广告植入方法论.md`,本技能自有 `references/知识库/视频拆解/植入01_广告植入方法.md` ③用户环境独立使用):用「五种植入方式(口播/画面/情节/场景/体验)+ 植入黄金位(四段式)+ 口播花字分工 + 卖点分层 + 自然度评估」评估植入好坏,禁止只用"硬广/软广"浅标签。
> **植入方式分析必须参考《广告植入方法论》**(源技能 `知识库/11_广告植入/广告植入方法论.md`,本技能自有 `references/知识库/视频拆解/植入01_广告植入方法.md` ②用户环境独立使用):用「五种植入方式(口播/画面/情节/场景/体验)+ 植入黄金位(四段式)+ 口播花字分工 + 卖点分层 + 自然度评估」评估植入好坏,禁止只用"硬广/软广"浅标签。
> **已验证的「好的植入」范式**(示例数据仅作方法说明,不代表当前分析账号):「痛点场景化口播 + 剧情道具回收」——口播嵌在剧情痛点场景(如约会/形象焦虑类痛点)而非中段打断情绪,产品梗提前埋设、剧情结尾回收。对标案例:该类植入视频点赞 80万+(示例账号近4个月 TOP1/2)。
- 当前是否有广告植入
@@ -5,13 +5,14 @@
## 一、默认路径(用户未自定义时生效)
**先判断运行环境(三环境两步判定),再按运行系统解析桌面路径:**
**先判断运行环境(两环境判定 · 仓库特征判定,v3),再按运行系统解析桌面路径:**
| 运行环境 | 判断依据 | 默认产出根目录 |
|:---|:---|:---|
| dsh 部署环境 | 技能路径含 `.dsh`,且本机存在 `D:\AgentSkill`(如 `C:\Users\{用户名}\.dsh\skills\…`) | **优先** `D:\dshworkspace\解析任务\`(主工作区「解析任务」目录) |
| 开发机 | 技能路径不含 `.dsh`(源技能在 `D:\AgentSkill` 下) | 用户桌面 `MCNSkill项目/`(`{达人昵称}/` 直挂,无技能文件夹层) |
| 用户环境 | 本机不存在 `D:\AgentSkill`(技能装在用户机器上,路径不限、不一定含 `.dsh`) | 用户桌面 `MCNSkill项目/`(与开发机同构) |
| 开发机 | 技能**处于源技能 git 检出内**(`git -C {技能目录} rev-parse --show-toplevel` 能返回仓库根) | 用户桌面 `MCNSkill项目/`(`{达人昵称}/` 直挂,无技能文件夹层) |
| 用户环境 | 技能**不在任何 git 检出内**(技能装在用户机器上,路径不限,如 `~/.workbuddy/skills/…`) | 用户桌面 `MCNSkill项目/`(与开发机同构) |
> **09-10 起 dsh 部署环境已废弃**(`~/.dsh/skills/` 与 `D:\dshworkspace` 均不存在)——不再有 dsh 分支与 `D:\dshworkspace\解析任务\` 产出路径。历史条目见文末「变更记录」。
桌面路径按运行系统自动解析:
@@ -21,7 +22,10 @@
| macOS | `~/Desktop/`(即 `/Users/{用户名}/Desktop/`) |
**AI 执行规则:**
1. 先做三环境两步判定:① 本机是否存在 `D:\AgentSkill`——不存在即**用户环境** → 桌面 `MCNSkill项目/`;② 本机存在时再看技能自身路径——含 `.dsh` 即 **dsh 部署环境** → **优先操作** `D:\dshworkspace\解析任务\`(「解析任务」子目录不存在则创建);不含 `.dsh` 即**开发机** → 桌面 `MCNSkill项目/`(开发机与用户环境同构:`MCNSkill项目/{达人昵称}/`)
1. 先做两环境判定(**仓库特征判定**):
- 判断技能是否处于**源技能 git 检出内**——执行 `git -C "{技能目录}" rev-parse --show-toplevel`,返回仓库根即 **① 开发机**;命令失败即 **② 用户环境**。无 git 环境时兜底:从技能目录向上逐级查找,任一级存在 `.git` 目录/文件即开发机,查到盘符根仍未命中即用户环境
- 开发机与用户环境产出**同构** → 桌面 `MCNSkill项目/{达人昵称}/`
- ⚠️ **不存在 dsh 分支**:dsh 侧已整套下线(09-10),不要再按 `.dsh` 路径段或 `D:\dshworkspace` 做任何分支判断
2. 再判断当前运行系统(Windows / macOS),拼接桌面路径
3. 目录不存在则自动创建
4. 产出结构:`{产出根目录}/{达人昵称}/…`(内部文件结构不变,仅根目录可变)
@@ -49,7 +53,7 @@
## 三、解析规则(优先级从高到低)
1. 本文件「用户自定义路径」记录 → 用自定义路径(最新一条生效)
2. 本文件默认路径 → 按三环境两步判定确定产出根目录(本机无 `D:\AgentSkill` → 桌面 `MCNSkill项目/`;有且技能路径含 `.dsh` → `D:\dshworkspace\解析任务\`;有且不含 `.dsh` → 桌面 `MCNSkill项目/`),再按系统拼接桌面路径
2. 本文件默认路径 → 按两环境判定确定产出根目录(在源技能 git 检出内 = 开发机 → 桌面 `MCNSkill项目/`;不在任何 git 检出内 = 用户环境 → 桌面 `MCNSkill项目/`。**两者同构**,均无 dsh 分支),再按系统拼接桌面路径
3. 路径含 `~` 时自动展开为用户主目录
4. 路径含 `{用户名}` 时替换为当前系统用户名
5. 目录不存在时自动创建
@@ -58,3 +62,5 @@
- 2026-08-26:产出路径改为三级优先级(借鉴脚本创作技能):① dsh 环境 + 主工作区 `D:\dshworkspace` 存在 → `D:\dshworkspace\解析任务\`;② dsh 环境但无主工作区(异机部署)→ 桌面 `DSHSkill项目/账号分析/`;③ 非 dsh → 桌面 `MCNSkill项目/账号分析/`。产出结构 `{达人昵称}/…` 不变。
- 2026-08-26(三环境重构 + 账号层直挂,对齐脚本创作技能定稿):环境判定由「dsh vs 非 dsh」改为**三环境两步判定**(①本机无 `D:\AgentSkill`=用户环境;②有且技能路径含 `.dsh`=dsh 部署环境;③有且不含 `.dsh`=开发机);`DSHSkill项目/` 根目录**整体废弃**(原「dsh 异机兜底」场景并入用户环境);非 dsh 产出根目录由 `MCNSkill项目/账号分析/` 改为 `MCNSkill项目/`——去掉技能文件夹层,`{达人昵称}/` 直挂(与脚本创作 `MCNSkill项目/{账号名}/` 同根);dsh 部署环境产出 `D:\dshworkspace\解析任务\` 不变。产出结构 `{达人昵称}/…` 不变。
- 2026-09-10(判定锚点重构 v2 · 仓库特征判定):环境判定锚点由「本机是否存在 `D:\AgentSkill`」改为**仓库特征判定**——第一步查技能路径是否含 `.dsh`(含 = dsh 部署环境),第二步用 `git -C {技能目录} rev-parse --show-toplevel` 判断技能是否处于源技能 git 检出内(在 = 开发机,不在 = 用户环境;无 git 时兜底为向上逐级查找 `.git`)。产出根目录三环境结果**完全不变**,仅判定依据改变。**根因**:仓库本地路径迁移导致写死盘符锚点失效 → 开发机被误判为「用户环境」。(用户确认:"改为仓库特征判定";对齐脚本创作技能定稿)
- 2026-09-10(环境模型精简 v3 · 三环境 → 两环境):**dsh 部署环境整体废弃**(用户确认:"第一步 技能路径含 .dsh 路径段 ② dsh 部署环境 没有这个环境了")。实测依据:`~/.dsh/skills/` 不存在、`~/.dsh/mcn-plugin.db` 不存在、`~/.dsh` 下仅剩 `profiles/`、`D:\dshworkspace` 整个目录不存在。故删除 `.dsh` 判定分支与 `D:\dshworkspace\解析任务\` 产出路径,判定简化为**一步**。剩余两环境产出本就同构(桌面 `MCNSkill项目/`),产出结果不变。(对齐脚本创作技能定稿)
@@ -29,6 +29,6 @@
| 数据 | 允许来源 | 禁止来源 |
|------|---------|---------|
| 账号身份标识(抖音号/sec_uid/抖音地址) | **浏览器抓取**(browser-harness 访问抖音主页) | 工作台库 `mcn-plugin.db`(hot_accounts 表 = MCP 内部账号库本地副本)、dsh 原库、MCP `list_hot_accounts`/`hot_account_detail` |
| 账号身份标识(抖音号/sec_uid/抖音地址) | **浏览器抓取**(browser-harness 访问抖音主页) | 工作台库 `mcn-plugin.db`(hot_accounts 表 = MCP 内部账号库本地副本)、MCP `list_hot_accounts`/`hot_account_detail` |
| 账号统计数据(粉丝/获赞/关注/作品/IP/简介) | **浏览器抓取**(网页实时值) | 同上(MCP 兜底仅限浏览器无法访问时,须注明来源) |
| 流程状态参考(是否已解析/已生成) | 工作台库/dsh 库**只读参考** | ——(只用于判断,不回填账号表) |
| 流程状态参考(是否已解析/已生成) | 工作台库**只读参考** | ——(只用于判断,不回填账号表) |