Files
contentm_agent/.workbuddy/memory/2026-10-11.md
T

194 lines
39 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-10-11 工作日志
## 04:03 · 换目标:根据 Easel 分析梳理热点与选题的逻辑关系 + 出产品框图与功能流程图
- **用户令(逐字)**:「完成目标:根据Easel分析梳理热点和选题板块功能的逻辑关系,并画出产品框图和功能流程图」。
- ✅ **上一目标已收口**:`20a8ac`「侧栏改回64px基准形态并刷新按钮改icon」在 **10-10 23:41:15** 被判「已完成」——三条判据全 `过` 且依据都挂现跑证据(`--nav-w:64px` + `.nav-item` 竖排;七页各 1 枚 `.btn-icon` 挂标题行右侧;`2b` §四与 `DESIGN.md` V5 同步)。落地会话=执行棒 `521ae77f`(23:12:28 起、23:30:53 收工)+ 检查棒 `a6515a81`(23:36:23 起、23:42:50 收工)。
- ✅ **换目标三件套全做**:
- `goalctl.py declare --title "<用户原话>" --kpi "<三条>" --switch-goal --yes` ⇒ 旧目标整份归档 `goals/侧栏改回64px基准形态并刷新按钮改icon__20261011-0403.json`(2 314 B),备份 `.workbuddy/collab/bak-goalctl-20261011/goal.json`;`lifecycle` 自动复位 `已完成 → 进行中`(04:03:42)。三条判据=逻辑关系成文档/产品框图落盘/功能流程图落盘(均 `未过`)。
- **目录按机制口径算准**(`goal_dir_name()`:`title[:20]` 去空格 + `sha1(title)[:6]`):标题 39 字 ⇒ 前缀截到 `…板块功能`,hash `0a758b` ⇒ `执行会话/目标-根据Easel分析梳理热点和选题板块功能-0a758b/`。
- 队列换新:旧 `NEXT.md` → `NEXT-旧目标-侧栏64px与刷新按钮-已归档20261011-0403.md`;新 `NEXT.md` 写明落点、输入、三样交付、画图工具与 ⛔ 不许动清单。
- ✅ **目录与指针**:跑 `collabd.py --ensure-goal-dir`(幂等)⇒ 建目录 + 落状态文档骨架(420 B)+ **自动把 `execution_doc` 从旧目录对齐到 `执行会话/目标-根据Easel分析梳理热点和选题板块功能-0a758b/目标执行状态.md`**(回读确认)。⚠️ 该命令顺带**把本会话登记为主会话 `184c4986`**(它的自带行为、且登记的是本会话,正确)。
- ✅ **已派执行棒**:`[执行]-[产品规划]-梳理热点与选题逻辑并出框图流程图`,id `2d15c315-cbe1-4c59-9b0f-0f3beef86a67`,`once` **04:09**(⛔ 已按教训设在创建时刻 04:05 之后)。
- 📌 **本目标的两份输入**(都是只读起点,⛔ 不许改):①素材主源=`执行会话/目标-逆向Easel热点雷达与选题链路补齐现版-547748/第1棒_逆向Easel热点雷达与选题链路_2026-10-10.md`(15 456 B,结构=一·完整链路/二·与现版 P2 逐项对照/三·落地方案)+ 同目录 `取证/` 12 份原件;②现版对照=`执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/` 的 `2a`/`2b`。
- 📌 **画图点名用 `diagram-design`**(`skills/product-planning/references/stage-requirements/assets/diagram-design/SKILL.md`)⇒ 派活单里写死「先读它的 SKILL.md 再画,⛔ 别手搓 SVG、⛔ 别另起一套画法」,并要求图**能直接打开看**(HTML/SVG),⛔ 不许只交「图的描述文字」。
- ⛔ **本轮红线**(写进派活单与队列):不许改现版原型 `ui/mcn-workbench.html` 与 `2a`/`2b`;页面 7/导航名序/板块 39/流转 20 条/对象 11 个一律保持;用户 2026-10-10 逐字「没让改的 交互不允许乱改」。
## 04:09–04:20 · 执行棒交工:三样产出全部落盘(会话 `3cadf11b`)
- ✅ **域锁**:`--claim-exec "[执行]-[产品规划]-热点与选题逻辑关系梳理与出图" --domains "…/contentm_agent/执行会话"` ⇒ 抢到;收工 `--release-exec` 已释放(按 `OWNER` 里 `ME` 的**原文**释放,⛔ 不带派活前缀),复核 `.locks/` 下**零残留**(避开了孤儿锁那个老坑)。
- ✅ **三样产出**(落 `执行会话/目标-根据Easel分析梳理热点和选题板块功能-0a758b/`):
1. `逻辑关系-热点与选题-2026-10-11.md`(12 KB)——四问各一节(谁产出什么/什么触发什么/数据怎么流/边界在哪)+ 7 处断点登记。
2. `产品框图-热点与选题-2026-10-11.html`(15 KB,architecture 图型)。
3. `功能流程图-热点到选题-2026-10-11.html`(13 KB,flowchart 图型)。
另存两张**渲染截图**(`预览-*.png`)作可达性证据。
- 🔴 **本棒最有用的一个结论(口径层,值得记住)**:**现版没有叫「热点」的板块**。P2 只有 4 块(对标监控概览/对标内容/评论区洞察/选题库)⇒「热点」在本文件里被定义为**信号来源(发现侧)**,落地在三块 + 选题库里「数据异动」这个类型;「选题」=选题库那一块(F2)。两块同在 P2 是用户 2026-10-09 定的归属判据(「找选题和做选题就应该在一起」)。⛔ 全程未给板块改名、未新增板块。
- 🔴 **第二个结论**:Easel 的判断层是**七维打分**(判「做不做」);现版的判断层是**选题库的「类型」维度**(判「下一步去哪」)。两者不是一回事 —— 拿 Easel 对照时别把打分体系当成缺口的补法。
- ⚠️ **画图踩法**:图型选 `architecture`(产品框图,3 个 zone 分区)与 `flowchart`(功能流程图,2 个判断菱形 + 1 条虚线回环);出图后必须跑 `diagram-design/scripts/self_check.py <file>`(两份都 `OK`);渲染校验走 browser-harness 的 `capture_screenshot`,**同一个标签页 `goto_url` 复用**(用完 `close_tab`,`list_tabs()` 复核归零)。
- ⚠️ **浏览器起法**(照 `browser-harness/SKILL.md` §1 整段):先 `netstat` 探 9223 ⇒ 未在跑 ⇒ **本会话后台任务**跑 `bh_chrome_keepalive.py`;用完把后台任务停掉(pending 后台任务会**静默压制 idle 钩子**)。实测:关掉最后一个标签页 ⇒ Chrome 自行退出(rc=0)⇒ 守卫按新语义停手,9223 释放。
- ⚠️ **本机易忘**:`--report` 只吃**一个** `--artifact`(源码里 `_argv_val` 取**首次出现**)⇒ 多产物时把「能给检查会话当入口」的那份(此处=逻辑关系文档,文末列全三条路径)登记进去。
- ✅ **上报**:`--report 3cadf11b… --state done --artifact "执行会话/目标-根据Easel分析梳理热点和选题板块功能-0a758b/逻辑关系-热点与选题-2026-10-11.md"` ⇒ `OK 已上报 (新) -> done`,落点软判据无告警(在目标目录内)。
- 📌 **留给检查棒的两处**:① 三条判据是「成文档/框图落盘/流程图落盘」,本棒已给出对应产物,但 `目标执行状态.md` 仍是 **420 B 空骨架** —— 按合同那是**检查会话**的活(执行棒不写它);② 7 处断点**只在文档里登记**,⛔ 本轮一条都没动手(改②段属扩范围)。
## 04:2x · [检查]-[目标检查]-第47棒(`457e4a22`)· 目标 0a758b 收口
- **结论:目标已完成**,`lifecycle` 已 `进行中 → 已完成`(`life_by` 记本棒名,04:25:01),常驻随之优雅退出(设计行为)。
- 三路判据:台账 25 条**全 done**(本目标 1 条 `done`,产物=逻辑关系文档);`taskgraph.json` 在本区**不存在**(未启用,本轮按台账+判据两路);验收三条由**实测**补齐。
- 🔴 `目标执行状态.md` 在执行棒走后仍是 **420 B 空骨架** ⇒ 本棒按文档合同**补写**(判据三节 + 结论 + 旧判据作废清单),再 `goalctl.py declare --kpi "…" --yes` 回写,并**回读确认**。同型第三次(`fa6e07`/`20a8ac`)。
- 判据取值规范写法 `过|依据`;`--kpi` 按**分号**切 ⇒ 依据里⛔ 全角 `;`(已规避,用 `、` 与半角逗号)。
- 实测取证:逻辑关系 md 12 250 B;产品框图 html 15 471 B(SVG `0 0 1040 580`,91 图元);功能流程图 html 13 382 B(SVG `0 0 1000 800`,66 图元);两张预览 png 分别 107 455 / 111 387 B。三个产物全在目标目录内。
- ⛔ 本轮未派新棒、未改 `2a`/`2b`/原型。
- 遗留(⛔ 不阻塞):7 处断点属「补内容」不属「改结构」,其中倍数阈值/分类阈值两条零数据源即可落地,改②段前需用户点头。
## 10:19 · 主会话核实「目标完成了吗」⇒ 已完成,并核过红线
- ✅ **判定:已完成**。`goal.json` `lifecycle = 已完成`(04:25:01),三条判据全 `过` 且依据挂实测值(逻辑关系 md 12 250 B/产品框图 html 15 471 B/功能流程图 html 13 382 B)。
- ✅ **会话轨迹**:执行棒 `3cadf11b`(04:09:04 起、04:17:47 收工)→ 检查棒 `457e4a22`(04:21:47 起、04:27:11 收工)⇒ 又是一次「执行棒交产物 + 检查棒补文档回写判据」的完整闭环(第四次同型)。
- ✅ **六份产物全在目标目录**:`逻辑关系-热点与选题-2026-10-11.md`(12 250 B)|`产品框图-热点与选题-2026-10-11.html`(15 471 B,SVG `0 0 1040 580`/91 图元)|`功能流程图-热点到选题-2026-10-11.html`(13 382 B,SVG `0 0 1000 800`/66 图元)|两张预览 png(107 455/111 387 B)|`目标执行状态.md`(2 808 B,检查棒补写)。
- ✅ **红线核查(我独立核的,不采信自我报告)**:现版原型 `fa6e07/ui/mcn-workbench.html` = **149 047 B/Oct 10 08:14**、`2a`=08:07、`2b`=08:11 ⇒ **时间戳全部还是 10-10,一个字没动**。检查棒 §三 也独立写了「执行棒零改动」。
- ✅ **文档实质内容**(读完第二、三、四节):四问各一节(谁产出什么/什么触发什么/数据怎么流/边界在哪);**7 处断点**按「断在哪块 + 缺哪一层」重列;**4 条结论**里最值钱的两条 —— ①现版「热点」与「选题」不是并列板块,是**一条链的两端**(热点侧三块+一类型、选题侧一块);②**枢纽是「类型」这个维度**(Easel 七维打分判「做不做」,现版按类型派活判「下一步去哪」,两者不是一回事)。文档还标了现版比 Easel 强的一处(去重:Easel 的「已收藏」只活在前端内存,现版 F2 已写内容 hash 去重)⇒ 提醒别照抄回去。
- 📌 7 处断点里第 2、3 序(倍数阈值 `mult`/分类阈值 `zone`)**零数据源即可落地**,但属**改②段** ⇒ 扩范围,改前要用户点头(⛔ 本轮只登记)。
## 16:40 · 用户打回上一轮成果并追加「问 GPT」⇒ 换目标重做
- 🔴 **用户批评(逐字)**:「画出图就发现问题了。热点与选题产品框图对应 整合营销平台的选题板块。框图中没有细节,热点从哪里来,根据什么分类,怎么体现热度,如何展示这些细节都没有,做出来的产品也是一个架子没有细节」。
- 🔴 **用户追加(逐字)**:「不光是我说的这些 带着问题问问 gpt在做判断」。
- ✅ **我核了批评是否成立(不辩护、先坐实)**:提取上一轮框图与流程图的全部文字节点 —— 框图 38 个、流程图 26 个,**清一色是板块名与功能编号**(P1/P2/选题库/对标内容/`F1 · 四个数` 这类),**没有任何**数据来源、分类维度、热度算法、展示形态 ⇒ **批评完全成立**。
- 🔴 **根因(我这边的问题)**:上一轮判据只写到「有文档/有图」这一层 ⇒ 交出来的自然是一张占位图。⇒ **教训:判据必须落到「照着能做出来」的粒度**,否则执行棒按判据最低标准交付。
- ✅ **换目标三件套**:`declare --title "征询GPT对选题板块细节的建议并重画框图流程图" --kpi "<三条>" --switch-goal --yes` ⇒ 旧目标(`0a758b`)归档 `goals/根据Easel分析梳理热点和选题板块功能的逻辑关系,并画出产品框图和功能流程图__20261011-1641.json`(2 115 B);`lifecycle` 复位「进行中」。新目录=机制口径 `执行会话/目标-征询GPT对选题板块细节的建议并重画框图-8a649c/`(title 23 字,`[:20]` 截到 `…并重画框图`),`--ensure-goal-dir` 已建目录 + 自动对齐 `execution_doc`。
- ✅ **队列换新**:旧 `NEXT.md` → `NEXT-旧目标-梳理热点与选题逻辑-已归档20261011-1641.md`;新队列写清**三步顺序**(①问 GPT → ②补细节成文档 → ③重画图)。
- ✅ **已派执行棒**:`[执行]-[产品规划]-征询GPT并补全选题板块细节重画框图`,id `800d9096-6a0a-415a-bb1d-336eb123de6e`,`once` **16:50**(设在创建时刻之后)。
- 📌 **派活单里替它找好了原料**(省得又交空架子):`547748/取证/` 里就有现成答案 ——
- `skills__shared__hotlist-apis.md`:**10 个免费无密钥中文热榜 API**(60s v2 主源 + xxapi 备选),返回 `{title, hot, url}`,含降级链(60s → xxapi → 间接)与 5-10 分钟刷新率 ⇒ 「热点从哪来」有解。
- `skills__shared__scoring-dimensions.md`:**七维评分**(流量潜力 25%/账号匹配 20%/竞争差异化 15%/变现潜力 15%/时效价值 10%/制作成本 8%/合规风险 7%),每维 1-10、两个反向维度、综合分满分 100、阈值 ≥70 做/50-69 改方向/<50 不做,另附 8 类敏感赛道 ⇒ 「热度/判断怎么体现」有解。
- `TrendsPage.tsx`(4 536 B)/`IdeasPage.tsx`(6 749 B)= Easel 真实界面组件与字段 ⇒ 「怎么展示」有解。
- 分类口径多半在 `skill-trending-topics`/`skill-trend-rider`/`skill-ugc-discovery`/`skill-topic-evaluator`/`skill-content-matrix` 五份里。
- 🔴 **发送边界(我定的,写进派活单)**:问 GPT 只发**产品层面**内容(板块结构/四问/现状/要什么判断);⛔ 不发仓库路径、机制细节(goalctl/域锁/台账)、源码。要求先把要发的内容写成 `GPT提问稿.md` 留痕再发,回复**逐字落盘**(参照 `b49e02` 那次 10 562 字符的留痕做法)。
- ⚠️ **红线状态变化**:`browser-harness/SKILL.md` §6 与上一轮派活单都写着「本项目 3c-GPT 参考版不做、不许向外发本项目内容」——**那是上一目标的红线**;本轮用户明确要求问 GPT ⇒ **本目标照做**(已在派活单里写明这个转折,并同时收紧了发送范围)。
## 16:40–16:47 · 用户问机制口径:「执行会话是否兼目标跟进/创建程序是否自动建检查会话」⇒ 按技能口径回答 + 现场取证
- **用户原话**:「建立执行会话 是否同时作为目标跟进,创建程序是否会 建立检查会话自动跟进」⇒ 触发词命中「执行会话」⇒ 已按第 0 步**先加载 `session-mechanism` 技能**(⛔ 没凭记忆答)。
- ✅ **答一:执行会话不兼目标跟进**。技能 T 表逐字:「使用执行会话完成目标的时候 主会话 才建立一轮执行会话,**后续无意外都是 检查进程创建**」+「⛔ 主会话到这一步就收手」。⇒ 分工是三方:主会话派活(只建**一轮**执行会话)|执行会话干一棒、做完 `--report` 上报(⛔ 不判目标)|检查会话判结果与目标(`[目标检查]`)。「目标跟进」=**检查会话**的活。
- ✅ **答二:会,由常驻自动建** —— 载体=`collabd.py --supervise`(每 2 轮判一次),函数 `maybe_spawn_check_agent()`,多道闸。
- ✅ **现场取证(我实取 `_collabd.log` 16:40–16:46,每 20 秒一轮,⛔ 不是照文档背)**,四条闸分别在说话:
- `检查会话:目标状态=已完成(非进行中)⇒ 不建`(闸①:`queue-empty` 那条要求 `lifecycle` 进行中)
- `all_sessions_idle:还有 1 条 working(184c4986)⇒ 不算全结束`(闸②)
- `目标检查:队列空但只静默了 0.7 分钟(<3)⇒ 不建`(静默闸)
- `目标检查:⚠️ 本工作区还有 1 条待执行排期 ⇒ 不建(已有活要干,别重复派活):['[执行]-[产品规划]-征询GPT并补全选题板块细节重画框图']` ← 🔴 **它看见了我 16:50 那条棒并据此不重复派活** ✅
- 🔴🔴 **顺带查出一个与文档不一致的实测事实(重要)**:技能 §「现状地图」写「**检查线受总开关管**」,但本区总闸 `contentm_agent = off`(`collabctl status` 现取)而常驻**照样在每 20 秒判闸**,且在 **04:21 确实自动建过检查会话**(会话 `457e4a22`,收口 `0a758b` 目标)。⇒ **实现上 off 没拦住判闸**(off 挡的应是 `collabctl ensure` 那条"补齐缺失"的路,不是常驻自身的循环)⇒ **以实测为准**,文档该订正。
- 🔴🔴 **另一条对用户有用的实测事实**:闸②「所有会话已结束」**把主会话也算在内** —— 日志逐字「还有 1 条 working(`184c4986`)⇒ 不算全结束」,而 `184c4986` 就是**本主会话**。⇒ **主会话开着的时候,检查会话不会被自动建**;要它自动建,得等主会话收工(04:21 那条正是凌晨主会话不在时才建的)。
- 📌 附带现象(小瑕疵,不影响功能):**检查棒撞号** —— 我 23:33 手派的第 47 棒是会话 `a6515a81`(23:36:23 起),常驻 04:21 自动建的也叫「第 47 棒」是会话 `457e4a22`(04:21:47 起)⇒ 两边算棒次的口径不同,名字撞了。功能无碍(两条都跑完),登记备查。
## 18:53 · 用户令「所有方案都要按全球方案规划」⇒ 立全局口径 + 换目标改造
- 🔴 **用户令(逐字)**:「**所有方案都要按照全球方案规划,不能只看国内,必须包含海外主流社媒和短视频平台(最主流的就行)**」。
- ✅ **先核了缺口(不凭印象)**:上一目标 `8a649c` 的细节文档(39 743 B)里平台出现次数 —— 抖音 12/知乎 8/微博 7/小红书 4/B站 4,**海外平台 0**。现版 `2a`/`2b` 更彻底:`2a` 只有「抖音」1 次、`2b` **0 次**(**根本没有平台清单**)⇒ 用户这条令补的是个真空白。
- ✅ **写进长期记忆(最关键的一步)**:MEMORY 新增 🔴🔴 条「**平台范围=全球**(2026-10-11 用户令 · 适用所有方案)」,含主会话自决清单(**海外 6** = TikTok/YouTube(含 Shorts)/Instagram(含 Reels)/Facebook/X/LinkedIn;**国内 6** = 抖音/快手/小红书/视频号/B站/微博;共 **12**)+ 现状缺口实测值 + 「清单可推翻」的标注。⇒ 目的是让**后续任何会话**都不会再只做国内。
- ✅ **换目标三件套**:`declare --title "按全球口径重做平台矩阵与热点源含海外主流" --kpi "<三条>" --switch-goal --yes` ⇒ 旧目标 `8a649c` 归档;`lifecycle` 复位「进行中」。新目录=机制口径 `执行会话/目标-按全球口径重做平台矩阵与热点源含海外主流-39646d/`(title 刚好 20 字、`[:20]` 全保留),`--ensure-goal-dir` 已建目录 + 对齐 `execution_doc`。
- ✅ **队列换新**:旧 `NEXT.md` → `NEXT-旧目标-征询GPT补细节重画框图-已归档20261011-1853.md`。
- ✅ **已派执行棒**:`[执行]-[产品规划]-按全球口径重做平台矩阵与海外热点源`,id `8d7d02b3-a72d-48a0-9f3c-d2c0644cf537`,`once` **19:02**(设在创建时刻之后)。
- 📌 **本目标三样交付**(写死在队列与派活单里):①全球 12 平台矩阵(每平台要写内容形态/体量口径/发布方式,⛔ 不许只列名字)②**海外主流热点源要现查**(国内那路已有 60s+xxapi;海外要找出免费无密钥可程序化取的,方向提示 Google Trends/Reddit/YouTube/X/TikTok Creative Center,**每条必须实跑验证过**,⛔ 查不到就说查不到、不许编端点)③按全球口径重画框图与流程图(图上要看见 12 平台怎么进链路)。
- 🔴 **本轮不动 `2a`/`2b`**:把「要不要把 12 平台矩阵同步进 `2a`/`2b`」立成**待拍板**(改动面大:涉及骨架冻结与闸门),执行棒只出方案与建议。
- 📌 上一目标 `8a649c` 的完整闭环(供追溯):执行棒 `3ddac1cb` 16:50:14 起、17:14:10 收工;检查棒 `a3bc6ac3`(**第 48 棒,常驻自动建的**)17:19:10 起、17:24:48 收工,17:22:43 判「已完成」。产物六份(GPT 提问稿 4 492 B/GPT 回复 44 524 B/细节文档 39 743 B/框图 25 555 B/流程图 17 152 B/交付说明 2 696 B)。
## 19:49 · 用户问「方案更新完成了吗」⇒ 已完成,且这一版是真的把口径落进去了
- ✅ **判定:已完成**。`lifecycle = 已完成`(19:39:10),三条判据全 `过`。执行棒 `346cf532`(19:02:01 起、19:30:35 收工)→ 检查棒 `7c62e1a4`(**第 50 棒,又是常驻自动建的**)19:35:35 起、19:40:41 收工。(另有第 49 棒 `f7777d5f` 18:55–19:01,也是常驻建的,处理换目标空档。)
- ✅ **我核了实质内容(不采信判据自我报告)**:
- `全球平台矩阵-2026-10-11.md`(9 229 B):海外 6(TikTok/YouTube 含 Shorts/Instagram 含 Reels/Facebook/X/LinkedIn)+ 国内 6(抖音/快手/小红书/视频号/B站/微博),**逐个写清内容形态 · 体量口径 · 发布方式**;另有 §三「建议增补 5 个」(Threads/Reddit/Pinterest/Snapchat/Kwai)**只建议、⛔ 没动既有 12 个**(照我在派活单里的要求做的);还有 §五「与 2a/2b 同步的建议」=交给用户裁,⛔ 本轮不动手。
- `海外热点源-查证-2026-10-11.md`(13 986 B):**判通过的硬条件**=HTTP 200 + 报文能解析出真实条目(不是空壳/验证码页);**已验通 9 条**(免费、无密钥、可程序化取)/**没拿到 6 条**(写清卡在哪、实测返回码)。⚠️ 全篇最诚实的一条结论:**海外平台站内实时热榜没有免费源**(要授权),**能用的只有「搜索趋势 + 社区热榜」这两路**。
- `产品框图-热点与选题-全球版-2026-10-11.html`(35 223 B,**116 个文本节点**,上一版只有 77)+ `功能流程图-热点到选题-全球版-2026-10-11.html`(22 198 B):图上是**四层结构**(一·热点源 → 二·平台矩阵 → 三·判断层 → 四·P2 四块+下游),热点源那层**细到端点与字段**(`Google Trends RSS · geo=US/GB/JP · title/ht:approx_traffic/pubDate · 实跑 200 · 10 条/地区`|`Reddit /r/popular/hot/.rss · 25 条 · ⚠️ .json 端点 403 ⇒ 只走 .rss`|`YouTube 频道 RSS · videoId/title/published/views`|HN topstories + Wikipedia Top + Google News RSS + BBC News + trends24|国内 60s v2 + xxapi 备源),平台那层每个平台带内容形态与发布方式 ⇒ **彻底不是占位图了**。
- 另附 `截图校验/`(两份 PNG)+ `取证/`(13 份原始报文可复核)+ `交付说明.md`(8 733 B)。
- 📌 **遗留待拍板(我上一轮已列的)**:要不要把 12 平台矩阵同步进 `2a`/`2b` 与原型 —— 本轮按我定的口径**没动产品**,⚖️ 权衡是「先定名单再落产品,省一次返工」。
## 19:52 · 用户问「新老方案都在文件夹里,后续细化界面怎么找得到对应方案」⇒ 数清现场 + 建索引
- 🔴 **问题坐实(我实数的,不是印象)**:**没有单一入口**。
- `2a-产品功能-新版.md` 在 **4 个**目标目录里各有版本:`20a8ac`(10-10 23:14,61 683 B)/`fa6e07`(10-10 08:07,61 683 B,**同字节数副本**)/`fc471a`(10-09 14:44,43 328 B)/`071c5b`(10-09 00:20,40 917 B)。
- `2b-界面布局-新版.md` 同样 **4 份**:`20a8ac`(10-10 23:22,52 643 B=**V5**)/`fa6e07`(10-10 08:11,52 256 B=V4)/`fc471a`(40 119 B)/`071c5b`(37 846 B)。
- `docs/pm/mcn-shortvideo-agent/prd/` 里 10-10 22:24 归档的 `2a-产品功能.md`(61 683 B)与 `2b-界面布局.md`(**52 256 B = V4 旧版**)⚠️ **落后于执行区**;`research/` **空**;`交付物/` **空**。
- 🔴 **断链根因**:机制定的是「执行期产物落 `执行会话/目标-*/`,**主会话收口后统一搬**进 `docs/pm/…/`」,但**归档只做过一次**(10-10 22:24),之后 `20a8ac`/`8a649c`/`0a758b`/`39646d` 四个目标的产物**一份都没搬** ⇒ 归档区停在旧版、执行区只增不减。
- ✅ **我做了一件(低风险、纯增量)**:建 `docs/pm/mcn-shortvideo-agent/索引-当前权威版.md` —— 按 ①research / ②prd / ③ui / 专题方案 四类,逐条写清**当前权威版是哪个文件(含路径、字节数、日期)+ 哪几份是旧版(点名)+ 已知断链**。⛔ 不动任何被指向的文件(它是指针不是副本)。实测该索引覆盖 14 条文档条目。
- 📌 **索引的维护是「靠人记得」的状态** —— 「每个目标收口时更新一次」这条目前**没写进机制**(检查会话的派活模板里没有这一项)⇒ 已立成待拍板。
- 📌 顺带确认:`执行会话/` 下共 **13 个**目标目录;其中带方案类 md 的有 11 个(另有 `d85687`/`5199a6` 只剩状态文档)。
## 20:2x–20:5x · 用户定「两态结构」并令写进产品规划规则 ⇒ 整理落盘 + 改技能包
- 🔴 **用户令(逐字)**:「**应该有文件夹 专门归档过期文档, 当前文档 统一放在方案文件夹中**」;追加「**这个要记录到 产品规划规则中**」。
- ✅ **整理落地**(方案文件夹 = `docs/pm/mcn-shortvideo-agent/`):
- **当前权威版 16 份**归位:`research/`(1a 24 317 B/1b 33 401 B)|`prd/`(2a 61 683 B=V5/2b 52 643 B=V5)|`ui/`(原型 153 410 B/DESIGN 66 210 B/实测记录 32 210 B)|`专题/` 9 份(全球平台矩阵/海外热点源查证/热点与选题功能细节/全球版框图与流程图/Easel 逆向/国内口径逻辑关系/两份 GPT 建议)。
- **过期版 28 份**收进 `归档-过期版/`,命名 `<原名>__<来源目标短哈希>.<ext>`:`2a` 5 版/`2b` 6 版/原型 4 版/`DESIGN` 4 版/实测记录 4 版/`1a` 3 版/早期 prd 与 research 旧归档 3 份。
- `索引-当前权威版.md` 重写:开头写清「方案文件夹=当前、归档-过期版=过期、执行区=过程留痕」,§六 给出**收口四步**。
- ✅ **规则写进技能**:`E:/ProgramData/.workbuddy/skills/product-planning/SKILL.md` 在 `### 产物落哪` 之后新增 `### 文档的两态:当前版与过期版`(含用户原话、两个文件夹的定义、收口四步、以及「为什么要有这条」的实测避坑依据)。
- ⚠️ **我自己踩的两坑(都当场修了)**:
- ①插段时拿 `### DESIGN.md 为什么在项目目录、不在仓库根` 当锚点,new_string 里**没把这个标题带回去** ⇒ **标题被吃掉**、其正文变成孤儿(`git diff` 里看出 `-### DESIGN.md…`)⇒ 已修回,现标题序列正确(`产物落哪` 72 → `文档的两态` 81 → `DESIGN.md 为什么…` 96)。**教训:用标题作锚插入内容时,锚点必须原样保留。**
- ②`research/` 的白名单只许 `1a`~`1e` 五个标准名 ⇒ 我放的 `1b-竞品分析-汇总对比体.md` 触发闸门 **FAIL 1** ⇒ 改名 `1b-竞品分析.md`(内容一字未动)后 **2061|0|27** 全过。
- ⚠️ **技能仓现场**:多会话并发写 —— `git status` 里另有别人未提交的 `browser-harness/SKILL.md`、`session-mechanism/SKILL.md`、`.gitignore`、video-capture 两个脚本删除等;我只 add 了自己改的 `product-planning/SKILL.md`。技能仓 ⛔ 无 upstream ⇒ 推送用 `git push origin master`。
## 17:15 · 执行棒交活:`8a649c` 三件事全做完(问 GPT → 补细节文档 → 按细节重画图)
- ✅ **第 0 步抢域锁**:`✓ 已持域锁(征询GPT选题细节并重画框图)/contentm_agent/执行会话`;收工 `--release-exec` 已释放,锁目录现为空(只剩 `.migrations` + `.orphan-release.log`)。会话 sid = `3ddac1cb-e73d-4d1d-b8e2-220a9ca2d51d`(从锁 `OWNER` 里抄的,与上报所用一致)。
- ✅ **① 问 GPT**:先写 `GPT提问稿.md`(4 492 B)再发,只发产品层内容。**ChatGPT 回复 15 328 字符逐字留痕** ⇒ `GPT-对热点与选题板块细节的建议.md`(44 524 B)。元信息:网页版/账号 meiya1 免费版/对话标题「热点选题产品设计」/链接 `https://chatgpt.com/c/6acb4e4a-a44c-83e8-9d46-90c0738861a4`。⚠️ 页面**未暴露模型标识** ⇒ 留痕里不写版本号(宁可空着不编)。
- ✅ **② 细节文档** `热点与选题-功能细节-2026-10-11.md`(39 743 B):四问逐项到「照着能做出来」——五路输入+三级降级、四层分类(L1 领域/L2 事件类型/L3 适配人设/L4 工作状态)、三种分数分开算(热度指数/价值分/时效)、界面摆法(列表+抽屉、一屏 8–12 条、行高 88–120px)。文末三色标注分清【GPT】/【补】/【现版】,自评 46/50。
- ✅ **③ 两张图**(都过 `diagram-design` 的 `self_check.py`:无障碍 SVG 契约+单文件安全):
- `产品框图-热点与选题-2026-10-11.html`(25 555 B,viewBox `0 0 1280 720`):三区=输入(五路)/判断层(五组口径,不占板块)/P2 四块+下游。
- `功能流程图-热点到选题-2026-10-11.html`(17 152 B,同 viewBox):五步 → 决策菱形 → 三条出口(≥70 做/50–69 改方向/<50 不投入)。
- ⚠️ 没另起画法、没手搓 SVG:用技能给的 tiaoyue 之外的默认皮肤(paper `#f5f5f5`/ink `#2d3142`/accent `#eb6c36`),生成脚本 `_work/gen_diagrams.py` 留痕。
- 🔴 **经验(新,值得跨会话记住):图内文字是否超框,必须用 DOM 实测 `getBBox()`,肉眼看缩略图会判错** —— 这两轮我在缩略图上两次把「贴边但在框内」误判成「溢出」(实测余量 39px/29px),又两次把「48px 箭头」看丢(其实在)。判据:找「起点落在框内、中心 y 在框内」的**最小面积** rect 作容器,`bbox.right > rect.right + 1` 才算溢出。实测结果:图一 73 文本 0 溢出/0 斜线,图二 41 文本 0 溢出/0 斜线。
- 🔴 **另一条**:五步流程图的框间箭头,**gap 必须 ≥48px 才看得见**(30px 时箭头与 marker 挤在一起,缩略图上等于没有)。
- ✅ **红线守住了**:现版原型 `ui/mcn-workbench.html`、`2a`/`2b` 一个字没改;`0a758b` 三样只读;页面 7/导航/板块 39/流转 20/对象 11 保持。
- 📌 **6 条撞到现版硬约束的项**(平台热榜算哪块/热点事件是否独立成对象/进度 3 态还是 6 态/要不要加「收藏热点」/数据源管理放哪/选题要不要加负责人与截止时间)已登记 `tmp/supervise-inbox/NEED-USER.md` 第 6 节,等用户拍板 —— 本轮只呈现、不动手。
- ✅ **收工**:`--report 3ddac1cb… --state done --artifact "…/热点与选题-功能细节-2026-10-11.md"` ⇒ `OK 已上报 -> done`;域锁已释放。另写 `交付说明.md`(2 696 B)把路径、自检证据、说人话评分、未动项列清。
- 📌 **说人话自评**:产品框图 45/50|功能流程图 46/50|细节文档 46/50|交付说明 47/50(五维=直接性/节奏/信任度/真实性/精炼度)。
## 17:2x · 目标检查会话第 48 棒 —— 目标 8a649c 收口为「已完成」
- ✅ **判定=已完成**:台账 26 条全 `done`(无 running 僵尸件)/`taskgraph.json` 不存在(本期未启用)/`--domain-status` 无人持域锁。
- ✅ **执行棒产物已核**(照判据逐条查内容,⛔ 不是只看文件在不在):`GPT提问稿.md` 4492 B + `GPT-对热点与选题板块细节的建议.md` 17511 字符逐字留痕 | `热点与选题-功能细节-2026-10-11.md` 39743 B | 框图 77 个文本节点/流程图 41 个文本节点,块内是字段名与公式(热度公式、七维加权 25/20/15/15/10/10/5、三级降级 L1→L2→L3)⇒ **不是占位图**(上一轮 `0a758b` 的教训已避开)。
- ✅ **三件一起做**:补写 `目标执行状态.md`(二、验收判据三条全 `过` + 三、结论 + 四、旧判据作废清单)→ `goalctl.py declare --kpi … --yes` 回写 → 回读确认 → `collabd.py --set-life 已完成`。
- ⚠️ **两个现场事实**:① 工作区根**没有 `state.py`**(检查模板第 1 项跑不出来),本轮改用 `goalctl.py` 默认输出顶替(同口径);② `--set-life 已完成` 触发常驻优雅退出(pid 40828),属机制预期。
- 📌 遗留六条改结构项仍在 `NEED-USER.md` 第 6 节等拍板,未动手。
## 18:5x · 目标检查会话第 49 棒 —— 目标 39646d(全球口径平台矩阵)判「没做完」,且**不重复派棒**
- 🔴 **判定=没做完**:`goal.json.acceptance_state` 三条全「未过」;状态文档是 420 B 空模板(「⛔ 暂无判据」);台账里 `goal_fp=39646d` **零条目**(执行棒还没上报)。三路取并集 ⇒ 未完成。
- 🔴 **关键现场:已有执行棒在排队** —— `[执行]-[产品规划]-按全球口径重做平台矩阵与海外热点源`(id `8d7d02b3`,`once`,`scheduledAt=2026-10-11T19:02`,`ACTIVE`)。本轮 18:55 核对,距触发还有 7 分钟。⇒ **不派第二条**(再建=重复执行,用户明令「建完就停,⛔ 不要连建多条」)。⚠️ 检查棒的注入通报里写「本项目没有别的待执行排期」,**实测是错的** —— 同时还有 `02787e55`(18:57,B站采集)也是 ACTIVE once ⇒ **派棒前必须自己 `automation_update list` 核一遍,⛔ 别信通报**。
- ✅ **做了两件**:① 补写 `执行会话/目标-按全球口径重做平台矩阵与热点源含海外主流-39646d/目标执行状态.md`(三条判据表 + 结论 + 五、给 19:02 那棒的执行口径:12 平台清单、海外热点源要查证、图要照着能做出来、产物落本目录、不动 2a/2b);② `goalctl.py declare --kpi … --yes` 把三条值从非规范的 `未过` 改写成 `🔴 不过|…`,**回读确认**已落盘。
- ⛔ **没做**:不改 `lifecycle`(保持「进行中」)—— 没过就不许标已完成。
- ⚠️ **两个模板与现场不符(沿用登记)**:① 工作区根**没有 `state.py`**(模板第 1 项跑不出来,48 棒已记);② **`taskgraph.json` 不存在**(模板第 3 项)⇒ 三路判定实际只跑了两路,靠状态文档补齐。
- 📌 `--domain-status` = 无人持域锁(本轮不需要派棒,故未取门禁块)。
## 19:2x · 目标 39646d 执行会话收工 —— 全球口径三样交付
- ✅ **三样 + 支撑材料全落** `执行会话/目标-按全球口径重做平台矩阵与热点源含海外主流-39646d/`:`全球平台矩阵-2026-10-11.md`(9 229 B,海外 6 + 国内 6,每平台带内容形态/体量口径/发布方式)|`海外热点源-查证-2026-10-11.md`(13 986 B,**9 条实跑验通 + 6 条明写没拿到**)|`产品框图-热点与选题-全球版-2026-10-11.html`(35 223 B,viewBox 1400×920,117 文本节点)|`功能流程图-热点到选题-全球版-2026-10-11.html`(22 198 B,viewBox 1400×830,64 文本节点)|`交付说明.md`(8 733 B)|`取证/` 11 份原始报文|`截图校验/` 2 张整页 PNG + 驱动脚本。自评 47/50(矩阵 46、源 47、说明 47)。
- 🔴🔴 **本机海外取数的唯一通道 = 代理 `127.0.0.1:10800`**(**值得跨会话记住**):直连 Reddit/Google Trends/YouTube 等海外域名一律 `http=000`;加 `curl -x http://127.0.0.1:10800` 后大批端点 200。系统 PAC 也是这个端口。⛔ 以后凡海外取数先挂这个代理,别一上来判「连不通」。
- 🔴 **判死的四条硬结论**(都已写进文档,避免下轮重踩):① Reddit `.json` 端点 **403**(改走 `/r/popular/hot/.rss` 才 200);② TikTok Creative Center `http=200` 但正文 `{"code":40101,"msg":"no permission"}` ⇒ 非免费源;③ `pullpush` 429 且正文自称「不提供免费抓取资源」⇒ 付费墙;④ 海外站内实时热榜(TikTok/Instagram/Facebook/LinkedIn)**没有免费无密钥源** ⇒ 转成产品约束(留人工录入位)。
- ⚠️ **图面自检口径**(沿用并加强 17:2x 那条):「文字是否超框」必须 DOM 实测,肉眼在缩略图上会判错 —— 本轮框图一处分区标题遮罩宽 240px 装了 271.8px 标题(`over: 31.8`),加宽四处遮罩(56→282/380→240/744→246/1084→224)后复测归零;两图最终 碰撞 0/溢出 viewBox 0/超出所在框 0。
- ✅ **红线守住**:`ui/mcn-workbench.html` + `2a`/`2b`(改前 120 158 B / 16 689 B / 21 020 B)**一个字没改**;`8a649c` 目录四样只读;页面 7/导航名与顺序/板块 39/流转 20/对象 11 保持。
- ✅ **收工**:`--report 346cf532… --state done --artifact "执行会话/目标-…-39646d/交付说明.md"` ⇒ `OK 已上报 done`,台账 `goal_fp=39646d`;浏览器只新开 1 个标签页、收工 `Target.closeTarget` 关掉(4→3,未动别人 3 个);`--release-exec` ⇒ `✓ 已释放域锁`,另 1 把属他人按 R9 未动。
- ⚠️ **遗留**:`goal.json.acceptance_state` 三条仍是 `🔴 不过|本轮核对未产出-执行棒8d7d02b3已排19:02` —— 那是检查棒第 49 棒 **19:00 前**写的,本轮产物 19:20 才落盘 ⇒ **等检查棒第 50 棒重跑门禁 + 回写 `--kpi`**(本目标与 `fa6e07`/`20a8ac`/`0a758b` 同型)。
- 📌 **待拍板(只登记未动手)**:A 要不要把 12 平台矩阵同步进 `2a`/`2b`(建议只改「平台枚举值」与「平台筛选分组」两处,不改结构,写在矩阵文档 §五 + 交付说明 §四);上一版 §八 那 6 条改结构项继续挂 `NEED-USER.md` 第 6 节。
## 19:37 检查棒第 50 棒 · 目标 `39646d` 收口(已完成)
- **判定=完成**:台账 `goal_fp=39646d` 唯一条目 `346cf532` 已 `done`(19:28 上报,`artifact`=`交付说明.md`);`tasks.json` 全表无 `pending`/`running`/`blocked`;`taskgraph.json` 在本工作区**不存在**(三路判定实际只跑两路,靠状态文档补齐)。
- **三条判据本轮全 `过`**(上一轮 18:55 是「目录空无一物」全 `🔴 不过`,同一处对比):
 ① 平台矩阵=`全球平台矩阵-2026-10-11.md` 9229 B,海外 6+国内 6 共 12 个,逐个带内容形态/体量口径/发布方式;
 ② 海外热点源=`海外热点源-查证-2026-10-11.md` 13986 B,实跑验通 9 条 + 6 条明写没拿到,`取证/` 13 份原始报文;
 ③ 两张图=`产品框图-…-全球版.html` 35223 B(1400×920)+`功能流程图-…-全球版.html` 22198 B(1400×830),框图里 12 平台逐个在位、海外 25 处,流程图海外/国内双路 + 地区语言分桶;`截图校验/` 两份整页 PNG。
- **做了三件事**(与 `fa6e07`/`20a8ac`/`0a758b` 同型):现跑门禁 → 补写 `目标执行状态.md`(改 §二 判据表、§三 结论、§五 对账)→ `goalctl.py declare --kpi` 回写 → **回读确认** → `collabd.py --set-life 已完成`。
- ✅ 回读实测:`acceptance_state` 三条都变成 `过|…`;`lifecycle` = `已完成`;常驻随之优雅退出(pid 42172)。
- ⚠️ **派棒排期并非只有本目标一条**(通报又写错):实跑 `automation_update list` 见到 `df3dead8` 接续-技能包脚本去本机硬编码(19:38)、`02787e55` [执行]-[B站AI设计教程采集]-承接队列(18:57)两条 ACTIVE once 仍在册。本轮不派棒所以无冲突,**但「没有别的待执行排期」这句通报再次不可信**。
- 📌 遗留待拍板未动:A 要不要把 12 平台矩阵同步进 `2a`/`2b`;上一版 6 条改结构项(A–F)仍挂 `NEED-USER.md` 第 6 节。