Files
mcn-short-video/.workbuddy/memory/2026-09-24.md
T
maogeigei 6e4ce9441c feat(skill): 素材层切换 WeKnora + 方法层接线
定性:素材载体切换(本地 md -> WeKnora 容器),非扩容;驱动方向由素材驱动改为方法驱动。

- 新建 references/接口调用/WeKnora_极致事件检索.md 调用契约:MCP hybrid_search(服务 weknora)/ kb_id 用库名禁写死 UUID / match_count=3 / vector_threshold=0.5 显式 / 不传 keyword_threshold / 零命中判据 success=true 且 data=null / 只读 chunk_metadata.answers[0] / 禁用 chat 与 agent_chat / 复筛<=2条每节点 / 取材不取形转译 / 降级矩阵 / 成本控制
- S7 布位表新增「候选创作方法」列(4->5 列)打通方法层(此前 05_极致事件 6 个方法文件在创作流程中 0 调用)
- S7 新增「极致触点素材检索」按需环节 + {material_content} 定死结构 + 极致触点机制自检([期待A]-被X打破->[结果B]);输入章节素材库改双层源(主源 WeKnora / 降级 md,md 永不删除)
- 6 个方法文件补「素材供给」块(极致标签 / 定库检索入口 / 问法②打破方式填法)
- SKILL.md MCP 依赖节增 WeKnora 检索层(含静默降级口径);S7 小节补调用链;frontmatter updated_at
- 索引_知识素材库.md 修正 03/05/06/07/08/11 定性(实为字段结构模板而非素材库);新增「接口调用」章节
- S9 输入增 {material_cards} + 新增台词毛边三档参考;S11 类1「爆点贯穿」升级为爆点溯源 4 判据,八类35项清单同步
- 根目录补 3 份方案/规范文档 + 2 份 09-23 WeKnora 文档;变更日志归档
2026-09-24 14:47:19 +08:00

31 KiB
Raw Blame History

2026-09-24 工作日志

00:0x · 极致事件卡片批量生产 · 批次 4(无人值守自动任务)

  • 处理 21819 / 33425 / 21779 / 30078 / 20367 → 出卡 15,导入 WeKnora FAQ 库 MCN极致事件素材库 15/15,检索终验 15/15(threshold 0.5,score 0.73–0.82),库内 75 条。
  • 产物:tools/weknora-ingest/batches/batch_0004.md + batch_0004.spec.json。
  • 踩坑(已治本写入 RUNBOOK):spec 的 card 与 md 的 ### 标题需逐字一致,导入脚本只报「对不上」不报差异位置 → 导入前用 3 行 Python 比对两边标题。
  • 状态:完成 22 | 剩余 2180 / 2202;已建第 5 批单次任务(2026-09-24T00:15)。

00:2x · 极致事件卡片批量生产 · 批次 5(无人值守自动任务)

  • 处理 21730 / 24840 / 21727 / 28330 / 34790 → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.75–0.85),库内 90 条。
  • 产物:tools/weknora-ingest/batches/batch_0005.md + batch_0005.spec.json。
  • 做法沉淀(已写入 RUNBOOK「批次 5 经验」):4/5 仍是周小闹系列 → 同系列内给每条视频的 3 张卡各配不同主标签(本批主标签 = 反差5/反常识4/视觉冲击2/自嘲反差2/价值观冲击1/预见式服务1/细节专业1),避免批内互抢召回;25s 极短视频按独立闭环同样拆 3 卡。
  • 状态:完成 27 | 剩余 2175 / 2202;已建第 6 批单次任务(2026-09-24T00:28)。

00:34 · 极致事件卡片批量生产 · 批次 6(无人值守自动任务)

  • 处理 18909 / 28311 / 36728 / 24841 / 30153 → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.73–0.84),库内 105 条,无新建标签。
  • 产物:tools/weknora-ingest/batches/batch_0006.md + batch_0006.spec.json;RUNBOOK 已追加批次 6 记录与经验。
  • 做法沉淀:278s 长视频拆 3 卡取「开场装杯被打脸 / 中段数量奇观 / 结尾信物升华」,软广段与派餐段宁弃;「自嘲反差」主标签判据再验证 = 先高调立 flag 再自己拆台。写 spec 前的比对脚本一次通过。
  • 状态:完成 32 | 剩余 2170 / 2202;已建第 7 批单次任务(2026-09-24T00:39,id f353aa08-…)。

