Files

123 lines
25 KiB
Markdown
Raw Permalink 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)。
## 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 节等拍板,未动手。