Files
mcn-short-video/.workbuddy/memory/2026-09-23.md
T
maogeigei d07049ecf1 chore(repo): 归集 09-14~09-29 工作产出(技能/知识库/工作台/报告)并收敛临时产物
- skill: 素材库分块定义(00~11)、05_极致事件知识库 4 篇、08_对话风格总纲、mcn-video-prompt 提示词质量门禁与外部语料检索流程

- workbench: mcn-work-shop 新增 cli-backend.js(本地 CLI 接入)、工作台视觉交互规范;移除旧 UI 规范

- docs: 根目录极致事件/素材卡/审计方案报告与热门短视频清单入库

- memory: 补 09-14~09-29 日志与自动化任务记忆

- chore: .gitignore 排除 tools/、.tmp-chrome-*/、_k_test.cjs
2026-09-29 18:56:24 +08:00

42 KiB
Raw Blame History

2026-09-23 工作日志

ChatGPT 外部评审:极致事件素材库(维度与内容覆盖)

任务:把已生成的极致事件卡通过浏览器发给 ChatGPT,评审「维度与内容是否全面 / 作为参考能否提升 AI 生成脚本吸引力 / 优化点」。

产出

  • ChatGPT评审意见_极致事件素材库_20260923.md(861 行:提问说明 + 回复全文 + 要点提炼)
  • tools/chatgpt_ask.py(可复用:把本地材料以附件发给 ChatGPT 并取回回答,直连 CDP)

ChatGPT 核心结论

  • 维度:约 80% 完整。4 个盲区 = ① 成长/蜕变型事件(最大缺口)② 悬念/信息差 ③ 挑战规则型 ④ 关系变化 → 建议类型体系 3 类 → 5 类(+情感极致 +成长极致)
  • 提升吸引力:能提升(开头 3 秒 / 转折密度 / 跨赛道迁移),不能解决(人物真实感 / 选题价值 / 脚本节奏)
  • 6 条优化:AI 生成字段、事件强度评分、素材组合关系、双轴体系(内容库 × 事件库)、标签三级分层、失败样本库
  • 成熟度:机制拆解 9 / 抽象能力 9 / AI 辅助 8 / 分类完整性 7 / 商业化 7.5

技术链路(本次踩坑与解法,均已回写 MEMORY.md)

  1. ⛔ explorer.exe 当父进程启动 Chrome 的方案已失效 —— 本项目原有做法(Start-Process -FilePath explorer.exe + bat)本次两种写法(bash 直调 / PowerShell)+ ASCII 路径 bat + CRLF 全部试过,端口均未监听。推测与当前沙箱策略变化有关。
  2. ✅ 可行方案 = 后台常驻:run_in_background: true 启动 chrome.exe <args> ; sleep 3600,浏览器跟随该会话任务存活,跨调用可用(实测端口常驻、harness 可连)。
  3. ✅ ChatGPT 必须走代理:--proxy-server="socks5://127.0.0.1:10800"(Shadowsocks.exe 监听 10800)。环境变量里的 8105 是沙箱代理,不能给浏览器用。直连 chatgpt.com 超时;走 10800 可通(curl 返回 403 是 Cloudflare 反爬对命令行的拦截,浏览器正常)。
  4. ⛔ browser-harness cdp() 不能传长文本:daemon IPC 单条消息有上限(报 Separator is found, but chunk is longer than limit),且客户端 5s 超时(分块 1200 字符即 TimeoutError: timed out)。
  5. ✅ 正解 = 长材料走附件上传:DOM.setFileInputFiles → #upload-files;问题文本才走 Input.insertText(195 字符一次成功)。
  6. ✅ 长回复提取要等稳:选择器用 div[data-message-author-role="assistant"] .markdown;完成判定 = 无 button[data-testid="stop-button"] 且文本连续 4 次不变。早期 5 秒轮询会误判(521 字符即"完成")。
  7. ⚠️ 中途 ChatGPT 标签页消失(原因未明)→ 用侧栏 a[href^="/c/"] 取会话 URL 重新 Page.navigate 即可恢复。

清理:删除 25 个一次性调试脚本 / 截图 / 中间文本;保留 tools/chatgpt_ask.py。

只读审计:中间留人机制(10:20,承接 ChatGPT 评审的「不能解决 3:完整脚本节奏」)

用户诉求:能否提升「中间留人」吸引力,做到 10 秒左右一个吸引点。

审计结论(未改任何技能文件)——瓶颈不是阈值不够紧,而是「中间留人」没被定义成可产出/可自检的东西:

  1. 三条并行密度线口径打架:A 信息密度 每10秒(9_生成短视频脚本.md:151,441 / 35项清单:73 / 04_节奏控时:48,91,106 / 06_编导终审:71)=下限防腐;B 钩子密度 每15秒(35项清单:72)全技能无定义、无来源、无产出格式,悬空;C 极致触点 每15-20秒(7_生成短视频大纲.md:66,159 / 05_极致事件/03:17,41)=上限爆点,资源有限不可能也不应 10 秒一个。
  2. 产出粒度太粗:S6「本场钩子」是场级(一场 15-25s → 等于 15-25s 才一个留人设计);S7 极致触点布位只有 4 个布位、非窗口化。→ 「每10秒一个吸引点」在全部产出物里没有字段。
  3. 校验强度倒挂:S7 大纲校验里 L1 极致触点是硬闸门,中段留人(L162-163)只是"参见知识库"软引用;L165-171 硬检查全是静态数量(具名物品≥12/对话≥4组/故事细节≥50),与时间轴无关 → AI 把力气花在凑物品数上。
  4. 方法论库几乎空:知识库/06_剧情钩子/ 只有 1 篇;五类留人机制(悬念提问/反差画面/直击痛点/身份共鸣/利益承诺)只在 6_生成短视频框架.md:140 列了名字,无任何"怎么写"的文件。

