核实8a8412完成:信源16路留8弃8、赛道过滤层落prd/2a(F15不插号)与两张图、旧版自动进归档-过期版+索引同步;独立复核闸门2061|0|27与冻结项未动

This commit is contained in:
WorkBuddy committed 2026-10-11 22:06:56 +08:00
1 parent c3e124e4ae
commit ce49e23ac1
12 files changed
+1430 -19

No files matched your search

+69
View File
@@ -142,6 +142,17 @@
- ①起点一律指向**方案文件夹**(`docs/pm/mcn-shortvideo-agent/` 的 `专题/` 与 `prd/`、`ui/`),不再指向执行区散落的目录 ⇒ 「两态规则」第一次真正起作用。
- ②明确写「**`docs/` 一个字都不许改**」—— 执行棒的域锁只允许写 `执行会话/` 内 ⇒ 产物落目标目录,**收口时由主会话同步进方案文件夹**(旧版进 `归档-过期版/`)。这条是域锁与新规则的接口,第一次跑,要看顺不顺。
## 22:05 · 用户问「目标完成了吗」⇒ 已完成,且两态规则第一次真正跑通
- ✅ **判定:已完成**。`lifecycle = 已完成`(21:44:00),三条判据全 `过`。**这次跑了三棒执行 + 三棒检查**:执行棒 `f615337b`(20:48:12–20:58:52,收窄+设计+出图)→ 检查棒第 52 棒(21:11–21:17)→ **执行棒 `1d1fdce6`(21:24–21:33,「把 F15 与 F9 扩写落进 prd2a 并补 2b 两句」)** → 检查棒第 53 棒(21:41–21:45 判完成)。⚠️ 第二棒是**检查棒自己派的**(因为第一棒只出了方案、没落产品文档)⇒ 机制在没人干预下自己补了这一步。
- ✅ **方案文件夹已同步(两态规则首次完整跑通)**:`prd/2a` 68 924 B(原 61 683)/`prd/2b` 52 992 B(原 52 643);两份旧版**自动进了 `归档-过期版/`**(`2a-产品功能__8a8412.md`/`2b-界面布局__8a8412.md`);`索引-当前权威版.md` 同步更新(4 806 B)。
- 🔴🔴 **发现我派活单里那条「`docs/` 一个字都不许改」是多余的**:实际是**执行棒直接改了 `docs/`**(它持了 `docs` 域的锁 ⇒ 域锁按**域**互斥、**不是**"只许写自己的域",会话可以持多个域的锁)。⇒ 两种路径都可行(执行棒直接改=少一次搬运/主会话收口改),**关键是改完必须做「归档 + 索引同步」这两步**。⇒ 这条我记进 MEMORY 了,下次派活单不再写那句无效限制。
- ✅ **我独立复核过(不采信判据自我报告)**:闸门 **2061|0|27**(我自己跑了一遍);冻结项一个没动(页面 7/导航一层七项/板块 39/流转 20 条/对象 11 个);`2a` 里 F15 接在 F14 后**不插号**;两张图里过滤段**写死了字段名与三档阈值**(`宽松55/30 · 标准70/40 · 严格85/60`;匹配度 `M` 直接喂给七维的「账号匹配度 25%」那一维,⛔ 不两处各算一套)。
- ✅ **信源收窄的实质**(我读了产物):`信源收窄-短视频平台与内容社区.md`(13 225 B)—— 16 路逐条复核、**留 8 弃 8**;判据是一条线(「条目本身是不是"大家在搜什么/社区在聊什么/平台在推什么/对标号在发什么"」⇒ 留;「是新闻/产品名/百科词条、要先做一轮再加工」⇒ 弃);弃用**不是一删了事**,每条写实测返回过什么、为什么不够贴题、将来什么条件下拿回来。
- ✅ **两处它做得比我要求的好**:①**复核后改了我的口径** —— 我判 `Google Trends` 与 `Product Hunt` 都偏资讯,它复核后**留前者、弃后者**(两者不是一个形态:前者是搜索需求信号、后者是产品发布);②**如实交回一处缺口**(快手、视频号**没有源**)并单列 §三,⛔ 没当成"已经收窄完了"。
- 📌 产物清单(目标目录 `执行会话/目标-收窄热点源并加赛道过滤-8a8412/`):`信源收窄-短视频平台与内容社区.md`(13 225 B)/`赛道过滤层-设计.md`(23 241 B)/`产品框图-热点与选题-赛道过滤版.html`(34 463 B,108 文本节点)/`功能流程图-热点到选题-赛道过滤版.html`(27 382 B,83 节点)/`2a-落盘记录.md`(8 239 B)/`交付说明.md`(7 927 B)。
@@ -207,3 +218,61 @@
- ✅ 回读实测:`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 节。
## 20:42 · 第 51 棒检查会话:核对目标「收窄热点源并加赛道过滤」(8a8412)
- **判定=未完成**,但**没有派新棒**:执行排期 `50a8f8f3`「[执行]-[产品规划]-收窄热点源并加赛道过滤层」已在册 ACTIVE、`scheduledAt=20:48`,与本棒核对时刻(20:41)仅差 7 分钟 ⇒ 派棒即是重复。
- 🔴 **通报第三次写错**:本轮触发通报称「本项目没有别的待执行排期」,实跑 `automation_update list` 见 **3 条 ACTIVE once**(`50a8f8f3`/`d52d8fd9` 抖音采集/`5b2ab4fa` 第50棒)。规矩照旧:⛔ 别信通报,派棒前自己 list。
- 三路核对实况:`tasks.json` 全 `done` 且**无一条属当前目标**(最后一条 `346cf532` 属上一目标 `39646d`);`taskgraph.json` **不存在**;工作区根**无 `state.py`** ⇒ 实际只跑两路,靠状态文档补齐。
- 动作两项:① 补写 `执行会话/目标-收窄热点源并加赛道过滤-8a8412/目标执行状态.md`(三条判据 + 结论 + 下一棒动作;换目标时它只有空模板);② `goalctl.py declare --kpi` 把 `acceptance_state` 取值从 **`未过`** 规范成 **`🔴 不过`**(`未过` 不在取值域,机器分不出「没判」与「判了没过」),回读确认已落盘(备份 `.workbuddy/collab/bak-goalctl-20261011/`)。
- `lifecycle` 保持「进行中」,⛔ 未标完成。下一棒:等 `50a8f8f3` 跑完,照状态文档核产物是否落进该目标目录,落了才改判。
## 20:5x · 目标 `8a8412` 执行会话收工 —— 收窄热点源 + 加赛道过滤层(四样交付)
- ✅ **四样 + 交付说明全落** `执行会话/目标-收窄热点源并加赛道过滤-8a8412/`:`信源收窄-短视频平台与内容社区.md`(13 225 B,16 路逐条复核 ⇒ **留 8 弃 8**,弃的每条写实测返回过什么/为什么弃/拿回来条件)|`赛道过滤层-设计.md`(23 241 B,七问全答 + **新增功能条目 F15** 可整段粘 + **扩写 F9** 加赛道表字段组 + 三处小同步)|`产品框图-热点与选题-赛道过滤版.html`(34 463 B,1400×930)|`功能流程图-热点到选题-赛道过滤版.html`(27 382 B,1520×880)|`交付说明.md`。说人话 47/50 + 46/50。
- 🔴 **本目标的核心判断(别照抄用户名单)**:判据是「**这条源产出的条目,本身能不能当一条短视频选题的开头用**」。⇒ 弃海外 5 条(HN/Product Hunt/Wikipedia/Google News/BBC)+ 国内 3 条(知乎/头条/百度),理由=**产的是「新闻/名录/词条」,不是「选题」**,拿到手还要再加工。留 8 路并打四类信号标签(大众热度/垂类讨论/对标动作/平台话题)。两条单列理由:`Product Hunt` 换成 `YouTube 频道 RSS`(前者给产品名录、后者直接就是「他发了什么」);`百度热搜` 与微博同质(都是事件型)留微博。
- 🔴 **新加的层「按账号赛道过滤」四面定死**:插点=**分类之后、价值分之前**,且**只作用于外部热点那一路**(对标/评论/自有数据/人工四路天然按账号来);匹配读 `Account` 的 `定位`/`受众`/`偏好与红线` + 新增**赛道表**字段组(`包含词[]`/`排除词[]`/`领域白名单[]`/`过滤档`),⛔ 不读风格、⛔ 不读平台账号;规则 A 硬拦 + 规则 B `M = clamp(0,100, round(55 × (W' ÷ 2.0) + 30 × D + 15 × A))`(`W' = min(Σ命中词权重, 2.0)`,词权重 主词 1.0/长尾 0.6/受众 0.4);三档 宽松 55/30 · 标准(默认)70/40 · 严格 85/60。挡下来的进**「未匹配档」=P2 的一个筛选档位**(⛔ 不是新池子/新页面/新板块),留 7 天可捞回。
- ✅ **红线守住**:`docs/` 一个字没动;页面 7/导航名与顺序/板块 39/流转 20 条/对象 11 个**全未变**;新增条目走**末位编号 F15**(⛔ 不插号),`Topic.赛道匹配[]` 是数组字段(⛔ 不新增对象)。
- ✅ **自检三件**:`diagram-design/scripts/self_check.py` 两张图 ⇒ 均 `OK`(无障碍 SVG 契约 + 单文件安全);浏览器内几何自检(全部 `<text>` 取 `getBoundingClientRect`,判溢出画布 + 两两重叠 >3px)两张图各 **83 节点 ⇒ 溢出 0/重叠 0**;**变异对照**注入一个必然重叠的 text ⇒ 报 **1 条重叠**(`① 采集 · 收窄后 8 路 <> MUTANT-OVERLAP`),移除后回 83 节点 ⇒ 证明判据非恒绿。
- ⚠️ **踩坑一条(值得记住)**:`Read` 工具对 PNG 有**大文件闸**(本轮 488 KB 的整页截图被拦,提示「全文会写进会话历史、之后每轮全量重发」)⇒ 看图先压:**系统 `D:/miniconda3/python.exe` 带 Pillow 12.3.0**(managed 的 3.13.12 没装),`Image.resize` + `quality=72` 存 jpg(488 KB → 152 KB)即可读。另:PowerShell `Add-Type` 被安全策略拦(不能用来缩放图)。
- ✅ **收工**:`--report f615337b… --state done --artifact "执行会话/目标-收窄热点源并加赛道过滤-8a8412/"` ⇒ `OK 已上报 done`;`--release-exec` 按 OWNER 里 `ME` 原文(`[执行]-[产品规划]-收窄热点源并加赛道过滤`)释放 ⇒ `✓ 已释放域锁`,锁目录已清空(只剩 `.migrations`/`.orphan-release.log`);闸门重跑 **通过 2061|失败 0|提示 27**(与基线一致);浏览器**复用**既有 file:// 标签页(收工 `list_tabs()` 仍是 5 个,⛔ 未开新标签)。
- ⚠️ **遗留交回(⛔ 本棒未拍板)**:① 热榜这一路落在 P2 哪一块(并进 F1 vs 新增块 ⇒ 板块 39→40,破数字冻结),倾向并进 F1;② 赛道表编辑入口要不要在 P6 单列一块(P6 5→6 块),倾向挂在画像五维块内;③ 快手/视频号无源的两条解法(人工录入档 / 换第三方聚合)二选一。
- 📌 **收口未完(重要)**:F15 与 F9 的实改、两张图同步进 `docs/pm/mcn-shortvideo-agent/` 要**主会话按两态规则**做 —— 域锁只许写 `执行会话/`,这一步本棒做不了。本棒同时写了自动化记忆 `automations/50a8f8f3-c6b5-43c0-a52c-3c01f3ddadb4/memory.md`。
## 21:15 · 第 52 棒检查会话 —— 目标 `8a8412` 判「未完成」,派落盘棒
- 🔴 **最重要的一条教训:状态文档会滞后于产物**。上一棒 20:57 已 `done`、四份产物全在目标目录,但 `目标执行状态.md` 写于 20:42(早于产物),三条判据还停在「目标目录内无产物,执行棒未触发」。⇒ 检查会话**照文档抄判据会误判**,必须拿产物逐条重判(这也是「执行棒只交付产物、不写状态文档」这条分工的直接后果)。
- 判据重判结果:① 信源收窄 **过**(16→8,弃的每条有实测返回值/原因/拿回条件);② 赛道过滤层落进产品功能文档 **🔴 不过**(设计+F15 可粘块+F9 扩写都有,但 `prd/2a-产品功能.md` 一字未改);③ 两张图加过滤层 **过**(框图 10 处/流程图 9 处命中「赛道过滤」,且自检有变异对照)。
- 动作三件:① `goalctl.py declare --kpi … --yes` 把三条判据改齐(`过|…`/`🔴 不过|…` 规范写法),**回读 goal.json 确认已落**(备份进 `bak-goalctl-20261011/`);② 重写 `目标执行状态.md`(加「四、旧判据的作废清单」=把 20:42 版那句「无产物未触发」作废,⛔ 防止后续再拿它判红;加「五、收口待办」);③ 派新棒 `64a404f2`(21:24,域 `docs`)去把 F15/F9 扩写/三处同步落进 `prd/2a-产品功能.md` 并给 `2b-界面布局.md` 补两句。
- 🔴 **域锁是判据②的客观卡点**:`prd/2a` 落在 `docs` 域下,而执行棒默认只写 `执行会话/` ⇒ **派棒必须在提示词里显式指定域目录 `docs`**(`--domain-block docs` 取门禁块抄进去),否则新棒照样够不着 2a,判据会永远红。
- `lifecycle` 保持「进行中」,⛔ 未标已完成(判据②未过)。
- ⚠️ 三路判定仍只跑通两路:`taskgraph.json` 不存在;工作区根无 `state.py`(用 `goalctl.py` 默认输出顶替)。`tasks.json` 里当前目标 `8a8412` 有一条 `done`(20:57,`by` 字段为空)。
- ⚠️ `automation_update list` 实测:**通报说「没有别的待执行排期」是假的** —— 实际有 10 条 once 排期都挂着 ACTIVE(多数是已耗的历史棒,含 50a8f8f3 自己)。⇒ 派棒前一定自己核一遍,别信通报;也别把历史棒当成「待执行」。
## 21:2x–21:3x 执行棒 · 把 F15/F9 扩写落进 prd(sid `1d1fdce6`,域 `docs`,判据②做成「过」)
- 抢锁 → 改 → 跑闸门 → 释放,都在 `docs` 域内完成;`handoff-guard.sh --claim-exec`/`--release-exec` 用的都是会话全名。
- **改了 `2a-产品功能.md` 8 处**:① 文件头补本轮说明;② §〇 加「本轮追加(赛道过滤层)」;③ §二 `Account` 行加「+ 赛道表」+「被谁消费」补 P2(F15 正文写明 P2 是匹配发生处,不补就打架);④ §三 标题 14 → 15 条;⑤ S1 段末整段落进 F15(源块 §6.1 逐字);⑥ F9 核心对象行点赛道表 + 界线后追加「扩出赛道表字段组」;⑦ §四 标题改 F1–F15、加 F15 行、F9 差异栏补一句;⑧ §五 加本轮六条 + §七 五行落点补 F15(持久化「全部 15 条」,失败恢复行写明 F15 走 fail-open,与 F5 的 fail-closed 对照)+ §九 新增第 8 项(三条未拍板带回收三字段)+ 自检加两条。
- 🔴 **踩到一处措辞打架**:§九 第 7 项原写「⛔ 不编一条 F15」(指定时发布),而本轮 F15 已用于赛道过滤 ⇒ 改成「⛔ 不为它新增编号 —— F15 已用于赛道过滤,⛔ 不借它的号」。教训:**新增编号时要回头搜一遍文档里有没有「不许编这个号」的旧措辞**。
- **`2b-界面布局.md` 只改 2 处共 3 行**:P2 对标内容块补账号切换器 + 匹配度筛选器;P2 信息分档表加「匹配度筛选器|主屏常驻」一行(挂在既有板块,⛔ 不占块)。
- 冻结数改后现算全绿:F1–F15 无插号/页面 7/导航一层七项/板块 39(5+4+4+6+5+5+10)/流转 20/对象 11。
- **闸门改前改后都是 2061|0|27**(命令必须带 `--ws`,⛔ 不给 `--root .`)。
- 两态规则:被顶替的旧版用 `git show HEAD:<路径>` 取出来存进 `归档-过期版/2a-产品功能__8a8412.md`(61 683 B)与 `2b-界面布局__8a8412.md`(52 643 B)。✅ 这是个好用的招:**git 跟踪着 prd ⇒ 改前版本随时可以完整取回**,不靠手工备份。索引 §二 大小日期已更新(68 924 B/52 992 B),§五 归档份数 28 → 30。
- ⚠️ `--report` 报了软提醒「artifact 不在目标目录内」,但路径确实在 `执行会话/目标-收窄热点源并加赛道过滤-8a8412/` ⇒ 该判据大概率是拿 artifact 与 `execution_doc`(= `…/目标执行状态.md`)**整条比**,不是比目录。软提醒不影响上报(已 `done`)。
- 产物:`执行会话/目标-收窄热点源并加赛道过滤-8a8412/2a-落盘记录.md`(逐处「改前 → 改后」+ 硬约束核对表 + 闸门两次数 + 说人话 46/50)。
## 21:4x · 第 53 棒检查会话:**目标「收窄热点源并加赛道过滤」判定已完成**(`8a8412` 收官)
- ✅ **三条判据全过并收口**:①信源收窄 过/②赛道过滤层落进 prd **由「🔴 不过」翻成「过」**/③框图流程图加过滤层 过。
`goalctl.py declare --kpi "三条" --yes` 写回(已回读核对)⇒ `collabd.py --set-life 已完成 --by "…第53棒"`(21:44:00)。
- 🔑 **判据 ② 翻转的依据**:执行棒 `64a404f2`(第 52 棒 21:14 派,排期 21:24)**已跑完并上报 done**(台账 `1d1fdce6`,21:31,
`artifact` = 目标目录 `2a-落盘记录.md`)。本棒**在磁盘上定向 grep 核验**(⛔ 不只信落盘记录的自述):
`prd/2a-产品功能.md` L179 `#### F15 赛道过滤与未匹配档`、L95 `Account` 行含「+ 赛道表」、L318/L324 F9 扩赛道表、L400 归属总表 F15 行;
`prd/2b-界面布局.md` L173 账号切换器与匹配度筛选器、L191 信息分档表新增行;归档两份在位;索引 §二 已更新、§五 28 → 30。
- ⛔ **未派棒**(无缺口);`--domain-status` 报「无人持域锁」⇒ ⛔ 未动任何人的锁、⛔ 未跑孤儿锁解除。
- ⚠️ **副作用(机制自带,不是故障)**:`--set-life 已完成` 让本区常驻 `collabd.py --supervise`(pid 10904)**优雅退出**;换目标时由新目标的主会话重起。
- 📌 **两条可复用的经验**:
1. 检查会话遇到「状态文档落后于新产物」⇒ 文档仍是唯一依据,但**允许按台账 artifact 定向核验磁盘**(grep 具体行号);这不算"到处翻文件"。核验完必须**文档与 `goal.json` 一起改齐**。
2. `goalctl.py declare --kpi` **不带 `--yes` 是干跑**(rc=0、打印「一个字节都没写」)⇒ 必须加 `--yes` 且**回读**。本机已栽过同型的"静默放行"。
- 📌 **遗留三条(⛔ 非验收判据,交回用户拍板)**:热榜这一路落 P2 哪一块(并进 F1 还是新增一块,新增则 39 → 40)/赛道表编辑入口是否在 P6 单列一块/快手与视频号无源怎么补 —— 已带回收三字段登记在 `prd/2a-产品功能.md` §九 第 8 项。
- 状态文档已更新:`执行会话/目标-收窄热点源并加赛道过滤-8a8412/目标执行状态.md`(新增「六、本棒核对记录(第 53 棒)」,原第 52 棒记录降级为「七」)。
+3 -1
View File
@@ -30,7 +30,9 @@
· ✅ **已落地**(20:2x):当前版 **16 份**归位、过期版 **28 份**收进归档、索引建好;规则写进 `E:/ProgramData/.workbuddy/skills/product-planning/SKILL.md` 新增的 `### 文档的两态:当前版与过期版`(在 `### 产物落哪` 之后)。✅ 闸门现跑 **2061|0|27** 全过。
· ⚠️ 踩坑两处(我自己的):①往技能里插新段时拿原标题当锚点、new_string 里没把它带回去 ⇒ **吃掉了 `### DESIGN.md 为什么在项目目录、不在仓库根` 这个标题**,已修回(教训:用标题作锚插入内容时,锚点必须原样保留);②`research/` 只许 `1a`~`1e` 五个标准名 ⇒ 我放的 `1b-竞品分析-汇总对比体.md` 触发闸门 FAIL,改名 `1b-竞品分析.md` 后过(内容一字未动)。
- 🔴🔴 **找方案的唯一入口=`docs/pm/mcn-shortvideo-agent/索引-当前权威版.md`**。起因:用户问「很多新老方案都在文件夹中,后续根据产品方案细化界面如何找得到对应的方案」——实测**没有单一入口**:`2a-产品功能` 在 **6 个**目标目录里各有一版、`2b` **7 个**、原型 5 个,光看文件名与字节数分不出谁新;而 `docs/pm/` 下早先那次归档还停在旧版(`2b` 只 52 256 B=V4,最新 V5 是 52 643 B)。🔴 **断链根因**:机制定的是「执行期落 `执行会话/目标-*/`、主会话收口后统一搬进 `docs/pm/…/`」,但**归档只做过一次**(10-10 22:24),之后 `20a8ac`/`8a649c`/`0a758b`/`39646d` 四个目标的产物一份都没搬。⚠️ **维护时机**:每个目标收口时更新索引(现已写进技能的四步动作里)。
- 🔴 **本区当前目标**(2026-10-11 20:38 声明)=**收窄热点源 + 加「按账号赛道过滤」一层**(用户在我给的三个候选里**选了 B**;起因=用户逐字「**这个是短视频 内容营销平台,热点范围需要更精准**」)。类别 `产品规划`;目标目录=**机制口径** `执行会话/目标-收窄热点源并加赛道过滤-8a8412/`。三条判据=信源收窄到短视频平台与内容社区/赛道过滤层落进产品功能文档/框图与流程图加上过滤层(均 `未过`)。执行棒 `50a8f8f3` `once` **20:48**。🔴 **诊断依据(主会话实测)**:现有信源里约 **8 条是综合资讯类** —— 海外 5 条(`Hacker News`/`Product Hunt`/`Wikipedia`/`Google News`/`BBC News`)+ 国内 3 个(`知乎`/`百度`/`头条`)⇒ **占信源一半**,等于在给「新闻」而不是给「选题」;贴题的只有海外 `Google Trends`/`Reddit`/`YouTube 频道 RSS`/`trends24` + 国内 6 个平台。⚠️ 本轮**要动 `prd/2a` 与两张图**(用户选 B 即授权);⚠️ 执行棒受域锁限制只能写目标目录,**收口时由主会话按「两态规则」同步进 `docs/pm/mcn-shortvideo-agent/`**。📌 **最近三个目标收官**:`8a649c` 征询 GPT+补细节(17:22,国内口径)|`39646d` 全球口径矩阵与热点源(19:39,验通 9 条/没拿到 6 条如实登记)|`0a758b` 梳理逻辑+出图(04:25)。🔴 **教训(沿用)**:判据只写「有文档/有图」⇒ 执行棒交占位图 ⇒ **判据要落到「照着能做出来」的粒度**。⚠️ 遗留六条改结构项(平台热榜归属/热点事件是否独立成对象/进度 3 或 6 态/收藏热点/数据源管理落点/选题负责人与截止时间)登记在 `NEED-USER.md` 第 6 节。
- 🔴 **本区当前目标=无**(`8a8412` 收窄热点源+加赛道过滤已于 2026-10-11 21:44 收口=已完成)。✅ **三条判据全过**:①信源 16 路逐条复核 **留 8 弃 8**(弃用每条写实测返回值与拿回条件)②赛道过滤层落进产品文档(`prd/2a` 新增 **F15 赛道过滤与未匹配档**,接在 F14 后**不插号**;F9 扩出「赛道表」字段组;功能清单 14→**15 条**)③两张图新增过滤段(框图 108 节点/流程 83 节点,块内写死字段名与三档阈值 `宽松55/30 · 标准70/40 · 严格85/60`,匹配度 `M` 直接喂给七维里的「账号匹配度 25%」那一维,⛔ 不两处各算一套)。✅ **冻结项一个没动**(页面 7/导航一层七项/板块 39/流转 20 条/对象 11 个)+ 闸门 **2061|0|27**(主会话独立复跑过)。
- 🔴🔴 **两态规则首次完整跑通(2026-10-11 21:29–21:30)**:`docs/pm/mcn-shortvideo-agent/` 的 `prd/2a`(68 924 B)与 `prd/2b`(52 992 B)被**直接更新**,两份旧版(61 683/52 643)**自动进了 `归档-过期版/`**(命名 `2a-产品功能__8a8412.md`),`索引-当前权威版.md` 同步更新(4 806 B)。⚠️ **责任归属实测=执行棒直接做也行**(它持了 `docs` 域的锁)—— 我原在派活单里写「`docs/` 一个字都不许改」,实际是**多余的**:域锁按域互斥、不是"只许写自己的域",会话可以持多个域的锁。⇒ 两种都可行:执行棒直接改(少一次搬运)/收口时主会话改;**关键是改完必须做归档 + 索引同步这两步**。
- 📌 **另两条实测收获**:①信源收窄那棒**复核后改了我的口径** —— 我判 `Google Trends` 与 `Product Hunt` 都偏资讯,它复核后**留前者、弃后者**(两者不是一个形态)⇒ 「⛔ 照抄名单就删」那条要求起了作用;②它**如实交回一处缺口**(快手持、视频号没有源)并单列在 §三,⛔ 没当成"已经收窄完了"。📌 **最近四个目标收官**:`8a649c` 征询 GPT+补细节(17:22,国内口径)|`39646d` 全球口径矩阵与热点源(19:39)|`0a758b` 梳理逻辑+出图(04:25)|`8a8412` 收窄信源+赛道过滤(21:44)。🔴 **教训(沿用)**:判据只写「有文档/有图」⇒ 执行棒交占位图 ⇒ **判据要落到「照着能做出来」的粒度**。⚠️ 遗留六条改结构项(平台热榜归属/热点事件是否独立成对象/进度 3 或 6 态/收藏热点/数据源管理落点/选题负责人与截止时间)登记在 `NEED-USER.md` 第 6 节。
- 🔴 **检查会话补齐状态文档=常规动作**:执行棒只交付产物、不写 `目标执行状态.md` ⇒ 检查会话要「现跑门禁 + 补写文档 + 回写 `--kpi`」三件一起做(`fa6e07`/`20a8ac`/`0a758b`/`39646d` 同型)。🔴 **派棒排期时间必须晚于创建时刻**。🔴 **派棒前必须自己 `automation_update list` 核一遍待执行排期**(2026-10-11 第 49 棒实测:注入通报写「没有别的待执行排期」,实际有两条 ACTIVE once ⇒ ⛔ 别信通报,信了就会重复派棒)。
- 📌 **已收口的旧目标**(细则在当日日志):`fc471a` 导航七项一层|`b49e02` 征询 GPT(🔴 D1 待裁定=GPT 主张拆「记录与对账」出复盘,与用户方向相反)|`071c5b` 四步|`fa6e07` 八条口径落②段+原型|`547748` 逆向 Easel(被换掉,其棒已收工)|`20a8ac` 侧栏 64px+刷新改 icon(10-10 完成)|`0a758b` 热点与选题逻辑+框图流程图(10-11 04:25 完成)|`8a649c` 征询 GPT+补细节+重画图(10-11 17:22 完成,⚠️ 属国内口径,已被 `39646d` 接续改造)。⚠️ `--kpi` 按**分号**切 ⇒ 依据里 ⛔ 不许写 `;`。
@@ -0,0 +1,17 @@
# 自动化记忆 · [检查]-[目标检查]-contentm_agent-第53棒
## 2026-10-11 21:4x · 第 53 棒(首次执行)
- 目标:**收窄热点源并加赛道过滤**(`goal_fp=8a8412`)。
- 判定:**已完成** —— 三条验收判据全部过,已写回 `goal.json.acceptance_state` 并把 `lifecycle` 改成「已完成」。
- 关键动作:判据 ② 由「🔴 不过」翻转成「过」—— 依据是第 52 棒派出的执行棒 `64a404f2` 已于 21:31 上报 done
(台账 `1d1fdce6`,`artifact` = 目标目录 `2a-落盘记录.md`),本棒**在磁盘上 grep 核验** 2a/2b 改动、归档两份、索引同步,⛔ 不只信落盘记录自述。
- 未派棒(无缺口);域锁无人持有,⛔ 未动锁、⛔ 未跑孤儿锁解除。
- 副作用(机制自带,⛔ 非故障):`--set-life 已完成` 让本区常驻 `collabd.py --supervise`(pid 10904)**优雅退出**;
换目标时由新目标的主会话重起。
- 遗留(⛔ 非验收判据,交回用户):热榜落 P2 哪一块/赛道表编辑入口是否在 P6 单列/快手与视频号无源怎么补 —— 已登记在 `2a-产品功能.md` §九 第 8 项。
### 本棒可复用的经验
- 检查会话遇到「文档判据落后于新产物」时:**文档是唯一依据**,但允许**按台账 artifact 定向核验磁盘**(grep 具体行号),
⛔ 不是"到处翻文件";核验完必须把文档与 `goal.json` 一起改齐。
- `goalctl.py declare --kpi` 不带 `--yes` 是干跑(rc=0 但一个字节没写)⇒ **必须加 `--yes` 并回读**。
@@ -0,0 +1,30 @@
# 本棒记忆 · [执行]-[产品规划]-收窄热点源并加赛道过滤层
> 排期 id `50a8f8f3-c6b5-43c0-a52c-3c01f3ddadb4`|`once`|`scheduledAt=2026-10-11T20:48`
> 本文件给**本棒的下一次运行**(若被重排)看,避免重踩。
## 结果(2026-10-11 20:57)
- **状态:完成**。会话 `f615337b-ddaa-4e4a-8d50-20243403570c`;`--report … --state done` 已上报(台账 `goal_fp=8a8412`);域锁 `--release-exec` 已释放。
- 产物落 `执行会话/目标-收窄热点源并加赛道过滤-8a8412/`:`信源收窄-短视频平台与内容社区.md`(13 225 B)|`赛道过滤层-设计.md`(23 241 B,含 F15 与 F9 扩写可粘块)|`产品框图-热点与选题-赛道过滤版.html`(34 463 B)|`功能流程图-热点到选题-赛道过滤版.html`(27 382 B)|`交付说明.md`。
- 🔴 **收口未完**:`docs/` 一个字没改(域锁只许写 `执行会话/`)。F15 与 F9 的实改、两张图同步进 `docs/pm/mcn-shortvideo-agent/` 由**主会话按两态规则**做。⇒ 若本棒被重跑,先查 `docs/pm/mcn-shortvideo-agent/prd/2a-产品功能.md` 里有没有 `F15`,有=已收口,⛔ 别重复加。
## 本目标的三条判据(`goal.json.acceptance_state`)
1. 信源清单已收窄到短视频平台与内容社区
2. 赛道过滤层已设计并落进产品功能文档
3. 框图与流程图已加上过滤层
## 复用要点(下一棒可能用得上)
- 判据核心:**「这条源产出的条目,本身能不能当一条短视频选题的开头用」** ⇒ 留 8 弃 8;弃用的每条都写了实测返回过什么。
- 过滤层插点:**分类之后、价值分之前**,**只作用于外部热点那一路**。
- 打分:`M = clamp(0,100, round(55 × (W' ÷ 2.0) + 30 × D + 15 × A))`,`W' = min(Σ命中词权重, 2.0)`,词权重 1.0/0.6/0.4;三档 55/30 · 70/40 · 85/60。
- 图用 `product-planning` 的 `diagram-design` 画(先读 SKILL.md):`self_check.py` 两张都 OK;几何自检(文字溢出/两两重叠)83 节点 ⇒ 0/0;变异对照注入重叠 ⇒ 报 1 条,证明非恒绿。
- 本机海外取数要走代理 `127.0.0.1:10800`;写图后必须**浏览器实测**几何,肉眼在缩略图上会判错。
## 遗留(已交回,⛔ 本棒未拍板)
1. 热榜这一路落在 P2 哪一块(并进 F1 vs 新增块 ⇒ 板块 40)——倾向并进 F1。
2. 赛道表编辑入口是否在 P6 单列一块(P6 5→6 块)——倾向挂在画像五维块内。
3. 快手/视频号无源:人工录入档 / 换第三方聚合,二选一。
@@ -0,0 +1,20 @@
# 自动化执行记忆 · 64a404f2
## 2026-10-11 21:2x(第 1 次执行)
**任务**:把上一棒已定设计正式落进当前权威版的两份 prd,把验收判据②「赛道过滤层已设计并落进产品功能文档」做成「过」。
**执行要点**
- 域 `docs`,抢锁 → 改 → 跑闸门 → 释放,全程未越界;越界需求(三条未拍板)没有写 `tmp/`,改为登记进 `2a` §九 第 8 项。
- 源块来自 `执行会话/目标-收窄热点源并加赛道过滤-8a8412/赛道过滤层-设计.md` §6.1/§6.2/§6.3,措辞原样落。
**结果**
- `prd/2a-产品功能.md` 改 8 处(新增 F15、F9 扩赛道表、对象字典、总表、§五/§七/§九/自检同步);`prd/2b-界面布局.md` 只改 2 处共 3 行。
- 冻结数全绿:F1–F15 无插号/页面 7/导航一层七项/板块 39/流转 20/对象 11。
- 命名闸门改前改后均为 **2061|0|27**。
- 旧版进 `归档-过期版/`(用 `git show HEAD:<路径>` 取回改前内容),索引已同步。
- 已 `--report … done`,artifact = `执行会话/目标-收窄热点源并加赛道过滤-8a8412/2a-落盘记录.md`。
**下次注意**
- 新增功能编号时,回头搜一遍文档里有没有「不许编这个号」的旧措辞(本次 §九 第 7 项撞上了,已改)。
- `--report` 对 artifact 的落点判据是拿它与 `execution_doc` 整条比,不是比目录 ⇒ 会出软提醒,属正常。
@@ -0,0 +1,12 @@
# 自动化记忆 · 6ef41b6b(目标检查会话系列)
## 2026-10-11 21:15 · 第 52 棒(目标:收窄热点源并加赛道过滤 8a8412)
- 判定:**未完成**。判据①信源收窄=过、③两张图加过滤层=过、②赛道过滤层落进产品功能文档=🔴 不过。
- 关键发现:上一棒 50a8f8f3(排期 20:48)**已跑完并上报 done**(20:57),四份产物都在目标目录;
但 `目标执行状态.md` 写于 20:42、早于产物 ⇒ 文档里三条判据还停在「无产物,未触发」。
⇒ **教训:状态文档可能滞后于产物,判据要照产物重判,不能照抄文档。**
- 动作:用 `goalctl.py declare --kpi "…" --yes` 把三条判据改齐并回读确认(lifecycle 保持「进行中」);
重写 `目标执行状态.md`(含旧依据作废清单+收口待办);派新棒 `64a404f2`(21:24,域 `docs`)去把 F15/F9 扩写落进 `prd/2a` 并补 `2b` 两句。
- ⚠️ `state.py` 在工作区根不存在(历史已知);`taskgraph.json` 也不存在 ⇒ 三路判定只跑通台账路与判据路。
- ⚠️ 判据②的客观卡点:执行棒受域锁只能写目标目录,`prd/2a` 在 `docs` 域下 ⇒ 派棒必须显式占 `docs` 域才能落盘。
@@ -0,0 +1,14 @@
# 第 51 棒 · 目标检查(目标:收窄热点源并加赛道过滤 / 8a8412)
## 2026-10-11 20:41 执行结果
- 判定:**目标未完成**(三条验收判据全未过)。
- **未派新棒**:同目标的执行排期 `50a8f8f3`「[执行]-[产品规划]-收窄热点源并加赛道过滤层」已在册且 ACTIVE,`scheduledAt=20:48`,比本棒核对时刻晚 7 分钟 ⇒ 再派即重复。
- ⚠️ 本轮触发通报称「没有别的待执行排期」与事实不符(实有 3 条 ACTIVE once),已按「自己 list 一遍」的规矩核过。
- 产出:补写 `执行会话/目标-收窄热点源并加赛道过滤-8a8412/目标执行状态.md`(原先是空模板);把 `goal.json` 的 `acceptance_state` 取值从 `未过` 规范为 `🔴 不过`,回读已确认。
- `lifecycle` 未改,仍「进行中」。
## 给下一棒的提示
- 等 `50a8f8f3` 跑完再判:核它有没有把产物落进 `执行会话/目标-收窄热点源并加赛道过滤-8a8412/`,落了才改判据。
- 本区 `state.py` 不存在、`taskgraph.json` 不存在 ⇒ 三路判定实际只有两路,别写成三路齐全。