00:4x · 极致事件卡片批量生产 · 批次 7(无人值守自动任务)

  • 处理 30101 / 31774 / 17404 / 17468 / 28294 → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.75–0.85),库内 120 条,无新建标签。
  • 产物:tools/weknora-ingest/batches/batch_0007.md + batch_0007.spec.json;RUNBOOK 已追加批次 7 记录与经验。
  • ⚠️ 踩坑(已治本写入 RUNBOOK 步骤 5 红线):2_import_batch.py 用非贪婪正则按 ```text 围栏解析卡片,15 张卡写进同一个围栏只会被识别成 1 张 → 报「卡片 1 张」+ 14 条 spec 对不上。正确写法 = 每张卡独占一个围栏。导入前自检:len(re.findall(r'```text\n(### [^\n]+\n.*?)\n```', src, re.S)) 应等于卡数。
  • 标签判据补充:「细节专业」= 专业条款被拆成递进问答、一轮顶回一个理由;「预见式服务」= 预判对方的难堪并提前把台阶铺好(与品质对比无关)。
  • 状态:完成 37 | 剩余 2165 / 2202;已建第 8 批单次任务(2026-09-24T00:52,id 5bc97c8c-…)。

01:0x · 极致事件卡片批量生产 · 批次 8(无人值守自动任务)

  • 处理 26518 / 33453 / 24498 / 26497 / 36468 → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.69–0.79),库内 135 条,无新建标签。
  • 产物:tools/weknora-ingest/batches/batch_0008.md + batch_0008.spec.json;RUNBOOK 已追加批次 8 记录与经验。
  • 本批首次混入非周小闹素材:24498 周大爷不服老(186s 硬核健身 vlog,全片首个生活 vlog 卡)、36468 癫婆(50s 军训段子)。
  • 做法沉淀:① 围栏自检 + 标题比对两个自检合并为固定前置步骤,本批一次通过;② 主标签打散 = 反差4/反常识3/视觉冲击3/价值观冲击2/品质对比1/细节专业1/自嘲反差1;③「品质对比」= 品质标准被资历/利润公然替换;④「细节专业」= 一轮搜证顶回一个理由形成闭环;⑤ 50s 短段子拆 3 卡可行,前提三卡的期待-打破落在不同对象上;⑥ 生活 vlog 用 行为极致·{离谱/反差/整蛊},剧情用 戏剧极致·{反转/冲突/冲击/荒诞/专业}。
  • 状态:完成 42 | 剩余 2160 / 2202;已建第 9 批单次任务(2026-09-24T01:05,id 65cbe8c2-…)。

01:1x · 极致事件卡片批量生产 · 批次 9(无人值守自动任务)

  • 处理 24856 / 21778 / 24792 / 37368 / 20343 → 出卡 15,导入 15/15,检索终验 15/15(threshold 0.5,score 0.68–0.82),库内 150 条,无新建标签。
  • 产物:tools/weknora-ingest/batches/batch_0009.md + batch_0009.spec.json;RUNBOOK 已追加批次 9 记录与经验。
  • 本批首个校园暗访爽剧素材:37368 脱缰凯(272s 校长微服私访查饭卡乱扣费),极致类型 仍走 戏剧极致·{反转/荒诞}。
  • 做法沉淀:① spec 改用临时 py 按 md 顺序生成(自建卡片顺序表 + 标签/标准问/相似问/反例问),从根上消灭「md ### vs spec.card」不一致,配合围栏自检一次通过;② 主标签打散 = 反常识4/反差4/视觉冲击2/价值观冲击2/细节专业2/自嘲反差1;③「细节专业」补层 = 物证点破(敲盒底日期 / 举硬盘)+ 极快语速链条推理,缺物证不成立;④ 272s 长视频仍只拆 3 卡,结尾猎奇彩蛋(地窖啃烂土豆)宁弃不为之单开卡。
  • 状态:完成 47 | 剩余 2155 / 2202;已建第 10 批单次任务(2026-09-24T01:21,id d9abd8a9-…)。

00:3x · MEMORY.md 精简重写(25973 → 11339 字符)

  • 注入时超限被截断 → 按「索引 + 红线 + 踩坑」原则重写:WeKnora 详细参数、采集脚本细节等已固化在 tools/weknora-ingest/RUNBOOK.md 与技能文件,此处只留指针;保留工具链坑、创作红线、子技能要点。