提出方案「三级留人点体系」(路线 = 合并升级,不新增第 4 条平行线):

  • L1 极致触点 15-20s/个(不动,保护稀缺性)| L2 留人点 每10秒 ≥1(由 A 升级+B 归并,核心新增)| L3 增量点 3-5s/个(04_节奏控时:24,36 已有,落成字段)
  • L2 判据:一个留人点 = 观众产生明确的"为什么",三型至少命中一种(问题型/反差型/共鸣型);纯信息陈述/纯动作/重复前文不算
  • 可执行换算:本场最少留人点数 = ⌈本场时长 ÷ 10⌉(S6/S7 可直接自检)
  • 分赛道分档:剧情/知识/口播/搞笑 10s;Vlog/美食/亲子/情侣 10-15s;沉浸/治愈 15s(L3 兜底)
  • 最需防的退化:为凑数把普通留人点包装成"极致触点" → L1 不计入 L2,05_极致事件/03 补注二者不同层

关键判断:极致事件素材库是 L1 侧资产,补不了 L2 的缺口(正好对应 ChatGPT 说的"不能解决 3")。两件事必须分开做。

产出:中间留人机制诊断与留人点体系方案_V1.0_20260923.md(含 8 项落地改动点清单 + 证据索引 文件:行号)。状态:待用户确认路线(A 合并升级 / B 只加不改)与是否补 06_剧情钩子 5 篇方法论,未动技能文件。

执行:三级留人点体系落地(10:35–,路线 A 合并升级,已全部完成)

流程:用户要求「检查确认一遍方案细节是否准确无误,确认后执行」→ 回到原文逐行复核 + 全树口径扫描 → 发现方案有 6 处不准确/遗漏 → 修订后执行(11 个文件)。

复核修订(重要,避免重复建设)

  1. ⛔ 原「06_剧情钩子/ 只有 1 篇 → 补 5 篇方法论」是错的:五类留人机制的方法论本就在 04_爆款开场/ 10 篇开场方式文件里(00_开场方式全量覆盖分析.md:17 已写明对应)→ 撤销新建,改为补 1 节映射表。教训:下「缺方法论」结论前必须先读同维度已有文件。
  2. L2 类型不新造「问题型/反差型/共鸣型」三型 —— 三型漏了「利益承诺」,且技能内已有 4 套钩子枚举(五类留人机制 / 01_标准爆款结构模板:143-149「数据冲击·违背常识」/ 04_爆款开场 10 种 CSV 口径 / 8 个旧钩子文件口径),再创即第 5 套 → L2 类型维度沿用五类,「产生一个为什么」只作合格线判据。
  3. A 线(每10秒)足迹漏了 03_框架节奏/01_标准爆款结构模板.md(L246/L354/L366)→ A 线实际 5 个文件。
  4. 漏子技能同口径副本:subskills/mcn-script-review/(SKILL.md + 脚本复盘流程.md)+ subskills/mcn-dou-analysis/references/知识库/视频拆解/框架04_节奏控时.md。
  5. 新发现:创作流程/11_脚本检查和诊断.md 里「信息密度」一词二义(「二、信息密度检查」=展开深度静态数量;四维度表那条=频率)→ 频率那条改名「留人密度」,静态模块只加区分注未改名(改名连带 S7 L165-171,属独立重构)。
  6. 命名定为「留人点」(对齐平台详情页字段「中间留人」)。

最终方案(口径单源 = 知识库/03_框架节奏/04_节奏控时叙事套路.md 1.3)

  • L1 极致触点 15-20 秒(05_极致事件,不动)| L2 留人点 每 10 秒 ≥1(由「信息密度」升级+「钩子密度 15 秒」归并)| L3 增量点 3-5 秒(知识库已有,落成字段)
  • 判据:留人点 = 观众产生一个明确的「为什么」,四类形式(抛问题/打破预期/说到自己/给承诺)至少命中一种;纯信息陈述/纯动作/重复前文不算
  • 自检换算:本场最少留人点数 = ⌈本场时长 ÷ 10⌉
  • 分赛道分档:剧情/知识/口播/搞笑 10 秒|Vlog/美食/亲子/情侣 10-15 秒|沉浸/治愈/慢生活 15 秒
  • 红线:禁止混层(L1 不计入 L2、留人点不得包装成极致触点 → 防爆点稀释)

改动 11 文件:04_节奏控时(新增 1.3 单源)|01_标准爆款结构模板|06_编导终审|创作流程 6/7/9/11|35项清单(类4 合并 2→1 + 新增「留人点类型覆盖」,保持 35 项)|05_极致事件/03(加分工行防混层)|04_爆款开场/00(新增第五节映射表)|子技能 2 处副本|SKILL.md frontmatter(updated_at 09-23)。

残留核对:钩子密度/每15秒/每10秒至少1个新信息 有效规则零残留;剩余 2 处命中均在 subskills/mcn-video-prompt/参考skills/script-writing-studio/(第三方参考技能,红线禁改)。

遗留待决策:① 11 的「信息密度检查」模块是否更名「展开深度检查」(独立重构,未做);② 赛道分档阈值为推定值非实测,建议跑 3-5 条真实脚本后按数据回调。

明细:V1.0/references-add/变更日志.md 2026-09-23 条;方案+复核修订见仓库根 中间留人机制诊断与留人点体系方案_V1.0_20260923.md。

执行:遗留重构 · 「信息密度」一词二义治本(11:00–)

触发:用户「按照建议执行」→ 执行上一轮留的 2 项遗留中的第①项。

