Files
mcn-short-video/.workbuddy/memory/2026-09-07.md
T

104 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-09-07 工作日志
## 对话式选题完善 · ==OPTS== 候选 chips 改造(09-07 下午)
- 背景:账号列表「AI创作」弹窗(原创选题创作)借鉴 flova 会话记录改造——AI 追问时给可点选候选而非纯文本
- 术语定稿(用户逐轮确认):内容形式 A=剧情(场次叙事)/B=Vlog纪实·人物采访/C=口播/D=**视觉短片**(←D·视觉脚本,适用 F04 测评种草/F07 纯视觉短片);叙事结构候选=钩子前置/悬念反转/递进铺垫/先抑后扬;选项须源自 SKILL `1_意图识别.md` 五维度 + `2_需求完善.md` 共创确认门,禁临时设计
- 改动文件:`mcn-work-shop/server.js`(/api/ai/clarify prompt 重构:==OPTS== 段+受控词表+剧情演绎人物关系分支追问)、`public/data-pages.js`(sendTurn 解析 ==OPTS==;renderDialog AI 消息渲染 .req-opt-chip,点击=以候选文本调 sendTurn 并即时收起)、`public/style.css`(.req-opt-chip 样式)
- 协议格式:reply 正文 → ==OPTS==(每行一个候选≤30字,无前缀)→ ==REQ==(5 行需求清单);前端 lastIndexOf 依次切分,chips 上限 6
- 验证:接口 curl 直测通过(4 候选+REQ 正确);CDP 9334 端到端(账号 做夢 → AI创作弹窗 → 输入"想拍亲子搞笑短剧" → 4 chips 渲染:钩子前置/悬念反转/递进铺垫/先抑后扬 → 点击后 mine 消息+1、chips 收起 0、filled 2/5)✅
- 服务已重启(PID 19920,8900)
- 工具:临时 E2E 脚本 `Temp/cdp-verify-opts.mjs`(新标签复用 9334;可复用于后续 OPTS 回归)
- 用户场景案例文档:`mcn-work-shop/docs/对话式选题完善_用户场景案例.md`(5 场景:主流程/视觉短片分支/人物关系分支追问/快速收尾/附件起步,各含验收清单;场景1 实测,2~5 设计预期待走查)
- ★v26 弹窗四项体验修复(用户 4 连反馈,commit 89b453e):①选项必须有引导且模型须出 ==OPTS==(原来看不到可点项)②收尾门槛:创意/爆点/爽点/叙事结构 至少 3 项明确才可提示提交(原来 2 轮就催提交)③追问问题单独另起一段(前后空行),禁止与解释挤一行 ④点遮罩外不再自动关闭(防误触丢对话);草稿缓存 localStorage `aicreate_draft_{账号}`(w/convo/attach,每次回复后存、X 关时存、提交后删、重置删);标题栏新增「重置」按钮(confirm 后清空);重开自动恢复草稿
- ★flova 式选项交互定稿(用户嫌"粗糙"):候选必须**结合本条创意/人设具体展开**(格式「骨架词——落到这条视频怎么拍/什么内容」,≤45 字),禁止干巴巴术语(如"钩子前置"→"反差人设——做饭是王者带娃变青铜被娃折磨");样式=气泡下方内嵌按钮行(req-opt-row/req-opt-chip 圆角白底,无提示语、无虚线框),AI 消息改 column 布局;实测 3/3 候选含具体展开
- ★沉淀决策(用户问"新 skill 还是并入技能"→ 定 **B 方案:不建新 skill**):需求打磨属创作流程中间段、方法论已在 references 1_意图识别/2_需求完善,且弹窗调 Dify 不加载 skill 会话 → 作为「短视频工作台」功能模块**文件化沉淀**(commit 含 clarify.md):
- 新文件 `mcn-work-shop/prompts/clarify.md`:==PROMPT== 与 ==CHANGELOG== 标记之间为 prompt 正文(头尾说明/变更记录不发模型);**改 prompt 只改此文件**
- server.js:`loadPrompt(name)` 读模板(按 mtime 缓存;行首独立标记定位防头部说明同名字样误切),/api/ai/clarify 改为占位符注入({{accountName}}/{{personaText}}/{{contentText}}/{{attachText}}/{{reqMdText}}/{{histText}}/{{turnText}}),删硬编码字符串
- `docs/AI会话任务输入输出对照.md` 增补「### 9 需求打磨 clarify」小节(三段协议表+模板文件位置+受控词表/收尾门槛/草稿缓存规则)
- 接口实测通过:==OPTS== 4 候选均结合人设具体展开、==REQ== 正常回填
## 2026-09-07 俊希 AI 创作(参考 08-15 爸王餐选题)
- 任务:用户要求更新俊希账号视频数据 + 参考最新视频选题生成 AI 脚本
- 路径选择:用户确认不重抓浏览器(避免 9223 Chrome 抖音扫码登录),用工作台 mcn-plugin.db 已有 136 条俊希视频(最后抓于 2026-08-31)+ 6 条已解析视频
- 最新已解析选题:08-15 爸王餐(aweme_id=7673890077457566991,# 选题 段完整)
- 提交:POST /api/run,name=俊希-AI创作-参考爸王餐选题-20260907,skills=['短视频工作台'],prompt=SKILL_HINT_CREATE + 人设卡全文(剔 ##十一之后)+ 选题块
## 浏览器/抓取相关异常
- 9222(用户 Chrome)远程调试授权点了两次 Allow 均未生效,json/version 持续 404
- 9223 专用调试 Chrome 用 run_in_background 启动成功(PID 29448,专用 user-data-dir = C:/Users/maidou/AppData/Local/bh-chrome-9223),CDP 端点立即可用
- 9223 Chrome 打开抖音搜索 JJX0827 触发未登录墙("登录后即可搜索更多精彩视频"),需扫码才能继续
- 9222/9223 都不可用后放弃重抓,走工作台库内数据
## 脚本/工具修复
- browser-harness envs 安装路径已迁移到 mcn-short-video,旧 .pth 仍指向 mcn-video-script,import 失败 → 用 PYTHONPATH=src 绕过
- browser-harness exe launcher 在本沙箱无输出但 exit 0;改用 venv python -m browser_harness.run 方式可正常输出
- 9223 Chrome 在 bash 后台启动会被沙箱回收,用 Bash run_in_background=true 保持进程存活
- 9223 Chrome 抓取不可用(抖音登录墙)后,改为直连 CDP WebSocket(参考 cdp-test-junxi.mjs 模式)
- 脚本05 审片质询:马桶盖藏钱桥段是否契合人设 → 溯源确认=参考视频「爸王餐」(08-15, 7.8万赞) 真实开场钩子,选题段原文即"马桶盖里50块私房钱",AI 为忠实执行选题;骨架"爸爸私房钱→俊希做饭宠妈"符合账号基因(MCP 内容库:给钱赋予故事,爸爸私房钱爆量概率最大)。用户确认:原视频同款开场则没问题,**保留现状不改**。
## 浏览器自动化环境排查(flova.tv 分析任务,上午)
- 目标:用 agent-browser 分析 flova.tv 短剧创作界面交互布局+右侧历史对话记录
- **环境链路**:agent-browser CLI(全局,managed node)→ 需 Chrome。系统 Chrome 被用户主会话占用无法独立控制(输出"正在现有的浏览器会话中打开"→黑屏/超时);googleapis 直连/沙箱代理(4256)均不通 → 必须 socks5://127.0.0.1:10800 手动 curl 下载 Chrome for Testing(202MB 完整=202762305B,首轮 122MB 被中断=zip 损坏 BadZipFile);Git Bash tar 不支持 zip、PowerShell Expand-Archive 进度条挂起+Add-Type 被安全策略拦 → **Python zipfile 解压**
- **★端口双实例争抢=页面反复"崩溃"根因**:9223 上两个 chrome 同时监听(127.0.0.1=29448 我的 + [::1]=32576 残留) → CDP 混乱、标签反复重置 about:blank。教训:**任何调试实例启动/连接前先跑 `bash D:/AgentSkill/mcn-short-video/tools/port-precheck.sh <port>` 预检**(监听者 PID/进程名/CDP 响应/页面列表)
- flova 反爬特征:navigator.webdriver=true(headless/automation)→ 页面加载后 20-40s 被脚本清空 body 或**主动关闭标签**(程序化 click 触发风控关闭标签);手动真实登录可绕开
- 稳定方案:系统 Chrome + 独立 user-data-dir + 唯一调试端口(9333) + agent-browser connect <port> 后 eval 单标签导航;**agent-browser eval 固定跑在首个标签(about:blank),open 会开新标签** → 用 eval "location.href=..." 导航目标页
- Chrome for Testing 152 渲染 flova 不稳定(崩),系统 Chrome 152.0.7977.77 稳定
- 状态:页面稳定可读、登录窗口已交给用户手动登录,待用户确认后继续分析 project 页
## flova 项目页分析完成(11:20)
- 登录态经用户手动登录取得(bh-chrome-9334 独立 profile,端口 9334);弹窗处理:引导教程层(DIV.fixed z-[var(--z-max)] 含"知道了/下一步"按钮)用 dispatchEvent click 关闭;顶部 notice-board banner 为页面正常元素非弹窗
- **★重要教训:当前模型不支持看图(Read 图片返回 filtered),一切界面分析必须走 DOM 文本/结构(cdp-exec.mjs),不得依赖截图描述**
- 产出:`D:/AgentSkill/mcn-short-video/flova短剧创作界面分析_20260907.md`(布局=左创作面板 794px/63% + 右对话区 420px/33%;7 轮共创对话全文结构;交互借鉴点)
- 工具脚本(temp,可复用):cdp-exec.mjs(对指定端口任意 target 执行 JS/截图)、flova-inspect.mjs(overlays/close/esc/layout/text 子命令)、cdp-click.mjs(坐标点击);端口预检 `tools/port-precheck.sh`(已修复 netstat 匹配 bug,监听者按 ":" split 取末段)
- 对话记录要点:《海河镇蛟录》60秒中文 3D国漫玄幻;AI 一次只锁一个参数渐进引导;Skill 载入状态行可视化;AI 回复末尾给点选选项;用户主动提质量缺口(缺钩子/反派)→ AI 重构
- 追加验证(11:25):窗口最大化 2560px 后对话区限宽 631px(创作区优先吃宽 74%,对话区 min-w 420);消息列表**非虚拟滚动**(sh=3039/ch=982,30 块常驻 DOM),一次 innerText 抓全 7 轮无遗漏;报告已更新响应式布局数据+完整性声明
## AI创作需求弹窗 v28:八维编导名升级 + 空态极简(下午)
- 用户定稿:需求框 5→8 维且全部改编导名——一句话故事/开场钩子/故事爆点/故事爽点/内容形式/叙事结构/人物关系/特别要求(key: idea/hook/blow/pain/ftype/form/cast/note);**内容形式与叙事结构拆两行独立**(用户明确"是两个");新增 hook(承接 S5 开场钩子 3-7s 铁律,追问词表=悬念提问/反差画面/直击痛点/身份共鸣/利益承诺)与 cast(剧情向)
- clarify.md 收尾门槛 4取3 → **核心 6 项取 4**(idea/hook/blow/pain/ftype/form);内容形式=剧情时人物关系也须明确才提示提交;==REQ== 模板 5 行 → 8 行;候选映射改为落独立行(视觉短片→内容形式行等);CHANGELOG append v28
- 空态引导文案由长说明 → 极简一句「像聊天一样说出想法,AI 帮你把这条视频的需求聊到可开拍」(用户候选3;按键提示由 placeholder 承担)
- 联动:data-pages.js REQ_FIELDS/REQ_FIELD_HINTS(字段 title 悬停解释)/w 默认 keys(旧草稿缺新字段自动为空兼容);clarify.md;docs 两份(输入输出对照 + 场景案例,场景1 增开场钩子追问演示、场景2/3 映射改为内容形式行/人物关系行);验证脚本 tmp/cdp-verify-v28-{dims,md,empty}.mjs 全 PASS(渲染8字段/0-8计数/提示齐全/md往返解析8-8/空态文案);8900 服务本次由我后台拉起(task KjakBr),9334 CDP 复用已有标签
## AI创作弹窗 v29:内容形式置首 + Vlog 去人物采访 + 叙事结构→故事框架(下午)
- 用户两改:①内容形式(ftype)放 8 维首位(最先确认维度),Vlog 项去掉「人物采访」("Vlog 就是 Vlog");②叙事结构 → 故事框架(key form 不变,草稿兼容)
- 新字段序:内容形式/一句话故事/开场钩子/故事爆点/故事爽点/故事框架/人物关系/特别要求;==REQ== 模板、收尾门槛(核心6取4)、候选规则、悬停提示同步;clarify.md CHANGELOG、docs 两份(对照表 + 场景案例 1/2/4 话术)联动改完
- 验证:node --check ✅;模板 8 行顺序/旧词零残留/6取4 ✅;CDP 渲染 8 字段顺序精确匹配 ✅;md 往返 8/8 ✅
## 技能×工作台术语统一(09-07 下午,用户授权"不考虑 dsh")
- **P0 视觉脚本→视觉短片(技能层 20 处/5 文件全量)**:SKILL.md S9 格式列举、6_框架 映射表(F04/F07)、9_脚本 6 处、创作流程规范 3 处、03_框架节奏/07_格式指南 8 处;F07「纯视觉短片」叙事形态名保留,仅格式名 D·视觉脚本→D·视觉短片
- **P2a 预设钩子→开场钩子(用户选 B 全量改名,10 处/3 文件)**:5_选题(字段表5+引用1)、7_大纲(3)、04_爆款开场/00_口径说明(1);技能内三词统一为「开场钩子」
- **P1a/P1b 需求侧注明(用户选轻案)**:clarify.md 新增行为要求第 7 条「维度口径衔接」——内容形式 4 项粗选、落创作 S6 细化(口播→教程/知识分享/盘点;视觉短片→测评种草/沉浸式);故事框架四词=达人倾向词由 S6(叙事形态F01-F08+结构模板)定型;开场钩子=S5 同口径(10 开场方式+3-7s 铁律);CHANGELOG v30
- SKILL.md frontmatter updated_at/last_change 更新、references-add/变更日志.md 插入 09-07 条目;references 无 frontmatter 免改
- 校验:技能层视觉脚本/预设钩子仅剩变更摘要行(豁免);S5/S7/S9/S6/规范通顺;clarify v30 模板 PASS;工作台 docs 零残留
- 后续决策点:S3「前3秒钩子」(拆解维)与 S1/S2 五板块容器层保持不动(不同语境)
## 开场钩子分层表述源头化(09-07 傍晚,commit a25c936)
- 复盘我误判根因(文档层 R1 钩子类型双指/R2 五选一无身份声明/R3 引用链靠后/R4 同族术语无词表;方法层 M1 枚举对比未先验层级/M2 单行片段脱离段落)
- 用户纠正层级:开场方式(04_库 10 种)=内容策略,承接账号结构性符号/用户要求/对标(S3),S5 选题选定;S6 场1「本场钩子」五选一=留人机制=实现层(把开场方式做成镜头台词)
- 按用户偏好"源头正文整体改,不搞 =来=去/括号对照"落地 3 文件:5_选题(表头钩子类型→开场方式、字段行单一化×5、4.3 补来源承接)、6_框架(8列定义行正文化=五类机制+场1实现分工)、04_/00_(新增「开场方式与创作流程的关系」定位段);clarify v30 开场钩子措辞同步纠正
- 校验:S5 钩子类型零残留、字段行 5 处、S6/04_ 落位;已 commit
- B 项(S1↔S2 维度错位:人设/账号设定、台词风格/大纲)仍未处理,待用户决定
- 09-07 收尾核验:三个提交全部落库(f7cd6ff 术语统一+clarify v30 / a25c936 钩子分层源头化 / b2fac69 规则沉淀=概念分层规范+审查清单#11#12);git status 干净,仅剩预期未跟踪(memory/flova/tools)
- 清理 V1.0 根两个 0 字节误建文件(「背景(2026-09-07」「适用:技能树全部描述文件(创作流程」,15:26 写规范文件时误生成);REQ_FIELDS 8维 v29 终序(内容形式首位/故事框架/Vlog 无人物采访)+ clarify v28-30 CHANGELOG 已核实一致
- B 项 S1↔S2 维度集错位已落地(commit e547790,11 文件):①顶层五维度→五板块归一=账号设定/选题/框架/大纲(草稿容器不补全)/广告Brief(S1 人设信息行→账号设定、选题信息/框架信息后缀去除)②台词风格降层并入账号设定·说话风格(S1 判定表删行;S2 补全策略 D 并入 A 含说话风格子层,E→D)③语音层词族全链路统一「说话风格」(S3/S7/S8/S9/S11/参考选项≈14 处;语言风格仅留 S4 卡模板内部作⑤说话风格子成分形容词层)④S7 输入补 S2 大纲容器承接声明 ⑤SKILL/创作流程规范/变更日志同步 ⑥修复变更日志旧条目 bash 反引号吞名(概念分层规范/审查清单名被置空)⑦落盘表钩子预设→开场钩子漏网。词层:需求层=板块/子项;卡内=达人设定维度①-⑨
- 遗留待裁:S1 产物 01_需求拆分/02_需求拆解 文件名同音近义;创作流程规范落盘表 04 行说明列「账号设定+人设卡片」疑为「账号设定+达人设定」;参考选项达人维度④语态 vs S4 ⑤说话风格编号错位(未动,S4 卡模板权威)
- 09-07 全流程核对(commit 0458330):11 步+S3 结构逐文件通读,链内零残留/无功能破坏;发现并修 SKILL.md 步骤2 目的句「缺失维度」漏网→缺失板块;判定保留的旧词(非术语枚举):S5 引言行/S6 模板/工作台 docs「选题信息/参考框架信息」=自然语言;08_对话风格「人设信息」=方法论公式词;mcn-video-prompt「台词风格」=独立子技能成品台词属性层;subskills/mcn-dou-analysis 知识库副本 L100 仍「台词风格设计用」(主技能已改,子技能独立维护链是否同步待用户定)
- 09-07 决策落地(commit 91f16b9,已 push 3835327..91f16b9):A1 Lite1.0 同步不自动处理(用户手动);A2 dsh 技能副本项目不存在→MEMORY.md 同步策略更新(只改 V1.0 源,dsh 废弃)+ 今日日志;B② 落盘表 04 行说明列→账号设定+达人设定;B③ 人设设计参考选项.md 全文去旧 9 维编号(达人维度③④⑥⑧/账号维度②)改指 S4 现行字段(S4=达人设定 6 章节:1身份2性格3外在特质4价值观与底线5说话风格6行为决策 + 账号定位 6 字段),dou-analysis 副本同步 1 行;D2 失误记录 #015(bash 反引号吞名/Edit 吞换行/0字节误建+4 条铁律)
- ★新发现待用户定:S5 约束提取 4 行仍引旧账号设定编号(维度①赛道/受众/差异化、维度②核心价值类型)——S4 账号定位 6 字段无「核心价值类型」字段(旧模板有),S5↔S4 字段漂移,需定 S4 是否补核心价值字段 or S5 改引用(未改)
- 09-07 账号定位补核心价值类型(commit a69f930,已 push):用户选方案1——S4 账号定位 6→7 字段(赛道后插「核心价值类型:知识/情感/实用/娱乐/观点 选1,参考参考选项·主导价值」,S5 选题锚点 core_value_type 落位);S5 约束提取去旧维度①②编号改指现行字段+老卡兜底推导;参考选项五标注→账号定位·核心价值类型;SKILL.md 步骤4 描述+frontmatter。S4 结构终态:账号设定=账号定位 7 字段+内容怎么做 5 章节;达人设定 6 章节(①身份②性格③外在特质④价值观与底线⑤说话风格⑥行为决策)
- 脚本05 复盘评分(16:29 完成,automation-1788769249508):独立分析·10维,script_review id=13。封顶总分 60.0 需优化(计算 79.4 可交付)。🔴高 1 处=暑假 vs 场8「接放学」时间线硬伤(S11 漏检),一句台词修复即达交付线。🟡中 3(文头500s vs 场次520s 时间轴矛盾/采购48%超配三摊砍价同构/「治好」食品擦边)+🟢低 5。亮点:设定承接93/台词口语化92/极致事件90/创意看点88。落盘 脚本05_复盘报告_20260907.md。
## S1/S2 产物文件名改名:01_需求理解 / 02_需求补全(09-07 下午)
- 决策链:用户先反问"两个文件是想合并后一并处理吗"→ 澄清不合并(两文件独立,改名仅重命名)→ 用户定"应该修改名称 如何修改更符合流程定义" → 推荐产物语义名(与 03-11 命名体系一致、编号已承担步骤职责、避免与步骤文件 1_/2_ 撞名)→ 用户最终拍板 **01_需求理解 / 02_需求补全**
- 语义:01_需求理解=S1 意图识别产物(五板块状态表);02_需求补全=S2 需求完善产物(归类+AI 补全)
- 影响面(V1.0 内 9 处):创作流程规范 L49/L68/L78/L426-427/L452;1_意图识别 L83 引导语(旧步骤名"需求拆分任务规划"残留→"完成需求理解与信息完整度判定");11_脚本检查和诊断 L241-243。产物文件运行时生成无需 mv
- 失误 #016:同文件多处 Edit 并行提交写竞态丢改(L49/L68/L427 残留),串行补做+全量 grep 验证零残留;铁律=同文件改串行禁并行、报成功≠已生效须 grep 验证
- 变更日志+SKILL.md last_change+失误记录已同步;git 待提交