01:2x–01:3x · 极致事件卡片批量生产 · 批次 10(5 视频 → 15 卡)

  • 视频:31775 菜难吃 / 35110 外卖堂食不一样 / 18973 赠菜要好评 / 23334 俩人坐包房(均周小闹)+ 20270 时间的终点(至尊旭 科幻悬疑 616s,本流水线首个科幻题材)。
  • 产出:batches/batch_0010.md + .spec.json;导入 WeKnora FAQ 库 15/15,终验 15/15 ✅(score 0.79–0.87,历批最高),库内 150 → 165 条;无新建标签。
  • 主标签打散:反常识 4 / 价值观冲击 3 / 反差 3 / 细节专业 2 / 视觉冲击 1 / 自嘲反差 1。
  • 自检一次通过:fences=15;md ### 行 vs spec.card mismatch 空集(沿用批次 9 的「临时 py 按 md 顺序生成 spec」,用完即删)。
  • ⚠️ 新踩坑(已写进 RUNBOOK 红线 3):正式导入返回 success_count=11 但库内实际 +15 且终验全 ✅ —— completed 时 success_count 尚未累加完,判定必须看「库内增量 + 检索终验」,不能看 SUMMARY。
  • 新增经验(已入 RUNBOOK):616s 超长视频仍只拆 3 卡(开场悖论 / 中段物证击穿 / 结尾闭环焊死),中间走马灯奇观整段弃;「细节专业」第三层判据 = 一个具体到位置的物证("你上一口袋的安神片")瞬间击穿专业方。
  • 进度:完成 52 | 剩余 2150 / 2202(cursor=51);已建第 11 批单次任务 2026-09-24T01:40(id bcc1c2ac-…)。

01:52 极致事件卡片批量生产 · 批次 11(自动化)

  • 处理 5 条:26549(李炮儿 258s 挑战一天五份工,生活vlog·职业挑战)、20359(周小闹 包房丢东西)、27956(三虎子gy 52s「女子本身就是好字」,亲子萌娃)、30169(周小闹 假好评,大女主商战线)、28273(周小闹 后厨忘记做菜,老板权谋线)。
  • 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.67–0.82);库内 165 → 180;进度完成 57 | 剩余 2145(cursor=56)。
  • 产物:tools/weknora-ingest/batches/batch_0011.md + .spec.json。
  • 主标签打散为 反差 4 / 反常识 4 / 价值观冲击 4 / 自嘲反差 1 / 视觉冲击 1 / 细节专业 1,无新建标签。
  • 新方法沉淀(已写回 RUNBOOK「批次 11 经验」):① 临时 py 生成 spec 第 3 次一次通过(fences=15、mismatch 空集);② 52s 纯对话型亲子 vlog 也能拆 3 卡(开场反差转述 / 中段金句反驳 / 结尾挖坑反杀),判据是三卡「期待-打破」落在不同对象;③「细节专业」第四层判据 = 把抽象规则门槛换算成具体数字+日常道具(2950 vs 3000 立案线 → 硬塞两个纸巾盒);④「视觉冲击」可用满屏旋转花字+鬼畜复读音效"吞噬"人物表达精神崩溃,不必是实景奇观;⑤ 同一 IP 下不同故事线(暑假工反击 / 大女主商战 / 老板权谋)可同批共存,相似问绑定各自冲突物件与金句即可不互抢。
  • 已建第 12 批单次任务 fd1c3dc0-e076-43dd-afab-a66ae61c7fa4,scheduledAt 2026-09-24T01:57(窗口内 +5min)。