处置:创作流程/11_脚本检查和诊断.md 模块二「信息密度检查」→ 「展开深度检查」(7 处),原「命名区分注」改为「命名沿革」(保留两口径不互相替代)。连带:

  • 引用更名:SKILL.md 能力行、7_生成短视频大纲.md:178
  • 频率义统一「留人密度」:9_生成短视频脚本.md(留人密度优先 + 赛道标准指针)、6_生成短视频框架.md(弱情感铺垫等级行 / 三问自检 3 处 / 赛道标准指针 / 模板 A 描述)
  • 症状名去同根:04_节奏控时(2.2 行 + 误区「信息密度过低」→「留人点过疏」)、01_标准爆款结构模板(误区行 →「中段留人点过疏」)
  • 子技能副本:mcn-dou-analysis/视频拆解/框架04_节奏控时.md(2)、框架01_标准爆款结构.md(1)

保留边界:「信息密度」作通用描述语/关键指标/方法论原文/文件标题的用法一律保留(01_标准爆款结构模板:289 关键指标、08_对话风格/高信息密度Vlog创作法、3_对标视频账号拆解「每30秒信息增量」)—— 只治「作阈值口径名或模块名」的义项,不做全量替换。核对:全树扫 信息密度检查 → 有效规则零残留。

只读诊断 + 方案:极致事件卡片(11:10–,技能文件零改动)

触发:用户「但是对于极致事件卡片 没有什么优化的建议和方案」。

卡片定义:素材库/分块定义/00_模板-各库分块模板.md §极致事件(L302–343)= 10 固定字段(顺序固定)+ 所属库专属 N;内容层 6(极致内容/内容含义/极致触点/事件标签/极致类型/创作手法)+ 呈现层 4(镜头语言/画面风格/复用场景/适用场景)。

结论:主体不需重构(三字段分工「事实→机制→效果」成立)。真问题是 3 条结构性缺陷:

  1. ⭐ 存量卡两套口径并存:极致事件卡_癫婆_模板版_20260922.md = V1.2 的 10 字段;极致事件提取_多类别样本_20260922.md 12 条卡全部为旧口径 9 字段(用「极致标签」「表现形式」,无新「极致触点」;grep 证实无一使用「内容含义」)→ 按「事件标签」筛条会漏;且当时送 ChatGPT 的评审材料口径可疑(评审材料 txt 已清理,无法回溯核验)。
  2. ⭐ 「极致触点」一词三义(新发现,与上一轮 信息密度 同型):A 布位层=时间轴爆点节点(创作流程+知识库 15 处)/ B 卡片层=击中原因(仅模板)/ C 8 库层=内容描述(8 库全部已入库条目,01_美食库_中式家常菜 9 处…)。源头 = 模板 L10 自认「同名升级」但第四节未裁决。
  3. 10+N 的 N 不可见:卡内无「所属库」标注 → 本地缺口 1(12 事件中 7 个定库无处可落)无法落地。

ChatGPT 9 条建议判定 = 采纳 1 / 改造 4 / 否决 3:

  • 采纳:双轴体系(用本地方案落地)
  • 改造:事件强度评分→「主/辅」标注正式化(不新增字段);失败样本→不建库只补准入一行;真人细节→「极致内容」补原话不概括 + ≥1 处真实毛边;节奏字段→只取「铺垫量级」
  • 否决:卡内嵌 Prompt(越层)/黄金组合字段(组合是用法非素材属性)/标签三级分层之「一级心理刺激」(违反 4.4 情绪效果不设标签红线)/用户需求层(S5 选题职责)
  • 4 个外部「盲区」核实:3 个已被现有体系覆盖(成长→反差+期待铺垫;挑战→极致行为·强度拉满;关系变化→预见式服务定义原文即「对方还没开口就已经做好」),仅「悬念/信息差」属标签层挤压。再次印证:下「缺某类」结论前先读同维度已有文件。

产出:极致事件卡片优化方案_V1.0_20260923.md(D1–D6 缺口 + P0–P2 改动清单 + 明确不做 + 3 项待确认:库位裁决 / 触点治理方式 / 存量 12 卡是否重出)。状态:待确认,技能文件零改动。

执行:极致事件卡片层治本(11:15–,按方案 10 项全部落地)

触发:用户「按照方案优化」→ 执行同日《极致事件卡片优化方案_V1.0》P0 3 + P1 4 + P2 3 = 10 项;3 项待确认按方案建议选项落地(库位 → B 跨库横切 / 触点治理 → A 加裁决条款 / 存量卡 → A 按 V1.3 重出)。

口径单源(治「极致触点」一词三义):知识库/05_极致事件/01_极致类型-素材标签映射表.md 第四节新增 4.5 条款 —— A 布位层(爆点节点)/ B 卡片层(击中原因)/ C 8 库层(内容描述)三义 + 判据(「说画面里有什么」=C /「说用户为什么被击中」=B /「说它在第几秒引爆」=A);C = 极致事件「极致内容」等价物;硬规则:极致事件类必须写满 10 固定字段。节标题 四条 → 五条。

横切定库(缺口 1 落地):同文件第二节新增「定库列怎么读」—— 极致事件 = 跨库横切类别,定库为可选检索入口、可为空(—(横切未定))。不做新增「行为/情境」库、不做同一事件多库复制。

模板层(素材库/分块定义/00_模板-各库分块模板.md §极致事件,V1.2 → V1.3):① 10 字段硬规则 + 卡片头元信息行 > 所属库:{NN 库名 | 横切未定}(不占字段位);② 极致内容 补「原话不概括 + ≥1 处真实毛边」;③ 内容含义 补时间跨度型写法;④ 极致触点 四子项 → 效果侧两项(用户心理 / 共鸣),机制词归标签与类型 + 「效果词不得复用标签词」;⑤ 创作手法 补 铺垫量级 短≤3s / 中 3-10s / 长>10s;⑥ 事件标签 补 ≥2 值自检 + 「(主)」记法;⑦ 专属段补「横切未定则省略」;专属说明 5 → 6 条。 顺带修模板内自相矛盾:§三 ※2 字段数 9+10=19 → 10+10=20(03 库 → 15;横切未定只写 10);※3 补 4.5 指针(闭合 L10「是否同步见第四节」的悬空指针);「事件标签位于末位」→ 第 4 位。

