# MCN 短视频项目长期记忆(v4 · 2026-10-08 去重精简) > 原则:**只放「索引 + 红线 + 踩坑」**。凡文件里可查的(SKILL.md / references / RUNBOOK / 工作台 docs)只留指针,不抄内容。历史流水已清。 ## 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-workshop/docs/工作台视觉交互规范.md` | | 工作台 AI 通路 | `mcn-workshop/docs/AI链路-本地CLI接入.md` | | 技能侧 WeKnora 调用 | 技能 `references/接口调用/WeKnora_极致事件检索.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. 子技能要点 ### 2.1 MCN工作台(Web)`V1.0/mcn-workshop/` - 零依赖 Node,端口 8900。任务 `POST /api/run`(写宿主 automation,once + `now+5s`)→ 轮询 `/api/run/status`;**创作/改写 prompt 必带 `SKILL_HINT_CREATE` 前缀**。配置单源 `config.json`;`.cjs` 无扩展 require → MODULE_NOT_FOUND(配置模块用 `.js`);静态资源根映射,`/public/xxx` 必 404。 - **AI 通路(09-29 起)**:`ai.backend` = `cli`(本地 CodeBuddy CLI,stdio 无端口)|`dify`(旧链路兜底)。**细节全在 §0 权威文档,改动前必读**。四条硬红线: - 🔴 **凭据**:`config.json` 是 git 跟踪文件 → key 只放 `%USERPROFILE%\.workbuddy\mcn-workshop\ai-cli.json`(仓库外,不被技能同步复制)。 - 🔴 **`SERVER__PORT` 必须删** —— CLI(含 `-p` 模式)内部起 HTTP server,继承宿主端口即 `EADDRINUSE` **静默卡死**,且 HTTP 层(health/info/sessions)看起来完全正常。**最容易误判的坑**。 - 🔴 **两段流程模型来源不同**:`/api/ai/clarify`(需求打磨)走**本地 CLI**(`ai.cli.model`);`/api/run`(提交创作)走**宿主调度器**,模型取 `sessions` 表最近活跃**手动会话**的 `model`(兜底 `auto`)⇒ **改 `ai.cli.model` 不影响创作任务模型**。 - 🔴 **`custom:` 模型按租户开通**:本机 Key 租户**无 doubao**(500 / `service info not found`);`custom-model-*` 真名从 `%TEMP%\mcn-cli-home\logs\**\*.log` 的 `requestModelId`/`requestModelName` 配对提取(问模型「你是谁」不可靠)。 - 其余备忘:性能三杠杆 `--tools "WebSearch,WebFetch"`(prompt -78%)/ `--effort low`(首字 61.7s→19.7s)/ 换模型;⚠️ `[INIT tools]` 是**注册表全量**,判生效看 `usage.input_tokens`;`/api/ai/topics` 是**死代码**;SSE 协议 `{delta}/{replace}/{error}/[DONE]`,cli 与 dify 一致(前端零改动)。 ### 2.2 其他子技能 - **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`(感官候选)/`5_tag_coverage`(12 标签体检)/`6_target_candidates`(定向筛,含 `NEGMAP`)/`7_dispatch_next`(**调度器**:算缺口+取批命令+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` → `9_polish_plan` → `10_polish_batch payload|apply ` → 删旧 + 重导 → `11_diff_report`。 - **字段契约**:可润色 6(极致内容/内容含义/极致触点/创作手法/镜头语言/画面风格)/**锁定 4**(事件标签/极致类型/复用场景/适用场景)/可改写问法 3 组。 - **三重校验**:① 字段集合一致 ② 骨架完整 ③ 行数不变。任一失败 → 该卡退回。 - ⭐ **v2「吸引力优先」**:判据 = **内容是否更短视频化**;三改动 = 台词前置/破折号拍点/动词升级。⭐ **宽约束**(严约束改动率仅 1% / 宽 46%)。 - ⭐ **v3 问法增厚**:`std` 保留骨架补画面、`sim` 条数严格相等、`neg` 保持负例属性。**绝对边界 = 搬运原文已有信息**(每个信息点须能在该卡 6 个可润色字段 + 事件标签找到出处)。 - 🔴 **暂存批 v3 链路**:`build-pending ` → 喂 `PROMPT_polish_v3.md` + 载荷 → 存 `out/polish_result/pending_00NN.json` → `apply-pending `;**`apply-pending` 必须同一次执行内跑完**(曾漏跑,续跑须先补,批次 48 实测)。 - 其他:`validate()` 返 5 元组 `(ok,reasons,cleaned,q,autofix)`,std 前缀不符走 autofix(剥离、不退回);`fiction_check` 弯/直引号须归一化,只告警不拦截;工具 `11_diff_report`/`12_attractiveness`/`14_form_audit`/`15_sensory_recall`/`16-18*_question_*`。 ### 4.3 技能侧 WeKnora 调用(权威源 = 技能 `references/接口调用/WeKnora_极致事件检索.md`) - 🔴 **素材召回触发率 ≈ 0(端到端实测 ×2 路径)**;**用户口径(优先)**:架构 = 「**流程不主动召回素材,知识库按需被取**」= 设计意图,**不改**。`hybrid_search` 0 次 ≠ bug。判据仅两条:① 模型**真能写出桥段** → 跳过 = ✅;② **写不出却仍不检索** = ❌。 - ⭐ **素材库两个作用位**:① 给事件「填空」(S7 写不出桥段时取机制样本)② 给台词「润色」(S9 取原话/微反应/意外)。**同一链上下游**:S7 触发≈0 → S9 `{material_cards}` 恒空 → ② 退化;**∴ ② 失效是 ① 的直接后果**(修①即自动恢复)。文件位:`7_生成短视频大纲.md` §极致触点素材检索;`9_生成短视频脚本.md` L12 + L101-113。 - **结论**:不动架构;解「按需判据太软」→ 推荐 **C1 换外部可验证判据**("通用 vs 专属"可验证)。⛔ 作废「删跳过条款 → 默认必检」。 - ✅ **确定有效**:参数纠正(`match_count` 省 69% 上下文;`vector_threshold` 必显式传)。⚠️ **收益有限**:问法改写(反查法 R@1 34/35→35/35,**差异在噪声内**;⛔ 禁宣称"召回率 97%→100%")。🔴 **真实瓶颈 = 素材覆盖**(3/5 真实节点零命中)。 - 🔬 **验证方法论铁律**:测检索优化 → ⛔ 禁用「凭空需求」法;✅ 必用**「反查法」**。⚠️ 信息保真审计口径 = **角色台词零丢失 + 数字零丢失 + 可拍动作/物品全在**。 - 杂项:会话记录 `D:/.workbuddy/projects//.jsonl`;工具 `20_trace_recall.py`;工作台「提交创作」两段式(`#reqCreate` 弹确认,真提交在 `button[data-ok]`)。 ## 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-workshop/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 检索层建成 + 留人点三级体系定稿|09-23~24 卡片流水线化|09-28 定向补采自动化 + 卡片回炉(v2/v3)+ 补采切暂存模式 + 检索参数名纠正。 - 09-29 AI 通路改 `cli`(本地 CodeBuddy CLI)→ 端到端跑通(status/probe/clarify/run),模型 `deepseek-v4.1-flash`;权威文档 `docs/AI链路-本地CLI接入.md`。