02:10 极致事件卡片 · 批次 12

  • 处理 5 条:30154(周小闹 菜品出错,老板权谋线)、26468(周小闹 提前排菜,部门内斗线)、24826(周小闹 午休开会,暑假工硬刚线)、24495(礼君君 187s「女朋友能有多丢人」,首个情感剧场)、17251(侯绿萝 81s 老钱班,首个校园荒诞喜剧,本批最短)。
  • 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.71–0.83);库内 180 → 195;进度完成 62 | 剩余 2140(cursor=61)。
  • 产物:tools/weknora-ingest/batches/batch_0012.md + .spec.json。
  • 主标签打散为 反差 5 / 反常识 4 / 价值观冲击 3 / 自嘲反差 1 / 细节专业 1 / 视觉冲击 1,无新建标签。
  • 新方法沉淀(已写回 RUNBOOK「批次 12 经验」):① 临时 py 生成 spec 第 4 次一次通过(fences=15、mismatch 空集),写法已完全稳定;②「细节专业」第五层判据(新增):不只是物证顶回对方,还包括"专业规范先立到极细(揭盖朝向 12 点钟方向)→ 执行者在同一套动作上当场翻车 → 管理层把事故改写成'必须培训'的论据",规范从保护盾异化为甩锅凭据;③「视觉冲击」可靠"道具直接砸到脸上"的动作量成立(成把钞票物理扇脸 + 塞比脸还大的金元宝)用于 3 秒改尺度;④ 81s 极短校园喜剧同样能拆 3 卡(开篇奇观 / 离谱赠礼 / 反转+彩蛋);⑤ 跨题材混批(餐饮职场 + 情感剧场 + 校园喜剧)实测不互抢召回,相似问绑定各自冲突物件与金句即可。
  • 已建第 13 批单次任务 3fdaf397-9b2f-4888-bf5e-a28eeace8ef0,scheduledAt 2026-09-24T02:15(窗口内 +5min)。

极致事件卡片批量生产 · 批次 13(2026-09-24 02:28)

  • 处理 5 条:28325(周小闹·托盘/借冰)、33485(周小闹·没大米饭了)、33400(周小闹·上菜小推车)、35036(周小闹·借厕所)、24870(脱缰凯·老师年纪小)。
  • 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.73–0.86);库内 195 → 210;进度完成 67 | 剩余 2135(cursor=66)。
  • 产物:tools/weknora-ingest/batches/batch_0013.md + .spec.json。
  • 主标签打散为 反常识 4 / 反差 4 / 价值观冲击 3 / 视觉冲击 2 / 细节专业 1 / 自嘲反差 1,无新建标签。
  • 新方法沉淀(已写回 RUNBOOK「批次 13 经验」):① 临时 py 生成 spec 第 5 次一次通过(fences=15、mismatch 空集);②**「反常识」新增「对称翻车」型**——两难的两个选项各自都翻车(不借被网暴 / 借了被抽烟霸位耗光耗材连爱心卫生巾被薅秃),落点在"这道题本身没有安全解";③**「视觉冲击」可以是"代价被具象化"——为面子撤推车 → 一地碎瓷 + 跪地 + 2000 元餐损 + 半个月工资;④「细节专业」第六层**——把不可见的"累"拆成三级可称量(空盘 → 加菜 → 加汤水 20 多斤)再塞进对方手里做体感,"你行你上"被物理化;⑤ 同系列四线 + 一个校园题材混批仍不互抢召回。
  • 已建第 14 批单次任务 766c89cf-cfb8-4a48-9859-33e0356d9cb1,scheduledAt 2026-09-24T02:35(窗口内 +5min)。

02:45 · 极致事件卡片批量生产 · 批次 14 ✅

  • 处理视频:36712(穿短裙)、35106(弄脏名牌包)、24854(不能坐电梯)、28262(上交手机)、28286(下班来客人)—— 5/5 全周小闹,但五条故事线互不重叠。
  • 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.74–0.84);库内 210 → 225;进度完成 72 | 剩余 2130(cursor=71)。
  • 产物:tools/weknora-ingest/batches/batch_0014.md + .spec.json。
  • 主标签打散为 反常识 4 / 反差 4 / 价值观冲击 4 / 视觉冲击 2 / 自嘲反差 1,无新建标签。
  • 新方法沉淀(已写回 RUNBOOK「批次 14 经验」):① 临时 py 生成 spec 第 6 次一次通过(fences=15、mismatch 空集);②**「反常识」新增「规章自相矛盾」型**——这套规章本身没有安全解(不用传菜梯就洒怕扣钱,用了客梯要躲店长;收了手机连急救电话都接不到),落点在制度悖论;③**「视觉冲击」新增「物理断供」型**——不靠奇观特效,直接切断环境本身(拉总闸 → 全场全黑 → 手机冷光 → 摸黑结账),爽感在"终止键握在最没权力的人手里";④**「价值观冲击」新增「一次裁决内赏压并行」**(罚店长 500 + 免员工 100 + 留人敲打 + "你得跟我一条心呐"一气呵成)。
  • 已建第 15 批单次任务 7cb57404-bd54-4903-8612-eafedcb5d19e,scheduledAt 2026-09-24T02:50(窗口内 +5min)。