评估标准(05_极致事件/03):第一节补「翻车 / 失败也是合法的极致」—— 豪言后翻车同等入库,但须写清被打破的期待落点。

存量卡重出(3 个卡文件 + 1 个方法文件,范围大于方案原列的 1 个):

  • 极致事件提取_多类别样本_20260922.md:12 张卡迁移为 V1.3(10 字段 + 元信息行 + 新增效果侧触点 + 铺垫量级);同步修 §一 定库列(7 处 → 横切未定)、§3.1 / §3.2 两处与 §一 不符的既有统计错误(错位 2→1 补品质 1;标签分布重算,零命中实为 4 个)。
  • 极致事件卡_癫婆_模板版_20260922.md:3 条卡触点收敛 + 元信息行 + 铺垫量级(方案未列、属 V1.3 落地的必然连带)。
  • 极致事件卡_癫婆_总有人打断我的休息_36468.md:分析报告式卡,「表现形式」→「内容含义」(3 处)+ 旧映射表名同步,保留原结构。
  • 极致事件识别与提取方法_基于解析内容_20260922.md:字段表「表现形式」→「内容含义」+ 定库行补「可空」+ 旧映射表名(3 处)。

新自检暴露(重要实证):按「事件标签 ≥2 值」自检,13 张卡中 8 张为单标签(多类别样本 6 张 P1/P2/P3/C1/C2/C3 + 癫婆 2 张 E2/E3)—— 保留原判、逐条标 ⚠️、不追补,作为该条款必要性的实证。

版本:SKILL.md frontmatter last_change 更新;references-add/变更日志.md 追加一条(置于 09-23 顶部)。

发现项(未动,待用户决定):project/内容创作产品规划/内容知识库设计/2_短视频创作知识库/素材库/分块定义/00_模板-各库分块模板.md 是同一模板 V1.2 的另一份副本(知识库 V2.0 建设线),本次未同步(范围外)→ 若 V2.0 沿用,须同步 V1.3。

评估:优化后「重新提炼极致事件卡片」的优化点(12:20–,只读评估,技能文件零改动)

触发:用户「评估优化后 重新提炼极致事件卡片 会有哪些优化点」。

结论(推演 + 已有实证交叉,非新跑样本实测)

  • 收益不在"字段变多",而在卡片第一次走通 判定 → 入库 → 检索 → 排布 四段闭环;优化前断在第 2 段(定库悬空 7/12)与第 4 段(无排布信息)。
  • 最大单项 = 补回「效果层」:旧 12 条卡零条写"为什么击中用户"→ 05_极致事件/03 的 5 维评分(真实毛边配合等)要求的东西卡片不提供,只能事后补救。
  • 十项优化点:① 补效果层 ② 极致内容承载原话+毛边 ③ 定库从悬空变合法值 ④ 一次提炼到位不再返工(美食卡返工过)⑤ 标签数下限 + 主标签定义 ⑥ 卡片首次带排布信息(铺垫量级)⑦ 4.5 判据防串层 ⑧ 多收"翻车/失败"一类 ⑨ 成长/蜕变类有位(时间跨度型写法)⑩ 三条自检内建进流程;附加:4.4 分流已有 2 次实证。
  • 3 项约束:C1 ⭐ 真瓶颈 = 标签层「喜剧/荒诞」挤在 自嘲反差 一个口未裁决,≥2 值自检在喜剧类上会撞墙;C2 ≥2 值有"凑标签"风险(实测 8/13 单标签,条款措辞须守「复核是否漏标」);C3 重跑旧解析不产生新事实,扩容必须扩样本(33 条清单已提炼 5 条,剩约 28 条)。
  • 关键判断:重提炼的真正价值在 「提炼即入库」 —— 12 条卡至今散在仓库根一份实测报告里,不是素材库资产、S7 调不到。所以推进次序应是先定落点,再批量重提炼。

产出:极致事件卡片重提炼优化点评估_V1.0_20260923.md(十项优化点 + 3 约束 + 4 步推进次序 + 证据索引附录)。状态:评估报告,未改动技能文件。

评估:卡片是否存在 WeKnora 模式下(14:27–14:45,本机实例实测 5 轮,未动技能文件)

触发:用户「评估 这类卡片适合存在 wekonra 那种模式下」。

结论:适合,但要换容器 —— 要的是「卡片库」不是「文档库」。

  • ✅ 最优 = FAQ 型知识库(一条目 = 一分块,不走文档分块器 → 卡片原子、字段不打散)
  • ❌ 不要走文档分块:实测(POST /chunker/preview,零写入)同一批 3 张卡 691/952/1150 字,512/80 粒度 → 9 块,一张卡被拆成 4 片(内容层 4 字段 + 3 字段 + 呈现层 4 字段);overlap 80 致同一字段出现在两块;块跨越两张卡;且不可预测(1150 字的卡反而整块未切)。heading 策略逐块结果完全相同;1200/0 仍有跨块、一块含 2 卡;2000/0 字段完整但仍一块多卡。
  • 🔒 边界:git 仍是唯一权威源,WeKnora 只做派生检索层;规则类文本(S1-S11/35 项/映射表/评估标准)不要进 —— 召回率≠100%(阈值 0.5/0.3 直接滤掉),规则必须留文件做硬闸门。

