docs(分析技能+工作台): 固化已有数据处理规则(库中已有≠可直接使用,复用优先+询问更新)
- 新建 references/铁律避坑规则/已有数据处理规则.md:分场景决策表+判断依据(产出目录权威/质量校验/增量处理)+散落规则收敛出处 - SKILL.md 加「已有数据处理(统一决策)」引用行 - 工作台 docs/AI会话任务输入输出对照.md 关键细节加已有数据处理条目
This commit is contained in:
1 parent
cce27c0ba2
commit
3b09d73248
4 files changed
+59
No files matched your search
@@ -176,3 +176,9 @@
|
|||||||
- **L732 空状态**「完成改写的脚本会出现在这里」→「AI 创作的脚本会出现在这里」(功能名「AI写脚本」保留,待用户定夺统一为 AI创作)
|
- **L732 空状态**「完成改写的脚本会出现在这里」→「AI 创作的脚本会出现在这里」(功能名「AI写脚本」保留,待用户定夺统一为 AI创作)
|
||||||
- **CDP 验证 PASS**(cdp-verify-gensb.mjs 新增):#/rewrites → 对比弹窗 → 重新生成分镜 → title=重新生成分镜/label=分镜指令/desc+prompt 含「AI 脚本」且无「改写」
|
- **CDP 验证 PASS**(cdp-verify-gensb.mjs 新增):#/rewrites → 对比弹窗 → 重新生成分镜 → title=重新生成分镜/label=分镜指令/desc+prompt 含「AI 脚本」且无「改写」
|
||||||
- 已 commit(c9db…,2 小时节奏内不 push)
|
- 已 commit(c9db…,2 小时节奏内不 push)
|
||||||
|
|
||||||
|
## 09-01 12:2x 已有数据处理规则固化(用户:库中已有数据如何处理 → 需要)
|
||||||
|
- **用户问题**:用户要求「获取账号数据/提取账号设定/分析视频」,数据库中已有数据如何处理
|
||||||
|
- **规则定稿(一句话)**:库中已有 ≠ 可直接使用——实时数据(账号信息/视频列表)必须重新获取(红线禁回填);分析产物(人设卡/视频解析/分析报告)复用优先 + 询问是否更新,只对增量补获取;「已有」须校验内容质量(存在≠有效,假数据视为无,实测 1629「连通性测试」8字符假 persona)
|
||||||
|
- **落盘 3 处**:①新建 `subskill/mcn-dou-analysis/references/铁律避坑规则/已有数据处理规则.md`(统一决策表:分场景决策表+三判断依据+收敛散落规则出处+接口速查);②SKILL.md 红线行后加「已有数据处理(统一决策)」引用行;③工作台 `docs/AI会话任务输入输出对照.md` 关键细节加「已有数据处理」条目
|
||||||
|
- 已 commit(2 小时节奏内不 push)
|
||||||
@@ -95,6 +95,7 @@
|
|||||||
- **视频选题提取**:`extractVideoTopic(content)` 取解析 content 的「# 选题」段(到下一个 `\n# ` 标题止);无该段(老脚本为分镜头表格式)→ `buildTopicBlock` mode=content 携带全文 + 提炼指令,AI 先提炼选题再创作。
|
- **视频选题提取**:`extractVideoTopic(content)` 取解析 content 的「# 选题」段(到下一个 `\n# ` 标题止);无该段(老脚本为分镜头表格式)→ `buildTopicBlock` mode=content 携带全文 + 提炼指令,AI 先提炼选题再创作。
|
||||||
- **按钮命名**:全部统一「AI创作」(2026-09-01),弹窗标题同;「提炼账号设定」「生成分镜」「复盘」「分析/关注」「添加」为各自独立任务。
|
- **按钮命名**:全部统一「AI创作」(2026-09-01),弹窗标题同;「提炼账号设定」「生成分镜」「复盘」「分析/关注」「添加」为各自独立任务。
|
||||||
- **未解析分支**:带 video_url 时 prompt 内嵌「视频地址:{url}」;账号列表视频(#/rewrites)用 r.url,账号详情视频列表用 r.aweme 拼 https://www.douyin.com/video/{aweme}(历史遗留,建议统一为 video_url)。
|
- **未解析分支**:带 video_url 时 prompt 内嵌「视频地址:{url}」;账号列表视频(#/rewrites)用 r.url,账号详情视频列表用 r.aweme 拼 https://www.douyin.com/video/{aweme}(历史遗留,建议统一为 video_url)。
|
||||||
|
- **已有数据处理**:AI 会话任务执行时若库中/产出目录已有该账号数据(人设卡/视频解析/分析报告),技能侧按**复用优先 + 询问更新**处理,实时数据(账号信息/视频列表)仍必须重新获取(红线禁回填);「已有」须校验内容质量(存在≠有效)。完整决策表见 `{分析技能}/references/铁律避坑规则/已有数据处理规则.md`(2026-09-01 新增)。
|
||||||
|
|
||||||
## 验证
|
## 验证
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ description: "MCN 达人爆款视频解析与人设卡生成技能:达人账
|
|||||||
| 浏览器操作规范(红线) | **执行任何浏览器操作(功能一/二及任何网页获取)前,必须先读取 `references/浏览器搜索抖音账号操作规范.md` 全文**,严格遵守:① 环境前置(清除代理环境变量、固定 9223 调试 Chrome 实例);② **标签页复用(5.5)**——操作前检查已打开标签页,有则 goto_url 直接导航复用,无才 new_tab 新建,用完不关闭;③ 登录检测(弹登录窗口停止操作提示用户);④ 滚动收集技巧(.route-sc 容器);⑤ **访问账号主页必须走搜索路径→模拟点击进入,禁止直接构造 `/user/{sec_uid}` 地址跳转**;⑥ **视频数据提取首选列表组件 Fiber `defaultDataList`(一次拿全含 createTime),禁止逐条打开 `/video/{id}` 视频页抓字段**(详见规范「提取方法优先级」)。浏览器要求由插件 prompt 注入与本规范双重保证。 |
|
| 浏览器操作规范(红线) | **执行任何浏览器操作(功能一/二及任何网页获取)前,必须先读取 `references/浏览器搜索抖音账号操作规范.md` 全文**,严格遵守:① 环境前置(清除代理环境变量、固定 9223 调试 Chrome 实例);② **标签页复用(5.5)**——操作前检查已打开标签页,有则 goto_url 直接导航复用,无才 new_tab 新建,用完不关闭;③ 登录检测(弹登录窗口停止操作提示用户);④ 滚动收集技巧(.route-sc 容器);⑤ **访问账号主页必须走搜索路径→模拟点击进入,禁止直接构造 `/user/{sec_uid}` 地址跳转**;⑥ **视频数据提取首选列表组件 Fiber `defaultDataList`(一次拿全含 createTime),禁止逐条打开 `/video/{id}` 视频页抓字段**(详见规范「提取方法优先级」)。浏览器要求由插件 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)全绿。技能本体 `~/.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)全绿。技能本体 `~/.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 打开抖音网页版访问达人主页提取(昵称/抖音号/抖音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`),其他文件引用此处,调整只改本行。 |
|
| 赛道标准枚举(29个,**唯一权威**) | 赛道(track/「赛道」键)取值必须属于以下 **29 个赛道**(28 标准 + 1 补充):个人才艺 / 生活vlog / 财富理财 / 二次元 / 居家装修 / 学习教育 / 小剧场 / 数码科技 / 旅行 / 美食 / 美妆(原「化妆美容」统一更名) / 动物 / 亲子 / 汽车 / 情感 / 三农 / 健康医学 / 潮流风尚 / 舞蹈才艺 / 颜值造型 / 人文 / 音乐 / 影视 / 身体锻炼 / 体育 / 明星娱乐 / 游戏 / 其他 / **剧情**(剧情为用户指定保留,不归一)。**不带「赛道」后缀**(如「生活vlog」);人设卡/账号设定「赛道」键取首段(" / " 分隔)后去后缀,不在 29 个枚举内则归一到最接近标准值或置空待确认。本参数只在 SKILL.md 定义(源:`dsh-plugin-dev/references/赛道标准枚举.md`),其他文件引用此处,调整只改本行。 |
|
||||||
| 账号数据分析(功能四) | 独立于人设卡,聚焦「数据表现规律」(内容表现规律/月度趋势/差异化壁垒/商业化空间),产出独立文件 `{达人昵称}账号数据分析.md`,**不与功能三人设卡嵌套**。方法论见 `references/账号数据分析方法.md`。 |
|
| 账号数据分析(功能四) | 独立于人设卡,聚焦「数据表现规律」(内容表现规律/月度趋势/差异化壁垒/商业化空间),产出独立文件 `{达人昵称}账号数据分析.md`,**不与功能三人设卡嵌套**。方法论见 `references/账号数据分析方法.md`。 |
|
||||||
| 数据分析依据(红线) | 功能四所有分析结论必须有明确数据依据:具体到视频标题 + 具体数值。后台私有数据拿不到时(完播率/留存率/GMV等)标「无数据」,**禁止用间接推断或定性描述替代**。 |
|
| 数据分析依据(红线) | 功能四所有分析结论必须有明确数据依据:具体到视频标题 + 具体数值。后台私有数据拿不到时(完播率/留存率/GMV等)标「无数据」,**禁止用间接推断或定性描述替代**。 |
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
# 已有数据处理规则(数据库中已有数据时如何处理)
|
||||||
|
|
||||||
|
> 定位:**统一决策表**——用户要求「获取账号数据 / 提取账号设定 / 分析视频」时,库中已有数据的处理策略。
|
||||||
|
> 收敛散落规则:SKILL.md「账号信息数据源(红线)」、`feature/01_获取账号信息.md`(更新时间)、`feature/06_生成账号设定卡片.md`(触发判定链)、`feature/04_分析视频数据.md`(表格/人设复用)、server.js `/api/import/account`(入库去重)。
|
||||||
|
> 更新:2026-09-01
|
||||||
|
|
||||||
|
## 核心原则(一句话)
|
||||||
|
|
||||||
|
**库中已有 ≠ 可直接使用。** 分两类处理:
|
||||||
|
- **实时数据**(账号信息/视频列表)→ **必须重新获取**(红线:数据库不是数据源,禁回填)
|
||||||
|
- **分析产物**(人设卡/视频解析/分析报告)→ **复用优先 + 询问是否更新**,只对增量(新视频/未解析)补获取
|
||||||
|
|
||||||
|
数据库角色 = **流程状态参考 + 产物复用**,不是数据源。
|
||||||
|
|
||||||
|
## 分场景决策表
|
||||||
|
|
||||||
|
| 用户要求 | 库中/目录已有数据 | 处理方式 | 依据 |
|
||||||
|
|---------|----------------|---------|------|
|
||||||
|
| **获取账号数据**(功能一) | hot_accounts 有该账号 / 账号表已登记 | **必须浏览器重新抓取**,库数据禁止回填(红线);抓取前查「更新时间」:**近 1 个月内 → 提示用户判断是否刷新**,避免无谓重复抓取;抓取后回填 + 更新「更新时间」`YYYY-MM-DD HH:MM` | SKILL.md 红线 + feature/01 |
|
||||||
|
| **提取账号设定**(功能三) | 产出目录有 `{账号名}账号设定.md` / 库 account_persona 有该账号 | **复用优先**:设定文件已存在 → 走触发判定链「**询问覆盖 or 微调**」,不静默重跑;无设定 → 才走全链路提炼 | feature/06 触发判定链(7 种情况) |
|
||||||
|
| **分析视频**(功能四/五) | 视频文件夹有 content.json / 库 account_video_source 有该视频解析 | **已解析 → 直接复用解析产物,不重复调 MCP 解析**;已有 `短视频表格.xlsx` → 直接读,不重抓列表;**只对未解析/新增视频补解析** | feature/04「数据缺失处理」+「两段式强制流程」 |
|
||||||
|
| 重跑入库(工作台侧) | 各表已有行 | 入库接口 **upsert 去重**:`account_video_source`/`account_video_analysis` 按 aweme_id 删旧保新;`account_persona`/`account_analysis` 重复跳过(不覆盖已有) | server.js `/api/import/account` |
|
||||||
|
|
||||||
|
## 三个判断依据(执行前必查)
|
||||||
|
|
||||||
|
1. **产出目录是权威,数据库是副本**
|
||||||
|
- 判断「是否已有」优先看产出目录文件:`{产出根目录}/{账号名}/` 下的 `{账号名}账号设定.md`、`短视频表格.xlsx`、`视频分析/{标题}_标签/` 目录
|
||||||
|
- 库表只作状态参考——库可能**未入库而缺**(分析产物落盘 ≠ 自动入库),也可能含**脏数据**(见第 2 条)
|
||||||
|
|
||||||
|
2. **「已有」必须校验内容质量(存在 ≠ 有效)**
|
||||||
|
- 实测案例:库中 1629 有 1 条 8 字符的「连通性测试」假 persona——判定「有设定」前先校验内容长度/完整性,**假数据视为「无」**
|
||||||
|
- 人设卡/分析报告:校验关键章节存在(如人设卡含赛道/受众/内容基因等核心维度);视频解析:校验 content/analysis 非空且为有效结构
|
||||||
|
|
||||||
|
3. **新增/变更才增量处理**
|
||||||
|
- 同账号二次分析:只对**库中/目录中没有的**(新视频、未解析视频、新产出类型)增量获取
|
||||||
|
- 已解析视频重复出现在请求中 → 直接复用,不重跑浏览器/MCP,避免资源重复消耗
|
||||||
|
|
||||||
|
## 已收敛的散落规则出处
|
||||||
|
|
||||||
|
| 原规则 | 位置 |
|
||||||
|
|--------|------|
|
||||||
|
| 数据库仅状态参考、禁回填账号字段 | SKILL.md「账号信息数据源(红线)」 |
|
||||||
|
| 更新时间近 1 月提示刷新 | references/feature/01_获取账号信息.md |
|
||||||
|
| 卡片存在询问覆盖/微调(触发判定链) | references/feature/06_生成账号设定卡片.md |
|
||||||
|
| 已有表格直接读、人设卡对齐、解析降级 | references/feature/04_分析视频数据.md |
|
||||||
|
| 入库 upsert 去重(删旧保新/重复跳过) | mcn-work-shop/server.js `/api/import/account` |
|
||||||
|
|
||||||
|
## 相关接口速查
|
||||||
|
|
||||||
|
- 工作台库:`mcn-work-shop/mcn-plugin.db`(表:hot_accounts / account_persona / account_analysis / account_video_source / account_video_analysis / account_videos)
|
||||||
|
- 产出根目录:以 `references/路径配置.md` 为准(开发机默认桌面 `MCNSkill项目/`)
|
||||||
Reference in new issue
Block a user