09:43 · 极致事件卡片批量生产 · 批次 15 ✅

  • 处理视频:36742(后厨偷懒)、21753(职场人情味)、17452(客人带食材)、30168(培训)—— 4/5 周小闹但四条线互不重叠;33483(良田 209s 摄影养成)为本技能首次处理「生活 vlog 情感纪实」形态。
  • 出卡 15 张,导入 15/15,检索终验 15/15 ✅(score 0.72–0.87,上限 0.8657 为本链最高);库内 225 → 240;进度完成 77 | 剩余 2125(cursor=76)。
  • 产物:tools/weknora-ingest/batches/batch_0015.md + .spec.json。
  • 主标签打散为 反常识 4 / 反差 3 / 价值观冲击 3 / 视觉冲击 2 / 细节专业 2 / 自嘲反差 1,无新建标签。
  • 新方法沉淀(已写回 RUNBOOK「批次 15 经验」):① 临时 py 生成 spec 第 7 次一次通过(fences=15);②**「反常识」新增「正确废话」型**——角色用一句完全正确的话给自己做最离谱的辩护("后厨是人也不是机器"是事实,却用来论证虾线可以不去;"有点人情味"是美德,结果经理替下属端盘子、老客在楼下没人接),落点在"这句话本身没错所以谁都反驳不了";③**「视觉冲击」第三层:代价在镜头前实时发生且不可撤回**(夺回来的茅台已被开了,一句"送给客人了"把两瓶台子变沉没成本);④**「细节专业」第七层:用对方原话当物证**——把对方说过的话连腔调带动作原样复刻("哎呀有啥不行啊,服务至上嘛"),让否认本身变成新笑料,判据=证据即对方的表演痕迹。
  • 已建第 16 批单次任务 940bb983-4aed-445e-927d-93d225940f10,scheduledAt 2026-09-24T23:10(执行时 09:43 在窗口外 → 顺延当晚 23:10)。

12:1x · 方案:极致事件素材接入创作流程(分析,未改技能文件)

  • 需求:分析脚本创作流程,如何加入知识库调用、让创作参考恰当极致事件素材、丰富内容层次。
  • 核心诊断:技能全仓 grep -i weknora = 0 命中 → WeKnora 240 条卡是离线资产,创作流程零引用;S7 的 {material_content} 注入者「编排层」全仓仅 1 处提及且无定义(悬空引用)。
  • 内容层次模型(4 层):载体层(8 库,拍什么)/结构层(03_框架节奏,怎么排)/机制层(WeKnora 卡,凭什么留人)← 未接入、最薄/表达层(08_对话风格,怎么说)。S7 的 L2 密度自检只查"具体度"不查"爆点机制是否成立" → 大纲可以既具体又平。
  • 实测(本次新跑,10 组跨赛道创作意图打 faq/search,threshold 0.5):
    • 命中 9/10,分数窄带 0.50–0.61,天花板低;
    • 纯抽象 query 零命中("一句话让所有人都沉默"→0);带具象动作的 query 最高分("被当场刁难的人用专业细节顶回去"→0.6058)→ 问法必须带具象锚点;
    • 发现 15 条「泛化磁铁卡」(编号 A1/A2/B1/B2 + 11 条名称式,标准问统一为"找一条 X 的极致事件素材")语义与任何意图都近,频繁挤占 top1;
    • 赛道覆盖偏斜:剧情 186/240(77.5%),亲子仅 3,「感官沉浸」「氛围沉浸」= 0 条(治愈/慢生活向检索为空)。
    • 复用发现:卡片 内容含义 结构 [期待A]—被X打破→[结果B] 可反向当爆点成立性自检器(无新数据即可用)。
  • 方案三接入点:A(P0)S7 事件展开前做机制检索,问法用「镜像式五要素」(与库内标准问语域同构:落差对象+打破方式+具象锚点+段落功能);B(P1)S9 台词毛边(原话/微反应/意外三档);C(P1)S11 爆点溯源(无来源=编造爆点,照搬=P0)。
  • 红线:① 转译必须"取材不取形"(只取落差结构/手法类别/铺垫量级,禁搬人物·台词·道具);② WeKnora 是开发机本地 Docker(用户环境没有)→ 必须静默降级为 8 库筛条,脚本含 Key/端口不入技能包,只进 tools/;③ FAQ 纯向量 + CustomMetadata 不参与过滤 → 收敛只能靠 query 语义与检索后复筛(top5 复筛留 ≤2);④ 阈值恒显式 0.5(提到 0.6 会大面积漏)。
  • 产物:极致事件素材接入创作流程方案_V1.0_20260924.md(仓库根目录)。未改任何技能文件,待授权后按缺口清单 8 项执行。
  • 数据侧待办(已记入方案 §四):改造 15 条泛化磁铁卡标准问、清理 6 条卡 事件标签 字段混入的自检备注、后续批次优先补非剧情赛道。