WeKnora 0.8.0 数据模型要点(实证 file:line)

  • 条目类型:file/url/manual(markdown + draft/publish + 条目级版本)/ faq;KB 类型 document / faq / wiki 三选一。
  • 条目级:Tags(KB 内同名唯一,多对多)+ FolderPath(纯导航)+ CustomMetadata(JSON,但不参与检索过滤!只在结果里暴露给模型) + Profile(LLM 生成)。
  • 检索:SearchParams.TagIDs / ScopeTagIDs;DisableRecallThresholds 保证圈定范围内不被阈值抹掉;FAQ 有 两级标签优先 first/second_priority_tag_ids。
  • FAQ 条目:standard_question + similar_questions + negative_questions(不入索引,只做精度控制)+ answers[] + 每条一个 tag + 推荐位 + 直接回答阈值;Content(返回给模型)与 IndexContent(向量化)分离 → 卡片正文可保真。
  • 治理:批量 JSON 导入导出、dry_run 预校验 + 失败明细、append/replace、按 ID 或按 Tag 批量改字段。

实测踩到 3 个坑(全部有日志证据)

  1. ⭐ FAQ 型库默认 vector=false / keyword=false → 入库 100% 成功但检索永远返回空(success:true, data:[],静默失败);根因日志 knowledgebase_search.go:195 [HybridSearch] | No retrievable indexing pipelines。→ 建库必须显式传 indexing_strategy.{vector_enabled,keyword_enabled}=true。
  2. 建库/条目不绑 embedding_model_id → 导入卡在 processing/0%,progress 接口 error 字段为空,只能翻容器日志看 failed to get embedding model: model ID cannot be empty。
  3. dry_run 是异步任务且占导入通道 → 紧接着发正式导入会 400 已有导入任务在进行中;须轮询 dry_run 的 task 至 completed 再导。

终验(开启管线后):2 条卡导入 2/2,FAQ 检索标准问命中 score=0.8219,返回答案长度 691 = 整张卡。待调项:语义改写问法命中 0(→ 相似问须覆盖真实检索口径 / 降阈值 / 或走通用 /hybrid-search,实测该通道对 FAQ chunk 可命中);标签优先检索那一次命中 0,未独立验证。MCP 无 FAQ/Tag 工具,hybrid_search 无 tag_ids → 走 MCP 拿不到标签圈定能力,须走 HTTP API(localhost:31607,key 在 D:\.workbuddy\mcp.json)。

