# MCN 短视频项目长期记忆(2026-09-28 精简重写 v3) > 原则:**只放「索引 + 红线 + 踩坑」**。凡已在文件里可查的(SKILL.md / references / RUNBOOK / 工作台规范)只留指针。 ## 0. 权威源指针 | 主题 | 权威文件 | |:--|:--| | 技能全部口径 | `<仓库>/project/短视频脚本创作/V1.0/`(SKILL.md + references/references-add) | | 路径/环境 | `references-add/路径配置.md` | | 留人密度 | `知识库/03_框架节奏/04_节奏控时叙事套路.md` §1.3 三级留人点体系 | | 12 维标签 / 镜头 / 画面风格 | `素材库/分块定义/00_通用维度_分块定义.md` | | 事件卡 10 字段模板 | `素材库/分块定义/00_模板-各库分块模板.md` §极致事件 | | 赛道词表 | `知识库/标签库/赛道标签.md`(S01–S27 × 8 叙事形态 × 三级垂类) | | 卡片批量生产 / 回炉 | `tools/weknora-ingest/RUNBOOK.md`(自包含手册,**§2.4 召回实测 / §2.5 回炉 SOP / §2.6 触发率**) | | 工作台 UI | `mcn-work-shop/docs/工作台视觉交互规范.md` | ## 1. 仓库与环境 - 本地 `D:\AI技能\mcn-short-video`;远程 `git@work.alotbuy.com:maogeigei/mcn-short-video.git`。 - 技能软链 `~/.workbuddy/skills/短视频工作台` = junction → `project\短视频脚本创作\V1.0\`;失效判据 children=0 → node `unlinkSync` + PowerShell `New-Item -ItemType Junction`。 - 环境判定(禁写死盘符):路径含 `.dsh` → dsh(**只读**);否则 `git rev-parse --show-toplevel` 成功=开发机 / 失败=用户环境。 - 产物落盘:桌面 `MCNSkill项目/{账号}/`。 - 技能版本:**只改 V1.0**;Lite1.0(无 subskills)默认不动;变更流程 = 方案→确认→执行→同步副本。 ## 2. 子技能要点 - **MCN工作台(Web)** `V1.0/mcn-work-shop/`:零依赖 Node,端口 8900。AI 任务 `POST /api/run`(写宿主 automation,once + `next_run_at`=now+5s)→ 轮询 `/api/run/status`;**创作/改写 prompt 必带 `SKILL_HINT_CREATE` 前缀**。配置单源 `config.json`;`.cjs` 无扩展 require 会 MODULE_NOT_FOUND → 配置模块用 `.js`;静态资源根映射,`/public/xxx` 必 404。 - **mcn-dou-analysis**:达人表 15 列、TOP6、≥60 条停、29 赛道枚举、浏览器 9223 + 标签页复用、**身份标识禁从 DB 回填**;产物 `POST /api/import/account` 幂等写 `mcn-plugin.db`。 - **mcn-data-insight**:11 个红狐子技能,榜单即查即缓存。红狐周期 code=3203 → 账号周榜最新可用期恒为**上一周**(非 bug)。 - **mcn-video-prompt**:F1 反推图/F2 反推视频/F3 生图/F4 分镜;格式优先级 = 用户格式 > 默认 6 层;llm-wiki 必须下沉读原始条目。 - 提示词评价口径:`D:\AI技能\powerbi-work-space\提示词评价维度.md` V1.2(**仅适用于视频提示词**)。 ## 3. 创作红线 - 三态:⚡自动(静默只落最终物)/🤝共创(+确认门)/🛠开发(+全落盘);产物链 05→06→07 禁跳步;硬编码禁止(P0)。 - 脚本必须走 S1-S11,禁会话内直写;开场钩子 3-7s,硬上限 10s。 - **留人点**:L1 极致触点 15-20s / L2 留人点 **每 10 秒 ≥1** / L3 增量点 3-5s。判据 = 观众产生明确「为什么」(抛问题/打破预期/说到自己/给承诺,≥1 种);纯陈述/纯动作/重复前文不算。自检 = ⌈时长÷10⌉。**禁止混层**。类型名沿用五类机制,**禁自造枚举**。 - **三层定位**:素材库=存素材/极致事件=素材的内容层属性/知识库=讲方法。**事件卡模板与条目落在素材库侧**,`知识库/05_极致事件/` 只放类型层与判据。 - **事件卡 10 字段(顺序固定)**:`极致内容 → 内容含义 → 极致触点 → 事件标签 → 极致类型 → 创作手法 → 镜头语言 → 画面风格 → 复用场景 → 适用场景`。卡片头 `> 所属库:{NN 库名 | 横切未定}` 不占字段位。 - 三易混字段:**极致内容**=画面内容+氛围+质感(客观可拍);**内容含义**=`[期待A]—被X打破→[结果B]`;**极致触点**=**效果侧两项:用户心理 / 共鸣**(机制词归标签/类型,效果词不复用标签词)。 - **事件标签 ≥2 值,主标签后缀「(主)」**;「事件标签」≠ 8 库「极致标签」。 - 创作手法含**铺垫量级 短≤3s / 中 3-10s / 长>10s**;翻车样本同等入库。**极致触点 ≠ 留人点**。 - **复用场景 ≠ 适用场景**:适用场景=原生在哪被调用(从哪来);复用场景=事件结构能搬到哪(到哪去),取值 `{赛道·叙事形态·段落}`,**禁自造赛道名**。 - **素材条目形态铁律**:`### {名称}` + `- **字段**:值` 平铺列表;**禁写成多节表格报告**。 - 解析逆向:以 `analysis` 场次表为准(±1-2s 偏移);`极限维度` 是**上游自造词,禁直录**,三步归一:剥落差→类型层→落 12 维。 ## 4. 检索层:WeKnora + 卡片流水线 - 容器:`MCN极致事件素材库`(FAQ 型,`e6772e41-7b72-499d-b46c-e5ca7c9d1740`,`127.0.0.1:31607`,key 见 `D:\.workbuddy\mcp.json`)。**执行前必读 RUNBOOK**。 - ⛔ **接口四铁律**:① 只走 `POST /faq/entries` 批量通道(单条 `/faq/entry` 建的检索不到);② 改相似问必须 DELETE + 重导;③ 检索必显式 `vector_threshold: 0.5`(默认 0.7);④ dry_run 异步且占通道,须轮询 completed。 - ⛔⛔ **检索参数名铁律**:数量参数名 = **`match_count`**;写 `top_k`/`limit`/`size`/`count`/`k` 会**静默忽略并恒返回 10 条**(不报错)。`vector_threshold` **必须显式传**(省略 → 返回 0 条)。阈值只做事后过滤,**不能提升质量**。分数间隔**不可判优**(top1~top10 首尾仅差 0.047)→ 靠**人工复筛落差结构同构性**。 - ⛔ **删 FAQ 条目**:`DELETE /knowledge-bases/{KB}/faq/entries` + body `{"ids":[int64,...]}`;`DELETE /faq/entries/{id}` 是 404。 - ⛔ **FAQ 列表分页抖动**:`page_size=100` 页边界会重复。解法 = 先 `page_size=1` 拿 `total` → 再 `page_size={total}` 一次拉全。 - 其他:FAQ 检索恒为纯向量;条目**单标签**;`CustomMetadata` 不参与过滤;`auto_tag` 必须关。素材卡走 FAQ 型(文档型封顶 9/11)。**规则类文本不进检索层**。 - ⛔ **卡片写入四条铁律**:① 读 **`tag`(单值字符串)不是 `tags` 数组**;② `事件标签` 行**必须写 12 维闭集标签**,禁自造事件名当主标签 → 写完必跑 `5_tag_coverage.py`;③ `spec.json` 的 `card` **禁带 `### ` 前缀**;④ 卡片正文**必须包 ` ```text ` 围栏**。 - **稳定写法(连续 24+ 批一次通过)**:临时 py 从 md 正则提 `###` 标题 → zip 手写 tag/std/sim/neg → 比对 mismatch=0 → 用完删脚本;md 每卡独占一个 ` ```text ` 围栏。 - ⚠️ **`3_done_batch.py` 跨会话中转丢失**:中途被打断 → 登记空、`ids:[]`。处理 = 手动补登 + 同步 `done`。**续跑先核对末条**。 - 已用 12 标签:反差 / 反常识 / 视觉冲击 / 预见式服务 / 价值观冲击 / 品质对比 / 细节专业 / 自嘲反差 / 感官沉浸 / 氛围沉浸 / 食材极致 / 难度极限。 ### 4.1 补采自动化与标签治理 - 自动化 `MCN极致事件素材库·定向补采(每小时3批·暂存模式)`,id `c4d5eae8-e2ff-427a-99aa-d027d354bc19`,`FREQ=HOURLY;INTERVAL=1`,ACTIVE。**rrule 不支持分钟级** → 单次触发连跑 3 批。 - 脚本:`4_sensory_candidates.py`(感官候选)/`5_tag_coverage.py`(12 标签体检)/`6_target_candidates.py`(定向筛,含 `NEGMAP`)/`7_dispatch_next.py`(**调度器**:算缺口+取批命令+SKIP/PRIORITY)。取批三入口:主队列/`--sensory`/`--target <标签> N`。 - **目标「每标签 ≥100 条」**:**严格主角判据** + **食材优先** + **难度极限暂不处理**。缺口跑 `7_dispatch_next.py`,**勿写死**。 - ⭐ **「食材极致」严格主角判据 3 条**:① 部位知识型 ② 验鲜解剖全流程型 ③ 形态重组型。 - ⭐⭐ **暂存模式(防返工关键机制)**:补采只产 `batches/pending_import/{batch_00NN.md,.spec.json,.meta.json}`,**禁跑 `2_import_batch.py`/`3_done_batch.py`、禁改 `state.json`**。统一入库 = **`13_import_pending.py --dry|--run|--sync`**。**安全结论**:回炉删除按 `polish_plan.json` 冻结的 526 id → 新采卡不会被误删;唯一真风险 = 重跑 `9_polish_plan.py`(已禁)。 ### 4.2 卡片回炉 + v3 双任务 SOP — 详见 RUNBOOK §2.5 - 链路:`8_backup_all.py` → `9_polish_plan.py` → `10_polish_batch.py payload|apply ` → 删旧 + 重导 → `11_diff_report.py`。 - **字段契约**:可润色 6(极致内容/内容含义/极致触点/创作手法/镜头语言/画面风格)/**锁定 4**(事件标签/极致类型/复用场景/适用场景)/可改写问法 3 组。 - **三重校验**:① 字段集合一致 ② 骨架完整 ③ 行数不变。任一失败 → 该卡退回。 - ⭐ **v2「吸引力优先」**:判据 = **内容是否更短视频化**。三特征:破折号 +24%/口语化连接词 +28/强动作动词 +32%。三改动 = **台词前置/破折号拍点/动词升级**。 - ⭐ **约束强度对照**:堆「禁止…」严约束 → 改动率仅 1%;宽约束 → 46%。走宽约束。 - ⭐ **v3 第二任务:问法增厚**:`std` 保留骨架补画面、`sim` 条数严格相等、`neg` 保持负例属性。**v3.1 绝对边界**:增厚 = **搬运原文已有信息**。自检口诀:「问法里每一个具体信息点,都必须能在该卡 6 个可润色字段 + 事件标签里找到出处;找不到的删掉。」 - ⭐ **`validate()` 返回 5 元组** `(ok, reasons, cleaned, q, autofix)`;**std 前缀校验 = autofix 语义**(原文无前缀时模型误加 → 自动剥离,不退回)。 - ⭐ **`fiction_check` 防误报**:引号字符类匹配弯/直引号;比对须归一化。实测残留告警全为误报 → 只告警不拦截。 - ⭐⭐ **暂存批 v3 链路(已跑通)**:`10_polish_batch.py build-pending ` → `Agent(model="doubao-seed-2-1-pro")` 喂 `PROMPT_polish_v3.md`+载荷 → 存 `out/polish_result/pending_00NN.json` → `apply-pending `。 - ⚠️ **`apply-pending` 必须在同一次执行内跑完**:曾出现「已生成 pending_00NN.json 但未 apply」→ 续跑须先补 apply(批次 48 实测)。 - 工具:`12_attractiveness.py`、`11_diff_report.py`、`14_form_audit.py`、`15_sensory_recall.py`(含 `extract_name()`)、`16/17_question_ab.py`、`18/18b_question_validate(.r).py`。 ### 4.3 ⭐⭐ 技能侧 WeKnora 调用(权威源 = 技能 `references/接口调用/WeKnora_极致事件检索.md`) - 🔴 **素材召回触发率 ≈ 0(端到端实测 ×2 路径)**;**口径(用户确立,优先)**:架构 = 「**流程不主动召回素材,知识库按需被取**」= 设计意图,**不改**。`hybrid_search` 0 次 ≠ bug。判据只有两条:① 模型**真能写出桥段** → 跳过 = ✅;② **写不出却仍不检索** = ❌。 - 实测:4 会话 191 次工具调用、召回 0 次;模型自述「中间步骤已在上下文按序完成,自动模式后台静默」→ 整段脑内跳过。 - **⭐ 素材库两个作用位**:**① 给事件「填空」**(S7 写不出桥段时取机制样本)+ **② 给台词「润色」**(S9 取原话/微反应/意外)。**两者是同一条链上下游**:S7 触发 ≈ 0 → S9 的 `{material_cards}` 恒空 → ② 退化。**∴ ② 失效是 ① 的直接后果**(②修好①自动恢复,改动最小)。 - 文件位置:① `7_生成短视频大纲.md` §极致触点素材检索;② `9_生成短视频脚本.md` L12 + L101-113 §3.1。 - **结论**:不动架构;解「"按需"判据太软」→ 推荐 **C1 换外部可验证判据**("通用 vs 专属"可验证,不像"我能不能写")。⛔ 作废「删除跳过条款 → 默认必检」。 - 会话记录 `D:/.workbuddy/projects//.jsonl`;工具 `20_trace_recall.py`。工作台「提交创作」是**两段式**(`#reqCreate` 只弹确认,真提交在 `button[data-ok]`)。 - ✅ **确定有效 = 参数纠正**:`match_count` 实测省 69% 上下文;`vector_threshold` 必显式传。 - ⚠️ **收益有限 = 问法改写**:反查法旧 R@1 34/35 vs 新 35/35 → **差异在噪声内**。价值 = **信息量保障**,不是提升召回率。⛔ 禁宣称"召回率 97%→100%"。 - 🔴 **真实瓶颈 = 素材覆盖**:需求法暴露 3/5 真实节点零命中 → 问法再优化也召不回不存在的素材。 - 🔬 **验证方法论铁律**:测「检索优化」→ ⛔ 禁用「凭空需求」法;✅ 必用**「反查法」**。 - ⚠️ **信息保真审计口径**:真判据 = **角色台词零丢失 + 数字零丢失 + 可拍动作/物品全在**。 ## 5. 麦芽平台采集(脚本在 `tools/`) - ⭐ **接口直取,禁 DOM 翻页**:`GET /api/scriptwriting/shortVideo/hot?pageNum&pageSize&sortType&startLikeNum`(pageSize=50 最快)。 - 两坑:① 页面「点赞量筛选」整体排除 `uploadType=1`(人工上传占 18.5%)→ 拉无门槛全集后本地过滤;② 日期取 `publishTime || uploadTime`。 - 近 3 个月 3531 条 → ≥20w 命中 **2202 条**(剧情 1194 / 生活vlog 971)。 - ⛔ **清单交付格式红线**:用户口中的「表格」= **Excel(.xlsx)**,主交付 3 页 + csv 配套;**写 .md 属过度交付**。 - **麦芽 MCP**(`myai-mcp-production`):登录态会过期(`auth_status` → `feishu_login`);`short_video_detail(id)` 返回 `content` + `analysis`。 ## 6. 工作方式红线 - 治本:从根因修机制;禁补数据/临时绕过;锚点禁写死盘符。 - 盘点前先确认扫描范围;下「违规」结论前必先读规范分类。 - 术语治理:先**内容级比对**。批量替换禁吞沿革句,**沿革句写入后不得再跑替换脚本**(已踩 3 次)。改后整仓 grep 复查,临时脚本用完即删。 - 改静态资源后**整页重载**再验;同一文件多次 Edit 必须串行;逐条修复(读→改→验)。 - git:2h push 一次;push 前 fetch;杀 node 用 PowerShell `Stop-Process`;`git rm -r` 中断会留 index.lock。 - 三层沉淀:治本(技能文件)→ 失误(`失误与规避记录.md`,append-only)→ 记忆。 ## 7. 本机工具链坑(通用项见用户级 MEMORY) - **产 `.xlsx` / 需 requests-openpyxl → 一律 `D:/miniconda3/python.exe`**(托管 venv 装不上包)。 - shell 前先 `unset HTTP_PROXY HTTPS_PROXY ALL_PROXY ...` + `export no_proxy=127.0.0.1,localhost`,否则 localhost 502;curl 另加 `--noproxy '*'`。 - **PowerShell stdout 被吞** → `Out-File` 到临时文件再 Read。**删非 ASCII 文件必须 Node `fs.unlinkSync`**。 - 后台服务会被系统回收 → 让用户双击 `start.bat`。**Chrome 不主动关闭**。 - 浏览器调试(端口 9333):必须 `run_in_background: true` 长驻 chrome;browser-harness 用 `BU_CDP_URL=http://127.0.0.1:9333` + venv python;**禁用 `env -u` 前缀**。 - ChatGPT 投材料(`tools/chatgpt_ask.py`):**长材料走附件上传**;完成判定 = 无 stop 按钮且文本连续 4 次不变。 ## 8. 工作台 UI 定稿要点 > 完整铁律查 **`mcn-work-shop/docs/工作台视觉交互规范.md`**(权威源)。 - 榜单四榜末列恒「功能」= `inDb ? 查看 : 关注`;热门榜与点赞榜字段体系不同 → 跨榜逻辑双向回退。 - 选题列表由 `rewrite_id` 驱动:点标题=详情;「查看脚本」=`openScriptModal({rewriteId})`;「编辑继续」=带 id UPDATE;「复制」=不带 id 新增。 ## 9. 历史时间线(压缩) - 08 月:素材库扁平化 8 类型;赛道 8→27;三态创作;Lite1.0;`.dsh` 只读;工作台立项。 - 09-10 仓库迁移 + 环境判定|09-14 全量技能审计(P0=0/P1=8/P2=7)|09-16 工作台 AI 创作改版 + UI 规范定稿。 - 09-21~22 极致事件定义与三层定位裁决、事件卡 10 字段定稿。 - 09-23 WeKnora 检索层建成(FAQ 容器 + 阈值 0.5);留人点三级体系定稿。 - 09-23~24 卡片流水线化(RUNBOOK + 脚本 1/2/3)。 - 09-28 定向补采自动化 + 卡片回炉(v2 吸引力优先 + v3 问法增厚)+ 补采切暂存模式;检索参数名纠正。