12:2x · 方向修正:极致事件素材接法改为「方法驱动」(用户提出,两轮确认)

  • 用户质疑:「极致事件是否需要根据创作方法去应用,而不是直接加入到创作流程中」→ 判断:对,上一版方案的接法方向是反的。上一版把卡库当成 S7 的一个检索子步骤直接插进流程(布位→检索→填充)= 素材驱动;应改为方法驱动(方法定手法 → 判定定类型与布位 → 素材作实例供给)。
  • 证据(本轮新查):知识库/05_极致事件/ 10 个文件实为两类混放——① 规则/索引层(00 总纲、01 映射表、02 赛道形态、03 评估标准)已被 S6/S7 引用;② 方法层 6 个(极致行为创作法 + 预期反转/荒诞化/抽象化/无厘头/错位化)在创作流程中 0 调用(唯一 1 次出现在 创作流程规范.md 第 380 行的目录罗列,属罗列非调用;「极致行为创作法」连文件名都未出现)。对照:S5 选题有完整方法论清单(5 大方法 + 明文"AI 执行时须读取对应文件")→ S5 是方法驱动,S6/S7/S9 不是。
  • 上一版实测跨赛道检索分低(0.50–0.61)的病根是方法缺位(泛意图在向量空间无收敛点),不是检索参数问题。
  • 三层关系确认(用户本轮再次收口):方法层(怎么制造极致感)/ 判定层(这是什么极致)/ 素材层(用什么材料);调用方向自上而下。
    • ⭐ 「极致事件素材」= 素材层的事件类,与 8 库「载体类」并列(不是素材库的替代)。用户定性:极致事件素材起的就是素材库的作用。
    • 「极致事件」一词两义必须切开:作为知识库维度(知识库/05_极致事件/)= 方法 + 判定,不是素材;作为素材(240 条卡)= 素材层,不是方法。
    • 素材层两类用法/检索方式不同:载体类 8 库 = 字段筛条(四维标签),可直接取用(换成本账号具名物品);事件类卡 = 语义检索(FAQ 纯向量、无字段过滤),只能结构参照 + 转译(属别人账号事件,禁直取)。
  • 设计推论(待落地):① ❌ 取消「接入点 A = S7 新增检索子步骤」——极致事件素材既属素材层,就不应有独立接入步骤;② ✅ 改为扩展 S7 现有「素材库」定义域(8 库 → 8 库 + 极致事件卡库),共用同一调用链「类型定库 → 筛条/检索 → 填充」,仅检索方式分叉 → ⚠️ 该"扩容"表述当天 13:0x 被用户纠正为"切换"(见下节);③ 方法层接线是本需求的另一半(不改则素材层扩大后仍是素材驱动)——落点 = S7「极致触点节点布位」表新增「候选创作方法」列(无需新增步骤)。