产出:极致事件卡片_WeKnora适配性评估_V1.0_20260923.md;实测脚本与原始输出归档到 tools/weknora-fit/(4 脚本 + out/*.txt)。临时实验库 4 个已全部删除(均有 HTTP 200 回执),未碰 mcnvideoprompt。

执行:创建 WeKnora 正式容器并灌入 11 张卡(14:54–,容器已上线可检索)

触发:用户「你可以创建对应容器码(容器)」。

容器(长期库,非临时实验库)

项 值
库名 / ID MCN极致事件素材库 / e6772e41-7b72-499d-b46c-e5ca7c9d1740
类型 FAQ 型(一条目=一分块,不走文档分块器)
模型 embedding 03f0cf45(bge-m3) / summary a2de7804(glm-5.3-flash)
索引 vector=true keyword=true(建库时即显式开,避开 P1 静默失败坑)
导入 11/11 成功、0 失败;答案 576–978 字整卡无损
标签 6 个(12 维原样值):反差 4 / 反常识 2 / 难度极限 2 / 自嘲反差 1 / 食材极致 1 / 预见式服务 1

条目字段映射:标准问=主检索意图 | 相似问=4 条其他问法 | 反例问=2 条不该命中边界 | 答案=整张卡正文 | tag=主标签。与 mcnvideoprompt 完全独立(未混库、未碰)。

⭐ 本轮最重要发现:FAQ 检索的 vector_threshold 默认 0.7(硬编码),是"入库了却搜不到"的真因

SearchFAQEntries(knowledge_faq.go:932)if req.VectorThreshold <= 0 { = 0.7 };且 FAQ 检索恒为 DisableKeywordsMatch: true → 纯向量,关键词完全不参与(把关键词串写进相似问是无效操作)。注意与通用检索/自定义 Agent 的默认值(vector 0.5 / keyword 0.3,custom_agent.go:544/547)是两套,别混。

阈值扫描(33 探针 × 7 档,脚本 6_threshold.py,结果 out/6_threshold.txt):

探针组 0.7(默认) 0.5 0.45
A 标准问原句(11) 11 命中(各 1 条) 11/11,top1 全对 同
B 相似问原句(11) 8 命中 / 3 条 0 11/11,top1 全对 同
C 未登录新口语问法(11) 仅 1/11(9%) 11/11,top1 全对 11/11(召回满 5 条)

→ 上线参数:vector_threshold = 0.5,match_count = 3~5;要多候选用 0.45。 → 标签优先检索同样依赖阈值:first_priority_tag_ids + 默认 0.7 → 6 个标签全部 0 命中;降到 0.5 后命中数 == 该标签条目数(反差4/反常识2/难度极限2/其余各1)→ 标签机制本身正常,别误判成失效。

产出:极致事件素材库_WeKnora容器交付说明_V1.0_20260923.md(容器信息 + 11 条清单 + 检索参数 + 字段映射 + 已知限制 + 待定);脚本 tools/weknora-fit/5_build_event_lib.py(含幂等护栏:同名库已有条目→退出/为空→复用/标签已存在→跳过)、6_threshold.py。 技能沉淀:更新 ~/.workbuddy/skills/weknora-structured-ingest → v1.1(更正 frontmatter 中错误默认值、新增「阈值 0.7 须显式传 0.5」为第 5 条铁律、第四步改为阈值扫描法、补标签优先阈值依赖与单标签限制、收尾纪律补正式库幂等护栏)。 技能文件(短视频工作台)零改动 —— 是否把「素材检索入口」接进 S7 待用户决策。


追问实测:为什么不用文档型容器 / 不分块可以吗(2026-09-23 晚)

背景:用户追问「为什么不用文档呢 不分块可以吗」——技术可行性追问,须实测而非推演。

方法:两轮实测。① 零写入 POST /chunker/preview(7_doc_noblock.py);② 建临时 document 型库(跑完 DELETE HTTP 200 回执),11 篇 manual(一卡一文档),索引 125s 完成(8_doc_vs_faq.py)。

结论 A:分块能解决,但只有一条路

  • splitBySeparators 早返回:文本 ≤ chunkSize 完全不切(splitter.go:225-227)→ 单卡 1150 字 + chunk_size 1200 = 1 块完整
  • ⭐ absoluteMaxSize = 7500 硬上限(splitter.go:400)→ 整篇 8605 字必切,chunk_size 设 100000 也切成 2 块(块1 硬塞 9 卡)
  • "卡标题提为第一优先级分隔符"无效:输出与普通分隔符逐块完全相同(10 块 = 6 完整 + 3 混装 + 2 半卡)
  • 唯一姿势 = 一卡一文档 + chunk_size ≥ 卡长 → 实测 11 篇各 1 块(等于手工模拟 FAQ 原生行为)

结论 B:检索才是分水岭(同口径 A/B/C 三组 × 11 条,判 top1)

容器 A 标准问 B 相似问 C 口语新问法
FAQ @0.5 11/11 11/11 11/11
文档型最佳档 11/11 @0.7 10/11 @0.5 9/11 @0.5
  • ⭐ 文档型无单一可用工作点:A 组最优 0.7、C 组最优 0.5,互斥(FAQ 在 0.5 单点即三组全满)
  • 文档型召回卡上限:B 封顶 10/11、C 封顶 9/11,降阈值不涨 → 瓶颈是语义入口不足而非阈值
  • 机制:FAQ 索引「标准问+相似问」(短问句,问↔问匹配);文档型索引整卡正文(含镜头语言/复用场景等 → 需求句向量被稀释)。实测例:「家常菜做到能开店水准」文档型全阈值错配,FAQ score=0.69 命中

产出:极致事件卡片_文档型容器可行性实测_V1.0_20260923.md;脚本 7_doc_noblock.py、8_doc_vs_faq.py + out/7_*.txt、out/8_*.txt。 技能沉淀:weknora-structured-ingest → v1.2(铁律 1 补实测论证 + 新增「选型结论:为什么文档型代替不了 FAQ」整节,含 5 配置分块表 + 三组命中率表 + 机制解释)。 临时库已删(HTTP 200);正式库 MCN极致事件素材库 与 mcnvideoprompt 未触碰;短视频工作台技能文件零改动。


15:45 麦芽平台「近 3 个月 ≥20w 赞」全量清单产出(2202 条 / 三格式)

任务:把热门短视频无门槛全集按「发布日期 ≥ 2026-06-23 且 点赞 ≥ 20w」过滤,落到表格。

采集(browser-harness / CDP 9333,页面内 fetch + 轮询 window.__ALL)

  • 全集 7917 条(昨日 7904,+13);pageSize=50 × 159 页,零异常页
  • 全集日期范围 2026-02-09 ~ 2026-09-23;近 3 个月区间内 3531 条 → 命中 2202 条(62.4%)
  • uploadType 分布:0=6439 / 1=1462 / 2=16(人工上传占 18.5%,与昨日 18.3% 一致 → 阈值不可依赖页面筛选的结论再次成立)
  • ⚠️ 响应信封 = total / rows / code / msg,没有 pages 字段 → 页数须 ceil(total/pageSize) 自算(首轮探测按 pages 取值崩过一次)

命中分布:赛道 剧情 1194 / 生活vlog 971 / 美妆 31 / 空 6;月份 9月 304·8月 864·7月 836·6月 198;日期来源 发布 1738 / 上传 464;赞 20.0w ~ 2489w

产物(仓库根,三格式同名)

  • 热门短视频清单_近3个月20w赞以上_20260923.xlsx —— 主表(A1:P2203,16 列 + 「统计概览」页;冻结表头 + 自动筛选 + 点赞/播放千分位 + 播放地址/详情页超链接)
  • 同名 .csv(UTF-8 BOM)、同名 .md(口径三段 + 分布观察 + 点赞 TOP100)
  • 脚本:tools/_bh_pull_3m.py(拉全集+过滤,含 list_tabs 复用标签页逻辑)/ tools/_build_3m.py(出三格式)

工具链新事实

  • ⭐ 托管 venv(D:\.workbuddy\binaries\python\envs\default)无 openpyxl、且 pip 装不上(pypi.tuna 索引返回 "no versions")→ 需产真 .xlsx 一律走 D:/miniconda3/python.exe(自带 openpyxl 3.1.5 / pandas 3.0.5)
  • browser-harness venv(subskills/browser-harness/envs/browser-harness/Scripts/python.exe)可直接调用(pyvenv.cfg 的 home 指向 uv cpython-3.12.13 仍在;.pth 相对路径 ../../../../src 生效)→ 不设 PYTHONPATH 也能 import browser_harness;调用前仍须 unset *_PROXY + no_proxy=127.0.0.1,localhost

16:00 补齐「近7天20w赞」Excel(用户口径:表格=Excel)

原委:用户此前说「昨天保存的热门短视频卡片的那张表」= 热门短视频清单_近7天20w赞以上_20260922,但当时只落了 .csv/.md,缺 .xlsx(9-22 那轮未出 Excel)。本次补齐。

产物

  • 新增 热门短视频清单_近7天20w赞以上_20260922.xlsx:3 个 sheet
    • 近7天20w赞清单(33 条,A1:P34):同 3 个月表的 16 列字段体系,冻结表头 + 自动筛选 + 千分位 + 播放地址/详情页超链接
    • 推荐TOP(13 条):口径「点赞 ≥50w 且同作者仅取最高一条」
    • 统计概览:采集口径 / 字段完整性 / 赛道分布 / 作者 TOP20 / 点赞区间
  • 脚本:tools/_xlsx_7d.py(由 tools/_hot7d_api.json 直出 Excel;改常量即可换窗口)

发现(md 待修)

  • 热门短视频清单_近7天20w赞以上_20260922.md 的「二、推荐(8 条)」与其声明的口径(点赞≥50w + 同作者最高)不符:按该口径实为 13 条(癫婆/周小闹/李什么闯/橙子橙了/周小闹(胡闹)/周小小闹(大学宿舍)/万里/刘大炮/刘一朵/Hana/辣辣老师/A导/程盛)。判断是该表沿用上一版 15 条时的结果、重采后未同步重算。Excel 版按声明口径给 13 条。

规律沉淀

  • ⭐ 「表格」在本项目语境 = Excel(.xlsx),清单类产物默认必须出 .xlsx,csv/md 只是配套。
  • 近 7 天 33 条中 32 个唯一作者(仅「橙子橙了」2 条);时长有值 13 / 空 20(与 uploadType=0 数量一致)。

16:05 「近3个月20w赞」也补齐 Excel(去掉 md)

用户澄清:「我是说把 7904 条中近 3 个月 20W 点赞以上的都保存到表格中,表格是指 excel 表格」+「不需要放到 md 文件」。

执行

操作 对象 详情
重建 热门短视频清单_近3个月20w赞以上_20260923.xlsx 由「主表 + 统计概览」补为 3 页:近3个月20w赞清单(2202 条,A1:P2203)+ 推荐TOP(413 条,点赞≥50w 且同作者仅留最高一条) + 统计概览(新增「推荐TOP口径」块)
改脚本 tools/_build_3m.py 删掉 md 生成段,加 推荐TOP 页;现只出 xlsx + csv
删文件 两份清单 .md 热门短视频清单_近3个月20w赞以上_20260923.md、热门短视频清单_近7天20w赞以上_20260922.md
新增工具 tools/_del_md.js node fs.unlinkSync 直删(本机 Remove-Item 走 trash,非 ASCII 文件名必静默失败)
更新技能 maiya-hot-video-export → v1.2 铁律 5→6 条,新增第 6 条「⛔ 不产 md」;「导出三格式」改为「xlsx 主交付 + csv 配套」

数据事实(3 个月窗口 2026-06-23 ~ 09-23):全集 7917,区间内 3531,命中 2202(62.4%);时长有值 1738 / 空 464;日期来源 发布 1738 / 上传 464;点赞 20.0w ~ 2489.2w(李要得 生活vlog《青春没有售价,从重庆打出租车直达拉萨》);点赞 TOP 里 周小闹「饭店的暑假工」系列占 10+ 席。

规律沉淀(升格)

  • ⭐⭐ 本项目「表格」= Excel(.xlsx),且只要 xlsx —— 清单类交付默认只出 xlsx(+ csv 配套),写 md 属于过度交付会被要求删。9-22 只给 csv/md、9-23 又给 md,连续两次被纠。
  • 产物落点:仓库根目录(非 tools/),命名 热门短视频清单_近{窗口}20w赞以上_{日期}.{ext}。

16:35 极致事件卡片批量生产流程试跑(MCP 取解析 → 出卡 → 入 WeKnora FAQ 容器)

用户要求:调用 MCP 取这些视频的解析 → 生成极致事件卡片 → 存进 WeKnora 的 QA(FAQ)容器;先跑 2 个看流程是否正常。

样本:38098 晚叙miki《我的游泳教练好像有两幅面孔?》(剧情·情感反差,89s,34.4w赞)+ 28274 旧梦留声机《最暖的归栖,是爷爷在的小屋》(剧情·亲情,247s,507.5w赞)

产物 4 张卡 → 库内 11 → 15 条

卡 事件 极致类型 主标签 答案字数
A1 「冷面私教」与「网恋撒娇小狗」同体错位 戏剧极致·错位 反差 776
A2 雨夜湿身敲门 · 高冷男神的卑微挽留 戏剧极致·反转 反差 723
B1 爷爷逆光推门 ·「娃不用你们轮了,以后我带」 戏剧极致·反转 反常识 789
B2 「帮我带娃」的善意谎言 · 用求助的名义给爱 感官极致·细致 反常识 929

终验:标准问 top1 4/4(0.79/0.84/0.81/0.80)|口语问法 top1 4/4(0.68/0.68/0.73/0.70)|答案长度与卡片原文逐条相等(原子性 ✅)|dry_run 4/4 → 正式导入 success=4 failed=0

新发现(实测,非推演)

  1. ⛔ POST /faq/entries/{id}/similar-questions 写库成功但不重建向量索引 —— 读回 6 条相似问,可探针分数按位未变(A1 0.6477 → 0.6477)。改问法只能 DELETE /faq/entries {"ids":[…]} + 重导;重导后 A1 升到 0.6833,口语探针 3/4 → 4/4。
  2. ⛔ 单条 POST /faq/entry 建的条目检索不到(等 10s 仍 0 命中)→ 入库一律走批量通道 POST /faq/entries(临时条目已 DELETE 清理)。
  3. ⚠️ 解析(analysis)场次表里的「极致触点」是布位层口径(4.5 的 A 层),不是卡片第 3 字段的效果侧 B —— 照搬=口径错置;极限维度 里的机制词(反差/身份落差)应归 事件标签/极致类型,真实毛边 可直进 极致内容。

产物/脚本

  • 卡片源:tools/weknora-ingest/1_cards_batch1_20260923.md(```text 围栏,一卡一块)
  • 入库脚本:tools/weknora-ingest/2_import.py(定位库→按 standard_question 判重→建缺失标签→dry_run→正式导入→落库核对→检索终验,全幂等);输出 out/2_import.txt
  • 试跑报告:极致事件卡片_MCP批量生产试跑报告_V1.0_20260923.md
  • 容器:MCN极致事件素材库(e6772e41-7b72-499d-b46c-e5ca7c9d1740),标签 反差 6 / 反常识 4 / 难度极限 2 / 自嘲反差 1 / 食材极致 1 / 预见式服务 1

放量待定:近7天 33 条 / 推荐TOP 413 条 / 全量 2202 条(2200–6600 张卡)三档;另需定「归属库字段」(剧情亲情类填 横切未定 只写 10 字段)与卡片命名编号规则。

沉淀:技能 weknora-structured-ingest 升 v1.3(铁律 5→6 条,新增「改相似问必须删+重导」「勿用单条建卡」;新增「第五步:批量产卡」与「上游解析口径陷阱」两节)。


无人值守批量生产(自动任务链)—— 已排程

范围定档:全量 2202 条按点赞降序(高价值优先,跑不完也先吃高赞),不再纠结 33/413 三档;归属库字段暂按「剧情亲情类 = 横切未定,只写 10 固定字段」;卡片编号定 {来源详情ID}-{序号}。

排程:单次自动任务链(非 recurring)—— 每批 5 条,处理完自己建下一个单次任务;窗口 23:10–次日 08:00,窗口外/临近 07:45 顺延当晚 23:10,队列空则收尾不建。

  • 首个任务 id cff38308-4992-4c80-8543-e669b0b3effb,scheduledAt=2026-09-23T23:10,cwds D:/AI技能/mcn-short-video。
  • 速度预估:窗口 530 分钟 → 每批 6/10/15 分钟 ≈ 440 / 265 / 175 条视频一夜。

新增脚本(全幂等,可重复跑)

脚本 作用
tools/weknora-ingest/0_queue_init.py 由 _hot3m_api.json 生成 queue.json(2202 条按赞降序)+ state.json(done 预置 38098/28274)
1_next_batch.py [n] 取下一批(默认 5),跳过 done/skipped,写 out/next.json
2_import_batch.py <md> <spec.json> 通用批次导入(判重→建标签→dry_run→正式→终验 0.5);退出码 2 = 库不存在
3_done_batch.py --ids … --cards N --imported M [--skip id:原因] 登记进度、推进 cursor,输出 CONTINUE / QUEUE_EMPTY
  • 批次产物落 tools/weknora-ingest/batches/batch_NNNN.md + 同名 .spec.json。
  • 作业手册 tools/weknora-ingest/RUNBOOK.md = 自动任务的唯一权威上下文(8 步骨架 + V1.3 卡片规格 + 6 条红线 + 窗口判定表 + 接续 prompt 模板 + 故障速查)。以后改口径先改这里。

极致事件卡片 · 批次 1 落地(23:10–23:30,无人值守自动任务首跑)

  • 处理 5 条:33304李要得·打出租车去拉萨 / 33295李斯曼曼·生产日记 / 26220这是TA的故事·吹风机夫妻吵架 / 24868快乐的阿放·七彩中国 / 24520赵哥·澳门看女儿演唱会。
  • 出卡 15 张(每条 3 张),全部 所属库:横切未定(旅行/孕产/夫妻剧情/风光混剪/明星家属,均不属 8 库形态)。
  • 导入 FAQ 库 MCN极致事件素材库:15/15 成功,检索终验 15/15 ✅(score 0.587–0.805),库内 15 → 30 条。新增标签:价值观冲击、视觉冲击。
  • 产物:batches/batch_0001.md + batch_0001.spec.json;日志 out/import_batch_0001.txt。进度:完成 7 | 剩余 2195/2202。
  • 🐛 新坑(已治本):GET /faq/entries 默认 page_size=20 → 不分页读数静默偏低(导入 15 条后脚本报「20」,真实 30),且判重走同一条读取路径会失效。已给 2_import_batch.py 加 list_entries() 分页读全(page_size=100 按 total 收口),并写进 RUNBOOK §步骤7 与技能 weknora-structured-ingest 红线 7。
  • 接续任务已建:MCN极致事件卡片批量生产 · 第2批,2026-09-23 23:29 单次触发。

23:29-23:45 极致事件卡片批量生产 · 批次 2(自动任务)

  • 5 条视频 23166/28268/20217/28348/30102 → 15 张 V1.3 卡,写 batches/batch_0002.md + .spec.json
  • 导入 WeKnora FAQ 库 15/15,检索终验 15/15 ✅(阈值 0.5,score 0.67-0.80),库内 45 条;新建标签「品质对比」
  • 拆卡经验:剧情/职场长视频(130-140s)按「开场钩子 / 中段冲突升级 / 结尾反转奖惩」拆 3 卡最稳
  • RUNBOOK 已回写批次 2 记录与拆卡经验;已建下一个单次任务「第3批」@ 2026-09-23T23:45

23:45-23:55 极致事件卡片批量生产 · 批次 3(自动任务)

  • 5 条视频 17449/21818/28008/24791/20384 → 15 张 V1.3 卡,写 batches/batch_0003.md + .spec.json
  • 导入 15/15,检索终验 15/15 ✅(阈值 0.5,score 0.71-0.79),库内 60 条;首个「自嘲反差」主标签卡
  • 新经验:同系列账号(周小闹·暑假工)同批 4/5 时,主标签必然撞车 → 相似问必须绑定各自具体桥段;超长视频(356s)拆 3 卡只取开场破冰/中段人情高潮/圆梦反转,高光场面宁弃勿挤
  • RUNBOOK 已回写批次 3 记录;已建下一个单次任务「第4批」@ 2026-09-23T23:58