13:0x · 定性修正:不是「扩容」,是「切换」(用户纠正)+ 三项事实实测

  • 用户纠正:「素材库不叫扩容,是叫切换,之前技能中的素材切换到 WeKnora 对应素材库」→ 采纳。定性 = 素材载体切换(本地 md 素材 → WeKnora 容器),非两库并存。
  • ⭐ 支撑该定性的实测事实(本轮新查,极重要):
    • references/素材库/ 共 10 个文件 / 546 行,真实素材条目合计仅 21 条;
    • 7 个通用库中 6 个是空壳(03_生活仪式库/05_装修布局库/06_生活服务库/07_穿搭库/08_妆容库/11_造型库)——文件内只有 ## 字段结构 代码块 + <!-- 在此添加条目 --> 注释 + 「最低要求:每个账号 ≥ 10/15 个」的空承诺,零条素材;
    • 唯一有实素材的是 01 美食库 4 文件 = 21 条菜品(中式家常菜 8 / 仪式感美食 5 / 煲汤类 5 / 深夜宵夜 3);
    • 对比:WeKnora 240 条。→ 本地 md 素材库从未真正建成过,故"切换"成本极低(仅 21 条要迁)。
  • ⚠️ 连带问题:references/索引_知识素材库.md 对 03/05/06/07/08/11 的描述("安睡/做饭/按摩选型"「穿搭方案选型」等)承诺了不存在的内容——把"字段结构模板"写成了"素材库",切换时须一并修正。
  • 切换的关键设计约束(本轮新增判断):
    1. md 素材文件不能删 —— WeKnora 是开发机本地 Docker,用户环境没有 → 无 md 则用户环境零素材。定位:md = 权威源 + 降级源,WeKnora = 检索运行时副本;降级 = 静默回退读 md + 四维标签筛条。
    2. 切换范围:分块定义/模板/标签闭集 = 规格 → 留文件(规则类不进检索层);实素材条目 → 切 WeKnora;6 个空壳库的"字段结构"并入 分块定义/ 后原文件退役。
    3. 能力置换(必须接受):失去四维标签字段精确筛选(FAQ 纯向量、CustomMetadata 不参与过滤,实测),换来素材 21 → 240 条。净收益为正。
    4. 账号隔离是硬边界:FAQ 无 metadata 过滤 → 无法按账号隔离 → 04 对话库(账号专属)不切换,保持文件形态按账号存,否则多账号串号。
    5. 前置成本:进 WeKnora 的载体素材必须补「标准问+相似问」(FAQ 召回唯一杠杆)→ 21 条 × 5-6 问法 ≈ 120 条问法,复用 2_import_batch.py。
  • 产物:极致事件素材接入创作流程方案_V1.1_20260924.md(V1.0 已加"被取代"标注保留沿革)。技能文件仍未改动,待授权。
  • 六项待办顺序(V1.1 §六):补 21 条问答对入库 → 清 15 条泛化磁铁卡 + 6 条标签污染 → 改技能文件 10 项 → 卡片补「方法归属」→ 变更日志。

13:0x · 技能接入 WeKnora 的具体实现(实测定稿)

  • ⭐ 决定性发现:走 MCP 工具,不写脚本。weknora MCP 已配在 D:\.workbuddy\mcp.json(stdio + weknora-mcp-server.exe,env 指向 http://localhost:31607/api/v1 + Key)。实测 mcp__weknora__hybrid_search 可直接召回 FAQ 库条目:kb_id 传库名「MCN极致事件素材库」自动解析;命中 28325-3,score=0.6058205716953738 —— 与 REST /faq/search 同 query 同分(两条路径等价)。
  • 两条路径分工:MCP = 创作端(会话内,S7 每视频 1-3 次);REST /faq/search = 生产端(tools/weknora-ingest/*.py 批量导入+终验,需 unset 代理、导入通道独占)。
  • 三个必须写进技能的坑(实测):
    1. 零命中不是错误:返回 {"data": null, "success": true} → 判据是 success=true 且 data=null,不得判为调用失败,不重试不报错,走降级。
    2. 同一张卡内容返回三份(content / chunk_metadata.answers[0] / matched_content)→ 创作端只读 chunk_metadata.answers[0],其余为噪声。
    3. chat 不能替代 hybrid_search:chat 是 RAG+LLM 总结,会把卡「摘要化」,而卡的价值恰在不可概括的细节(原话/微反应/铺垫量级/镜头语言)→ S7 用 hybrid_search 取原文,禁用 chat/agent_chat。
  • 参数:hybrid_search 默认 vector_threshold=0.5(恰好合规,仍应显式传)、match_count=5 → 建议传 3;keyword_threshold 对 FAQ 库无效(FAQ 恒纯向量召回),不传。
  • 上下文成本控制(实测推导):单条卡约 3.5-4KB(因三份重复),match_count=5 单次≈18KB≈6K tokens;5 节点全检 ≈30K tokens → 三条规则:① match_count=3(单次≈3.5K tokens);② 按需检索(只检"想不出桥段的节点",通常一视频 1-3 次);③ 串行、读后即弃,不堆积。
  • 降级矩阵(P0):MCP 未挂载 / 服务不可用(用户环境无 Docker)/ 库不存在 / 零命中 → 静默回退读 references/素材库/*.md;零命中退化为「仅用类型层子类指引」,不编造素材。技能文案须写成能力探测式(先试→失败则降级),不假定可用也不假定不可用。
  • 召回机制澄清(补充):hybrid_search 名字含 keyword,但 FAQ 库 matched_content 说明命中的是「标准问+相似问+答案」全文,match_type=0 → 关键词不参与,仍是纯向量。
  • 产物:技能接入WeKnora实施规范_V1.0_20260924.md —— 含可直接落地的新建文件全文草稿 references/接口调用/WeKnora_极致事件检索.md(5 节:调用/镜像问法/返回判据/降级/成本控制)+ 各技能文件改动落点表(SKILL.md 两处、S7 四处、{material_content} 定死结构)+ 环境矩阵。
  • 落地前 3 项待补测:① 载体类 21 条菜品与事件卡是否互挤召回;② match_count=3 对小众赛道(亲子 3 条/沉浸 0 条)是否够;③ 真实 S7 场景零命中率。
  • 技能文件仍未改动,待授权。

14:xx · 执行落地:素材层切换 WeKnora + 方法层接线 ✅(用户授权「按照方案执行」)

  • 新建:references/接口调用/WeKnora_极致事件检索.md —— 调用契约权威源,8 节(定位 / 调用参数 / 镜像式五要素问法 / 返回判据三坑 / 复筛转译 / 降级矩阵 / 成本控制 / 实测依据 / 与其他接口分工)。kb_id 用库名、match_count=3、vector_threshold=0.5 显式、不传 keyword_threshold、零命中判据 success==true 且 data==null、只读 chunk_metadata.answers[0]、禁 chat/agent_chat。
  • S7 核心改造(创作流程/7_生成短视频大纲.md,9 处):布位表新增「候选创作方法」列(4→5 列)打通方法层 → 新增「极致触点素材检索」按需环节(已有桥段的节点跳过,通常一视频 1–3 次)→ {material_content} 注入格式定死 → 新增极致触点机制自检(L1 节点须写得出 [期待A]—被X打破→[结果B],写不出降级为普通情节)→ 输入章节素材库改双层源(主源 WeKnora / 降级 md 文件,md 永不删除)→ System Prompt 与禁止行为同步(禁跳方法列 / 禁搬卡原文 / 禁零命中编造)。
  • 方法层接线:知识库/05_极致事件/ 6 个方法文件各补「素材供给」块(极致标签 / 定库检索入口 / 问法「② 打破方式」填法),治「方法层在创作流程中 0 调用」。
  • 配套:SKILL.md(MCP 依赖节 + WeKnora 检索层 + S7 小节调用链 + frontmatter updated_at);索引_知识素材库.md(素材库章节改双层源 + 03/05/06/07/08/11 逐条标注「仅含字段结构模板,尚无实素材条目」+ 新增「接口调用」章节);S9 输入增 {material_cards} + 新增「台词毛边三档参考」(原话/微反应/意外);S11 类1「爆点贯穿」升级为爆点溯源 4 判据(次数/可溯源/落差三件套/转译合规),八类35项清单同步。
  • ⚠️ 踩坑(本轮):6 个方法文件写在 references/知识库/05_极致事件/(两层深),「素材供给」块里我写了 ../接口调用/WeKnora_极致事件检索.md —— 层数算错(../ 只退到 知识库/)。阅 references/规则/路径引用规范.md 后确认:技能内既有惯例是省略 references/ 前缀写成 接口调用/xxx.md(S7、索引、变更日志一致),故统一改为 接口调用/WeKnora_极致事件检索.md。教训:跨层级引用前先 grep 同侪写法对齐惯例,别自己推层数。
  • 复查(全仓):../接口调用/WeKnora = 0;敏感串(sk- / 31607 / e6772e41)= 0;盘符绝对路径 = 0;「编排层」旧表述仅剩 2 处且均在第三方整包 nuwa-skill-main 内(规范明示豁免);6 个方法文件「素材供给」引用写法完全一致。
  • ⚠️ 待用户确认:用户级技能 junction ~/.workbuddy/skills/短视频工作台 整体不存在(不是 children=0 的失效态,而是条目缺失;项目级 .workbuddy/skills/ 也没有)。未擅自重建——创建 junction 会改变技能加载行为,可能是用户主动移除。重建需 node -e "fs.symlinkSync(...)" + PowerShell New-Item -ItemType Junction。
  • 方案 §六 未执行项(本次范围外,待另行授权):6 个空壳库字段结构并入 分块定义/ 后原文件退役;21 条载体素材补问答对入库;清 15 条泛化磁铁卡 + 6 条标签污染;240 条卡补「方法归属」字段。