Files

157 KiB
Raw Permalink Blame History

2026-10-08 工作日志

00:2x · 目标检查会话 第 11 棒(自动化 6ff7e206)

  • 目标「重写 5 份竞品分析文档并重新生成 MCN 短视频整合营销需求文档」:判定未完成。
  • 台账 tmp/supervise-inbox/tasks.json 10 条全 done、队列空、无僵尸件;taskgraph.json 不存在;goal.json.acceptance_state 7 条 = 5 过 / 2 不过(判据 5 技能包说人话、判据 6 vibe-product 六份),与 目标执行状态.md 逐条一致。
  • L3 现测坐实「落地未做」:全局技能目录 16 份目标文件 mtime 20:23~21:53 < 新稿 23:01–23:08;vibe-product proto-board/ 六份 mtime 01:46–01:47 < 新稿 23:29–23:31。
  • 处置:未派棒、未改 lifecycle、未改 acceptance_state、未跑 --ensure-goal-dir(本区 roles = {})。
  • 判定书已写入 执行会话/目标-重写5份竞品分析文档并重新生成MCN短视-72111e/目标执行状态.md(新增「第 11 棒」节,原第 10 棒节改标「上一棒判定」)。
  • 输入缺失(记账):派活原文指定先读的 state.py、tmp/supervise-inbox/taskgraph.json 在本区均不存在。
  • 机制侧观察:同一目标已连建 11 棒检查会话,第 8~11 棒结论完全相同(残 2 条跨边界落地、机制侧不可达)⇒ 存在重复空跑;未动代码。

00:50 · 目标检查会话 第 12 棒(自动化 8da8ec4c)

  • 同一目标:判定仍未完成,与第 8~11 棒逐条相同(台账 10 条全 done、taskgraph.json 不存在、判据 5 过 / 2 不过)。
  • L3 现测复核(00:50):判据 5 落点 product-planning/ 五份 SKILL.md mtime 01:20/20:23/21:29/21:45/21:53 < 新稿 16 份 23:02–23:08;判据 6 落点 vibe-product proto-board/ 六份 mtime 01:46–01:47 < 新稿 23:29–23:31 ⇒ 两处落地确实未做。
  • 处置:未派棒(残项唯一剩余动作是域外/跨区写入,本区任务会话域门禁写不了;落地步骤已完整在 NEED-USER.md 第 2/3 条)、未改 lifecycle(保持「进行中」)、未改 acceptance_state(值域已规范,无字可改)、未跑 --ensure-goal-dir(roles = {})。
  • 判定书已写入同目标目录 目标执行状态.md(新增「第 12 棒」节,原第 11 棒节改标「上一棒判定 · 历史」)。
  • 待用户拍板:①「全量」口径 16/19/83;② 检查会话连棒阈值是否收窄(已连 12 棒重复空跑);③ 两条跨边界落地由谁执行(主会话/用户)。

01:20 · 目标检查会话 第 13 棒(自动化 3a88f456)

  • 同一目标:判定仍未完成,与第 8~12 棒逐条相同。机器侧现取 --check-status ⇒ 目标状态 = 进行中|队列未完成 = 0|静默 2.3 分钟|会话全结束|已建检查会话 = 13 棒。
  • L3 现测复核(01:20):判据 5 落点 product-planning/ 四份 SKILL.md mtime 10-07 01:20/20:23/21:29/21:53 < 新稿 16 份 23:02–23:08;判据 6 落点 vibe-product proto-board/ 六份 mtime 01:46–01:47(research 4 份/prd 2 份)< 新稿 23:29–23:31 ⇒ 两处落地确实未做。
  • --domain-status 已跑:在册域锁 1 条(ai1net-dsh-anywhere ← [协作]N9复测-2248),锚点词表一致 ✅。
  • 处置:未派棒、未改 lifecycle、未改 acceptance_state(值域已规范)、未跑 --ensure-goal-dir(roles = {})、未动代码。
  • 判定书已写入同目标目录 目标执行状态.md(新增「第 13 棒」节,原第 12 棒节改标「上一棒判定 · 历史」)。
  • 机制侧:连建 13 棒、第 8–13 棒结论完全相同 ⇒ 只要 lifecycle 仍「进行中」且队列空,常驻会继续建第 14 棒,残项机制侧不可达 ⇒ 持续空跑,收口须用户定。

01:50 · 目标检查会话 第 14 棒(自动化 1baf3a23)

  • 同一目标:判定仍未完成,与第 8~13 棒逐条相同。机器侧现取 --check-status ⇒ 目标状态 = 进行中|队列未完成 = 0|静默 2.4 分钟|会话全结束|已建检查会话 = 14 棒;check-agent.json 记 round=14 / reason=queue-empty / idle_min=26.9。
  • 三路核对:台账 10 条全 done(无 pending/running/blocked ⇒ 无僵尸件);taskgraph.json 不存在;goal.json.acceptance_state 7 条 = 5 过 / 2 不过(判据 5 技能包说人话、判据 6 vibe-product 六份)—— 与 目标执行状态.md 逐条一致,值域已规范 ⇒ 无字可改。
  • L3 现测复核(01:5x):判据 5 落点 product-planning/ 五份 SKILL.md mtime 01:20/20:23/21:29/21:45/21:53 < 新稿 16 份 23:01–23:08;判据 6 落点 vibe-product proto-board/ 六份 mtime 01:46–01:47 < 新稿 23:29–23:31 ⇒ 两处落地确实未做(读数与前 3 棒相同,无变化)。
  • --domain-status 已跑:在册域锁 1 条(ai1net-dsh-anywhere ← [协作]N9复测-2248),锚点词表一致 ✅;本目标域目录 执行会话/ 空闲。
  • 处置:未派棒(残项唯一剩余动作是域外/跨区写入 E:/ProgramData/.workbuddy/skills/product-planning/ 与 E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/,本区任务会话域门禁写不了 ⇒ 派了必撞门禁;落地步骤已完整在 NEED-USER.md 第 2/3 条 ⇒ 无新增可派内容)、未改 lifecycle(保持「进行中」)、未改 acceptance_state、未跑 --ensure-goal-dir(roles = {})、未动代码与常驻。
  • 判定书已写入同目标目录 目标执行状态.md(新增「第 14 棒」节,原第 13 棒节改标「上一棒判定 · 历史」)。
  • 机制侧:连建 14 棒、第 8–14 棒结论完全相同 ⇒ 持续空跑,收口(收窄连棒阈值/用户结束目标)须用户定,超出本轮范围。
  • 待用户拍板(已连提 7 棒):①「全量」口径 16/19/83;② 连棒阈值是否收窄;③ 两条跨边界落地由谁执行。

02:1x–02:2x · 主会话:换目标后开工与派活(MCN 产品界面)

开工四查(全部现取,非快照):

  • 常驻在位:pid 71532,心跳 02:16:18,round=12,argv0 指向本区 .workbuddy/collab/collabd.py(旧目标收口后机制自己重新拉起的)。
  • 目标=「根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面」,lifecycle 进行中,判据 5 条全「未过」。
  • 台账 10 条全 done(旧目标遗留,非欠项);域锁在册 1 条(ai1net-dsh-anywhere ← [协作]N9复测-2248),锚点词表一致;--domain-check 执行会话 = ✅ 可派|域空闲。

🔴 用户两条口径纠正(已直接落进派活 prompt):

  1. 「第三部分为什么是 open design,选择了 oil-ui-pro,应该不需要使用 open-design」⇒ 本次③段全程不引用 open-design。 核实读数:全局技能根 15 个技能无 open-design;本工作区 .workbuddy/skills/ 只有 aigc-idea-impression;open-design 只存在于 vibe-product(vibe-product/.workbuddy/skills/open-design、vibe-product/open-design、vibe-product/技能库/open-design)⇒ 本工作区本来就不可得。 ③段技能文档那句「本段默认主线」是 2026-10-02 定的全局通则(references/stage-delivery/SKILL.md 第 3/21/25 行),不动;本项目口径= oil-ui-pro(方法+独立评审)+ tiaoyue(定调/令牌/组件)+ 本段自家两份(references/layouts-tooling.md 18,797 B、references/execution-runbook.md 39 KB)。 ⭐ 工具型页面的版式技能文档本就规定走自家 layouts-tooling.md(第 94/312 行),不算回落;真缺口只有 open-design 的 craft/ 13 份工艺数值判据 ⇒ 本次无来源,⛔ 不编。
  2. 「应该要先完成 1 2步 在进行第3步」⇒ ①②段先于③段。

现场核对(1a 到底是什么):

  • docs/pm/mcn-shortvideo-agent/research/1a-需求文档.md 是汇总型需求(8 场景 S1–S8/14 功能 F1–F14/假设 A1–A4/风险 R1–R4/9 条待复核),非 grill 澄清产出。
  • 项目目录只有这一份 ⇒ ①段 1c 画像/1d 策略/1e 场景未成文(1a 的 §三/§四/§五 只是草案);1b 竞品在 content-workbench 项目下已有,可跨项目引用;②段 prd/ 整目录不存在。
  • ⚠️ 摘要里记的 设计说明.md 不存在(工作区根与全盘 find 均无)⇒ 不按它推进。

派活:新建一次性排期 [执行]-[开源项目调研]-MCN产品①②段补齐(id 844f5231,02:26 触发,cwds 本区)。 任务=按①段判据把 1c/1d/1e 三份成文(⛔ 不许把 1a 草稿原样复制充数)+ 按②段判据出「功能清单」与「界面布局」两份;⛔ 本轮不做③段。 域目录 执行会话;落点 执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687/(目录尚未创建,由该会话建;collabd.goal_dir_name() 实测名,⛔ 不改)。正式归档路径 docs/pm/mcn-shortvideo-agent/ 在域外 ⇒ 本轮不写,收口后由主会话搬。 ⚠️ prompt 里 bash 写成显式路径 E:/ProgramData/.workbuddy/binaries/PortableGit/versions/1.2.0/usr/bin/bash.exe(本机裸 bash 会落到 WSL、路径被吃 —— 既有实测)。

有意未做:未改 goal.json 判据(目标本身没变、仍是③段;①②由棒次次序约束);未改③段技能文档里「默认主线」那句(全局通则)。

02:2x–02:4x · 用户令:③段默认主线由 open-design 改成 oil-ui-pro

用户原话:「③段技能文档 stage-delivery/SKILL.md 第 3/21/25 行把它写成「本段默认主线」,默认改为 oil-ui-pro」⇒ 本日志上一节最后那条「未改技能文档默认主线」的记录到此作废。

改动范围(三份文件,共 17 处):

  • E:/ProgramData/.workbuddy/skills/product-planning/references/stage-delivery/SKILL.md(12 处):frontmatter description;供给表三行(oil-ui-pro 升为「默认主线」、自带样式库升为「默认定调来源」、open-design 降为「可选补强,装了才有」);⭐ 说明句;line 30 加统一读法;「不可得时的回落」整块改写成「默认主线不靠它」;子步表 3a/3d 两行;必读表改成三列(环节/读什么/供给);定调来源两处候选换序(自带库首选);3a 第 0 步供给核对;D1 定调;3b 构建六步;tooling.md 分工;Gate-1 供给核对项;硬约束「供给默认是 open-design」。
  • E:/ProgramData/.workbuddy/skills/product-planning/SKILL.md(5 处):选型表「设计规范文件」行、「审美方向/风格定调」行、「多方向比选/独立评审打分」行;供给两段说明;「多数页面走 open-design 主线」句。
  • E:/ProgramData/.workbuddy/skills/product-planning/references/stage-delivery/references/execution-runbook.md(5 处):供给声明;声明制「主干与挡位」示例;必读分工;§1 加统一读法;「定调来源唯一」改自带库首选。

统一读法(三份各写一次,口径一致):凡出现 open-design/... 路径,一律按「该工作区装了 open-design 才有」读;没装就按默认主线走(oil-ui-pro 方法 + 自带样式库定调 + 本段自家 execution-runbook.md 与 layouts-tooling.md 判据),craft 独有的那几项(反 AI 味/无障碍/表单校验/动效纪律)明说「本次无供给来源」,⛔ 不编。

核对读数:

  • 加粗 ** 计数与改前逐份一致(9 / 0 / 0)⇒ 没把「说人话」那轮清掉的加粗又带回来。
  • 命名闸门 check_naming.py --root <技能包>:连跑 14 次,全部 通过 46 | 失败 0 | 提示 4;4 条提示都是 _留痕/ 与废止说明里的旧词,正当。
  • ⚠️ 闸门首跑出现 通过 45 | 失败 1,失败行被 tail -20 截掉、未留证;此后 14 次连跑全部 0 失败 ⇒ 判为一次性读盘毛刺、未能复现,未改判据。后续再出现须把完整输出落盘再读。
  • 备份:归档/③段默认主线改oil-ui-pro前-20261008/(三份原文件)。改前 md5:61b8e4a8…(SKILL.md)/ed755968…(stage-delivery/SKILL.md)/9df4175e…(execution-runbook.md)。

02:3x · 🔴 撞车事件:另一个会话把 open-design 随段携带,两会话并发改同一批全局技能文件

用户问「是修改的全局技能吗」,核实过程中发现同一批文件在我改完之后又被写了(stage-delivery/SKILL.md 02:27 48,254→48,330 B;execution-runbook.md 02:28 39,752→39,858 B;layouts-tooling.md 02:28 18,797→18,811 B)。用户当场确认:「是另一个会话改的,把 open-design 当成可选技能」。

那个会话做了什么:

  • 把 open-design 整棵拷进技能包:<全局技能包>/references/stage-delivery/assets/open-design/,64 MB / 4177 个文件(源:nexu-io/[email protected],Apache-2.0,本地裁剪版,版本标记 0.23.1-crop1;体量与 vibe-product/.workbuddy/skills/open-design 的 64M 吻合)。
  • 把引用口径从技能名改成段内相对路径 assets/open-design/...,并把它的定位改成「独立技能 · 可选择使用」。
  • 它的改动与我的改动叠在同一份文件上、彼此不冲突:我的「默认主线 = oil-ui-pro」三条句子全部还在(第 3/17/21/25 行等),它的路径改写也在。

我做的对齐(13 处):

  • 🔴 发现并修掉残留矛盾:它只改了部分路径,导致 13 处仍写着「装了才有/工作区装了/没装/外部供给」—— 而该件现已随段携带、恒在,「装了才有」全错。改法是统一成「选了它才用(本段自带)」:总入口 SKILL.md 4 处(95/98/101/103)、stage-delivery/SKILL.md 5 处(118/120/122/194/197)、execution-runbook.md 4 处(6/38/67/79)。
  • execution-runbook.md:79 的立论也改了:原写「open-design 是外部供给,会被上游更新」⇒ 现为随段携带的本地裁剪版,上游更新不会自动跟进来(供给核对的理由随之变化)。
  • 新增 assets/open-design/ATTRIBUTION.md:登记来源仓库/版本/许可(Apache-2.0)/裁剪方式/使用口径(默认主线是 oil-ui-pro,本件只作补强)。
  • 🔴 合规缺口(记账):该目录未随附 Apache-2.0 的 LICENSE 全文,也没有上游 NOTICE(find -iname "*license*/*notice*/*attribution*" 为空)。已写进 ATTRIBUTION.md 并在回复里提报。

复核读数:

  • 残留口径 grep:仅剩 stage-delivery/SKILL.md:48 一处含「装了」字样,是否定句(「不再依赖『工作区级装没装』」)⇒ 正当,已对齐。
  • 命名闸门连跑 3 次:通过 46 | 失败 0 | 提示 4。
  • 三份当前:SKILL.md 27,317 B / stage-delivery/SKILL.md 48,400 B / execution-runbook.md 40,000 B。

🔴 闸门首跑 45/1 的根因(结论订正):此前记的「一次性读盘毛刺」证据不足,实际最可能的原因是并发写者 —— 我跑闸门的那一刻,另一个会话正在改同两份文件,读到半更新态。判据:那两份文件的 mtime(02:27/02:28)正落在我连跑闸门的窗口内;check_naming.py 经 grep 确认无任何写盘动作(已排除「脚本自己改文件」)。⇒ 纪律:全局技能包存在多会话并发写,改前先看 mtime、改后必复跑闸门。

另:①②段那一棒(自动化 844f5231,02:26 触发)已在跑:执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687/ 下 research/prd 两个子目录已建。

02:2x · 目标检查会话 第 15 棒(自动化 788c4126,只做「核对目标完成状态」)

  • 判定:目标未完成(换目标后零产出)。三路并集:① 台账 tasks.json 10 条全 done,但 goal_fp 全为 5199a6/72111e ⇒ 当前目标 d85687 零记录;② taskgraph.json 本区不存在 ⇒ 此路无数据;③ goal.json.acceptance_state 5 条全 未过(不在白名单 ⇒ fail-closed ⇒ 未过)。
  • 现场:当前目标(标题「根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面」)于 02:15 换目标时声明;目录短哈希 d85687 与 sha1(标题)[:6] 实测一致;执行会话/ 下只有 5199a6/72111e ⇒ 当前目标目录与《目标执行状态.md》均不存在 ⇒ 无法按文档逐条交叉核对验收结论。
  • 门禁/现场:--domain-status 在册域锁 1 条(ai1net-dsh-anywhere ← [协作]N9复测-2248),锚点词表一致 ✅,本目标域 执行会话 空闲;常驻 pid 71532 心跳 02:19:58 round=34,argv0 指本区 ✅。
  • ⛔ 未派新棒:在途已有 [执行]-[开源项目调研]-MCN产品①②段补齐(844f5231,once 02:26,automations/844f5231-…/ 记忆目录不存在 ⇒ 尚未跑过)。理由三条:再派=双投;②段未成文前 ③段无从开工(用户 2026-10-08「先完成 1、2 步再第 3 步」);两条会争同一域锁。
  • ⛔ 未改 lifecycle(未完成)、未改 acceptance_state(无文档可依)、未跑 --ensure-goal-dir(roles={} ⇒ 会把检查会话登记成主会话;且目标目录按主会话口径「由该棒建」)、未动代码与常驻。
  • 记录在案(本轮不修,机制变更不许检查会话自作主张):① 本区无 state.py/无 taskgraph.json,而 prompt 第 1/3 项与 collabd.py --gap 提示词仍在引用 state.py;② goal.json.execution_doc 换目标时未跟着换,仍指旧目标 5199a6/目标执行状态.md(后续检查棒会读错判定书);③ acceptance_state 用了非规范值 未过(规范=过|依据/🔴 不过|依据);④ 本轮在有在途执行棒时仍被派发 —— 现场读数如实记下,未读闸门代码、不臆断是否为缺陷。

02:26–02:5x · 任务会话 [执行]-[开源项目调研]-MCN产品①②段补齐(sid fd655683)· ✅ done

目标:把 MCN 短视频整合营销工作台的①②段产出补齐(③段本轮不做,用户口径「先完成 1 2步 在进行第3步」)。

落盘(全在目标目录 执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687/,约 123 KB):

  • research/:1a-需求文档.md(逐字复制件+落本目录说明)|1b-竞品分析.md(跨项目引用登记,不重写本体)|1c-用户画像.md(3 画像)|1d-产品策略.md(九节画布+5 条关键假设)|1e-使用场景.md(8 条用户故事)
  • prd/:2a-产品功能.md(14 条功能六字段+不做清单对照+六项治理在条目内)|2b-界面布局.md(八页骨架)
  • 目标执行状态.md

①段就位判定:1a ✅(汇总型)/1b ✅ 跨项目⇒引用即可/1c·1d·1e 🔴 缺 ⇒ 本轮按各自方法论成文(⛔ 未把 1a 草案复制充数)。

②段骨架(③段的直接依据,已冻结):八页 = P1 矩阵总览|P2 选题雷达|P3 资产库|P4 创作台|P5 发布中心|P6 账号画像|P7 复盘台|P8 记录与对账;一级导航三组照 1a §八 的三个入口,P6 跨组;页型判为工具型页面。

本轮守住的几条:① 1a 的 9 条待复核与 A1–A4 一条未当事实用,2a §三 逐条标了「依赖哪条/不成立会怎样」,9 条全落「待实现且已排定确认时机」;② 文首写「上游状态」(1b 重写与复核已完成:9 条 2 改 7 不改;引用处标证据等级);③ 说人话自评 7 份逐份给分(46–47/50,门槛 45)。

两处现场更正(供机制记账):

  • 🔴 派活原文给的 1b 路径 docs/pm/content-workbench/research/1b-竞品分析.md 在本工作区不存在(docs/pm/ 下只有 mcn-shortvideo-agent/research/1a-需求文档.md)。真落点在 执行会话/目标-调研5个开源内容工作台项目并生成分析文档-5199a6/docs/pm/content-workbench/。
  • 🔴 docs/pm/mcn-shortvideo-agent/research/1a-需求文档.md 是旧版(上游状态行停在「正在重写、9 条待复核」),与 72111e 那份内容不同。

悬空项(未编答案):投放这段没有场景(1a 待复核第 8 条);机构负责人角色在 1a 里悬空(S7 用了、§四 没列);1c 是零访谈画像(已在文首明说)。

机制侧(未处置):goal.json.execution_doc 仍指旧目标 …-5199a6/目标执行状态.md(需 main 席位跑 --ensure-goal-dir);本目标连建 15 棒检查会话、第 8–14 棒结论相同;acceptance_state 5 条③段判据里「页面骨架来源已写明(②段缺失时标假设)」的前提升口已不成立(②段已补齐)⇒ 措辞可能要主会话顺手调。

上报:--report fd655683… --state done --artifact "…/目标执行状态.md" ⇒ OK;域锁 --release-exec 已释放。域外归档 docs/pm/mcn-shortvideo-agent/{research,prd}/ 留给主会话。


02:3x–02:5x · 主会话:A 方案落地 —— ③段供给链从「散布复述」收敛为「单一可信源」

缘起:用户问「默认主线改成 oil-ui-pro 这一个设定为什么要改这么多地方 是不是 本身就是问题」⇒ 诊断结论是复述式写法:③段的供给关系被复述约 40 处,改一次必然漏(实测漏 13 处)。用户令「按照建议处理」⇒ 执行 A(立权威供给块,其余引用);B(机器可读清单+校验脚本)作下一层加固,C(反查护栏)只当临时护栏,本轮均未做。

A 方案落盘(本轮,<全局技能包>/product-planning/ 下 5 份文件):

  • references/stage-delivery/SKILL.md(权威块所在,现 46,xxx B):
    • §供给 块(17 行起)已含 6 行表:方法主线|定调与令牌|版式骨架|工艺数值判据|独立评审协议|多方向比选,每行给「默认来源 | 可选来源 | 管什么 | 用在哪」。
    • 本轮新增边界句(防边界含糊):本块管「有哪几档、谁默认、路径从哪个根起」;各档内部具体篇目(如可选档工艺判据下某一篇)属执行细节,留在 runbook 各步里,不算复述。
    • 规则句示例行名订正:§供给·定调档 → §供给·定调与令牌(取表左列真名)。
    • 正文 9 处复述点改引用:frontmatter description、禁令查询(craft/ 篇目列表 → §供给)、一条例外(「craft 里没有」→「供给件里没有」)、限载 ×2(去掉「153 套 / 13 份」计数)、续加新风格(「与 open-design 同形」→「与可选档同形」)、第 0 步供给核对(三处路径 → 「可选来源那三处,见 §供给 表」)、D1 怎么选(去 153)、D1 套内读法(「open-design 那档」→「可选档那套」)。
  • 总入口 SKILL.md(27,xxx B):
    • 选型表 4 行改引用(评审原型页/设计规范文件/审美定调/多方向比选)。
    • 正文 6 处:101 整段重写为「六档只在③段 §供给 定义一次,本入口不复述」;103「不与可选档缝成流水线」;105「两个技能」→「供给件」;107 页型分流改引 §供给·版式骨架;109「stage-delivery 与 craft」→「默认档与可选档」;111 对比度判据改引 §供给·工艺数值判据。
    • 另修 2 处陈旧口径:122「不需要 open-design daemon 在场」→「不需要任何外部服务在场」;215 反面清单「两个页面设计技能(open-design / oil-ui-pro)」→「供给件(③段自带 oil-ui-pro + §供给 各档落在 assets/ 下的件)」。
  • references/stage-delivery/references/layouts-tooling.md(18,xxx B):第 3 行硬路径 → §供给·版式骨架 可选档;第 234 行同;第 238 行「craft/animation-discipline.md」→ §供给·工艺数值判据 动效那一份。
  • scripts/check_naming.py:第 6 行注释「判据归 open-design/craft/」→「归③段 §供给·工艺数值判据」。

核对读数(全绿):

  • 加粗 ** 计数逐份与基线完全相等:9 / 14 / 2 / 22 / 48(改前改后同)。中途一次手滑给 §供给 边界句加了 **内部**(+2),当场改回。
  • 闸门:通过 46 | 失败 0 | 提示 4。
  • 引用行名与表左列全对(11 个去重形态里,除带尾随上下文的截断外,无一别名)。
  • 残留 open-design / craft/ 提及经逐条归类后全部正当:assets/design-capture/* 与 assets/design-systems/design-system-tiaoyue/* 是逐字搬入的第三方件(纪律:不改供应商件内容);_留痕/ 是历史留痕;③段 SKILL.md 第 374 行是修订记录(dated changelog,记 2026-10-02 那次重接)。

⚠️ 闸门调用有个坑(记账):只给 --root . 会 FAIL —— 脚本要靠 --ws 找「含 docs/pm 的那一层」来跑产出白名单检查,缺了就报 [FAIL] 找得到工作区。���确调用: python scripts/check_naming.py --root . --ws "E:/ProgramData/AIProject/content_marketing_agent" ⇒ 46/0/4。

未做 / 待办(可推翻):

  • B 方案:assets/supply.json 机器可读清单 + 校验脚本查「还有没有复述」——未开工。
  • C 方案:反查脚本(发现复述即报)——未开工。
  • runbook 里约 30 处 craft/xxx.md 步级篇目引用保留没动:判定为「档内执行细节」(§供给 已把这条边界写成显式规则),不构成「谁是默认 / 路径在哪」的复述。若认为应一并收敛,说一声即可推翻。
  • 待拍板三项(技能包遗留):全量口径 16/19/83;product-strategy.md 与 user-personas.md 英文模板被整段译中;7 份方法论文末新补《输出检查》章节。

02:4x–03:0x · 用户令「排查产品规划技能中是否还有类似问题一并处理,然后在全面检查一遍」

做法:先 read-only 摸结构(18 份 md / 无 assets 时 3430 行)→ 写复述检测器按「跨文件最大重复簇」聚合(tmp/dup_scan2.py,163–164 簇)→ 逐簇判定「会变的事实 vs 正当留痕」→ 收敛 + 修漂移 → 把判据脚本化 → 变异对照自检。

一、修掉 2 个真漂移(不是复述,是事实已经打架)

  1. 🔴 停线规则三段 vs 一段对不上:stage-delivery / stage-discovery / stage-proto-doc 都写「只有三种情况停」,stage-requirements 写「四种」,总入口 §执行规则 写的是四条(多一条「①段末的方案确认」)。⇒ 四段一律改成「停线规则见 product-planning 的「执行规则」,⛔ 本段不复述」,口径收归总入口。
  2. 🔴 旧产物路径残留 4 处:usage-scenario.md 的产出声明还写 strategy/31-使用场景.md;stage-proto-doc/SKILL.md 输入表还写 strategy/30-产品策略.md;总入口「产物落哪」表与「②③只读」清单还列着已废的 ux/、ux/diagrams/、ux/state-machine.md。⇒ 全部改成现行 research/1a~1e、prd/。

二、⚠️ 闸门自己有 bug,把这类病静默藏住了(本轮最大发现)

  • check_naming.py 的 DEPRECATED 提示循环用一个 stale 变量 t(该用本轮读到的 tt):它前面先跑了一个空循环只赋值 t、什么都不做,紧接着的 if old in t 就永远在检查「上一个循环最后一个文件」。⇒ 旧名提示恒不触发,上面那 4 处旧路径一处都没报出来(提示数当时只有 4,修好后 25–29)。
  • 另新增 DEAD_PATHS 检查(FAIL 级,不只是提示):strategy/、ux/ 这类已废目录形态出现在正文的产出/只读/必读位置即报红;行内含「旧/已废/已改名/曾/历史上/移进/移到/改为/废止/原」等废止标记时豁免(那是正当留痕)。
  • 修好后首跑即报出那 4 处,正是上面第一条要修的。

三、收敛复述(会变的事实 → 单一定义 + 其余引用),权威落点

  • ②—③ 边界(跨 5 文件 ~19 处)⇒ 权威=②段 SKILL.md 的 §②—③ 交接口(新立唯一权威块,含两侧逐行对照 + 用户原话唯一出处)。③段那张平行表删除;总入口、①段、runbook、create-prd、②段自身 4 处完成标准/反面清单全部改引用。
  • 可选档骨架名单(营销页向那 8 个)(10 处 / 4 文件)⇒ 权威=layouts-tooling.md 开头(名单 + 为什么工具型不能套,只写一次);§供给·版式骨架 只登记结论。
  • 「说人话」门槛数值(6 处)⇒ 权威=总入口 §执行规则 内容准则条;各段只留「已过内容准则,评分 X/50」的留证要求。
  • 对比度门槛数值(3 处)⇒ 权威=runbook 的数值判据段(只登记一次)。
  • 设计契约十二字段的展开清单 ⇒ 权威=runbook §2.1;③段原本把它又铺了一遍,改为引用。
  • ②—③ 定案用户原话(6 处)⇒ 只在②段 §②—③交接口 出现一次。
  • 1b 两体例的定案原话(6 处)⇒ 只在 competitor-analysis.md 出现一次。
  • grill-me 的 A / B 节火力点(4 处)⇒ 只在 grill-me.md 定义。

四、把「单一可信源」做成机器可查(原 B/C 方案的正身)

  • check_naming.py 新增 AUTHORITY 登记表 + 检查:每条 = 「一个会变的事实 → 唯一定义处 → 禁止复述的正则」。除定义处外任何 md(排除 归档/、_留痕/、assets/、_superseded*、含废止标记的行)出现该模式即 FAIL。当前 9 条全绿: ②③边界 | 停线规则(authority: None = 全包禁写)| 可选档骨架名单 | 说人话门槛 | 对比度数值 | 契约字段展开 | ②③定案原话 | 1b 定案原话 | A/B 节火力点。
  • 变异对照(用户硬要求):向 stage-proto-doc/SKILL.md 注入一条含 4 类复述的探针行 ⇒ 4 个 FAIL 全部命中(停线规则/骨架名单/对比度/悬空旧路径);还原 ⇒ 全绿。判据不是恒绿。
  • ⚠️ 中途一次判据过宽:归②段|归③段 把「骨架归②段」这类正常行文也算成复述 ⇒ 收紧成只匹配表头形态 归②段(…)| 归③段(…),并加留痕豁免。

五、顺带查出的 2 处真残留(HINT 修好后浮出来)

  • grill-me.md 第 69 行还写着「在 1c 产品定位与场景 里不得当作事实使用」——1c 产品定位与场景 是已废子步名,现行是 1d 产品策略 / 1e 使用场景。⇒ 改为「1d 产品策略与 1e 使用场景」。
  • usage-scenario.md 第 88 行引用 11-竞品分析.md ——已废产出名,现行 1b-竞品分析.md。⇒ 改。

六、读数(全绿)

  • 闸门:通过 2059 | 失败 0 | 提示 25(提示里 13 条在 _留痕/,其余 11 条逐条确认为正当废止说明/历史事故记录)。
  • 加粗 ** 计数逐份回到上轮基线:9 / 14 / 2 / 22 / 48(本轮新写的强调句已全部压平)。
  • 脚本 py_compile 通过。
  • 复述簇总数 164 → 159(剩下的多是 frontmatter description、模板文件头声明、URL 清单这类正当重复,以及「统一引用句式」这种看起来像重复、其实是引用的)。

有意保留(可推翻):各段 SKILL.md frontmatter description 里的段名/子步名(路由必需,属「同一事实的多入口声明」而非复述);每份 references/*.md 开头的「本文件是 xx 的方法论文档」模板句;stage-discovery 的反面清单里仍保留「1b 只交汇总体」等价条目(短句,是 1b 自己的反面清单)。


02:5x 目标检查会话 · 第 16 棒(automation a67efdc7)

判定:目标「根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面」= 🔴 未完成。

依据(三路取并集):

  • 台账 tasks.json 11 条全 done、无 running 僵尸件;collabd-state.json 的 queue_info= pending 0 / running 0 / blocked 0 ⇒ 队列空。
  • 任务图:tmp/supervise-inbox/taskgraph.json 全工作区搜不到(本轮该路无判据)。
  • goal.json.acceptance_state 5 条全「未过」,且全是③段判据(DESIGN.md 契约与令牌表/原型 HTML 可点通/tiaoyue+oil-ui-pro/页面骨架来源/产物落点)。
  • 目标执行状态文档 …-d85687/目标执行状态.md §D 自述:本轮做的①②段不在这 5 条判据范围内,③段未开工。⇒ 文档与 goal.json 一致,无需写回。

处置:建 1 条 once 执行棒 —— [执行]-[开源项目调研]-MCN工作台③段界面交互,id 34ab0198-d0fa-4e9d-978b-6c7f40a2978a,scheduledAt=2026-10-08T03:00,cwds=E:/ProgramData/AIProject/content_marketing_agent(正斜杠,与既有 29 条排期同形)。域取 执行会话(--domain-check 判空闲可派;与上一棒 ①②段 同一域、且该域的写边界正好罩住目标目录,避免「产物落点」与「域门禁」互相打架)。⛔ 未改 lifecycle(保持「进行中」)—— 没做完不许标完成。

四处理场缺口(照实记)

  1. 派活原文第 1 项 state.py 在本工作区根本不存在(工作区根无此文件);第 3 项 taskgraph.json 同样不存在。
  2. goal.json.execution_doc 仍指旧目标 …-5199a6/目标执行状态.md(登记于 2026-10-07 17:00)—— 旧账,修法只能由 main 席位跑 --ensure-goal-dir。
  3. acceptance_state 的值写作 未过,不在规范取值域(应为 🔴 不过|…);本轮未改(写回属"已完成"分支的活)。
  4. 技能里的「文档合同」写的是 <目标目录>/目标执行状态.md 由目标检查会话写,而本目标 14 棒检查会话都没写(含本棒)⇒ 合同与实况有差。

常驻在位:pid 34556,心跳 age 3.2 s,argv0 指本区 .workbuddy/collab/collabd.py。


04:2x 目标检查会话 · 第 17 棒(automation d28817a0)

判定:目标「根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面」= ✅ 已完成。

依据(三路取并集):

  • 台账 tasks.json 12 条全 done(新增第 12 条 34ab0198=③段界面交互,t_end 04:20),无 running 僵尸件 ⇒ 队列空(check-agent.json 的 reason=queue-empty、queue_pending=0 印证)。
  • 任务图:taskgraph.json 本工作区不存在(该路无节点,⛔ 不是"未完成")。
  • goal.json.acceptance_state 5 条原本全 未过;目标执行状态文档 §10.3 逐条给「✅ 过」,与 goal.json 不一致 ⇒ 按规则以文档为准。

处置(本轮做的两件事):

  1. goalctl.py declare --kpi "…" --yes(by=本会话)把 5 条判据写回规范写法 过|依据,已回读 goal.json 确认(5 条齐全、无 ; 截断)。
  2. collabd.py --set-life 已完成 --by "…" ⇒ 进行中 → 已完成;常驻程序随之优雅退出(pid 34556,因"目标已完成")—— 属设计行为,⛔ 不是故障。

产物文件级取证(不是只信文档):…-d85687/ui/ 下 DESIGN.md(47.8 KB)、mcn-workbench.html(130 KB)、3b-实测记录.md、3c-GPT会诊.md、3d-审查报告.md、_tools/(3 脚本)、_gate_shots/(23 PNG) 全部在位;prd/2b-界面布局.md、research/ 五份齐。

四处照实记的缺口(本轮无权处置)

  1. 派活原文第 1 项 state.py 本工作区不存在;第 3 项 taskgraph.json 同样不存在(与第 16 棒同)。
  2. goal.json.execution_doc 仍指旧目标 …-5199a6/目标执行状态.md —— 未清;修法只能 main 席位跑 --ensure-goal-dir。
  3. 目标执行状态文档 §10.5 的 B-15(≤767px 一屏 <6 行,自检红)与 §10.7 的 6 条人工确认项(含假设 1/2)仍悬空 —— 但不在 acceptance_state 的 5 条之内 ⇒ 未据此判未过。
  4. 文档 §七.B 两项域外动作(搬 docs/pm/mcn-shortvideo-agent/、覆盖旧 1a)仍等主会话。

⛔ 本轮未派活(目标已完成),也未动域锁(--domain-status 显示仅 1 条在册域锁,属他区会话,与本目标无关)。

08:0x · 主会话:用户问「之前的目标完成了吗」—— 全量现场复核(L3 现测,非读文档)

结论:最新目标 d85687 ✅ 已完成;上一目标 72111e 的两条残项现已全部落地**(此前 7 棒判定"未完成"的判据 5/6 已被后续动作消掉)。**

① 当前目标 d85687(MCN 界面)= ✅ 已完成(L1+L3 双证)

  • goal.json:lifecycle = 已完成(04:27:26,第 17 棒)/acceptance_state 5 条全为规范写法 过|依据(DESIGN.md 契约令牌/原型 HTML 81 项自检绿/tiaoyue+oil-ui-pro/骨架照 2b 八页 37 板块/落点可追溯)。
  • 文件级:research/ 5 份(02:28–02:29,1a 24317/1b 7899/1c 16234/1d 17660/1e 15881)|prd/ 2 份(02:30,2a 25958/2b 15036)|ui/DESIGN.md 47,835 B(04:16)|ui/mcn-workbench.html 130,371 B(04:10)|3b 22,659/3c 27,887/3d 25,080|_gate_shots/ 23 PNG(04:12)|_tools/ 3 脚本。

② 上一目标 72111e 的两条残项 —— 已消除(本轮新取证,推翻第 8–14 棒的"未完成"读数)

  • 判据 6(vibe-product 六份)✅ 真落地:E:/ProgramData/AIProject/vibe-product/docs/pm/proto-board/ 下 research 4 份 + prd 2 份,md5 与新稿逐字节全同(1a 84965bc6…/1c 57866674…/1d a17e249a…/1e 27925667…/2a d32320b9…/2b af827824…),mtime 02:10 > 新稿 23:29–23:31;字节数由旧 3034/3383/3121/… 变为 12063/9201/12991/… ⇒ 确系被覆盖,⛔ 不是空转。
  • 判据 5(技能包说人话 16 份)✅ 实质落地:归档/技能包-说人话-落地前-20261008/ 备份在位(02:09,SKILL.md 27,120 B)⇒ 覆盖动作做过。16 份中 6 份 md5 与新稿全同(competitor-analysis/product-strategy/user-personas/doc-area-spec/guided-tour/state-machine);另 10 份差异全部是后续合法增量(02:49–02:51 覆盖 + 02:3x–03:0x「A 方案单一可信源收敛」+ 排雷)—— diff 实证:usage-scenario.md 只差 2 行(11-竞品分析.md→1b-竞品分析.md、strategy/31-使用场景.md→research/1e-使用场景.md,正是排雷那两改)。落点 §供给 计数 stage-delivery 31/总入口 9/layouts-tooling 4 ⇒ A 方案确已进落点。

③ 🔴 机制侧新发现:常驻空转循环(仍在发生)

  • 04:27:26 常驻因「目标已完成」优雅退出后,保活计划任务仍每 5 分钟拉起一次,进程启动 2 秒即因 guard.stop 退出 ⇒ _collabd.log 里 04:27:26–07:52:57 共 43 次 supervise loop start → 守护已停 ⇒ 优雅退出(末次 pid 70572,07:52:55→07:52:57)。
  • 心跳 supervise-heartbeat.json 停在 04:27:16(pid 34556,round 626)⇒ 与日志一致。
  • ⚠️ 另:心跳 json 的 argv0 仍指向旧路径 E:\ProgramData\AIProject\content_marketing_agent\.workbuddy\collab\collabd.py,而当前工作区是 contentm_agent(两个目录同时存在)⇒ 协作机制登记的是旧名,待清。

④ 仍未做的(可推翻):域外归档 docs/pm/mcn-shortvideo-agent/{research,prd}/ 未搬(docs/pm/ 下仍只有旧版 1a);goal.json.execution_doc 仍指旧目标 …-5199a6/目标执行状态.md;目标执行状态文档 §10.5 的 B-15 与 §10.7 的 6 条人工确认项仍悬空(不在 5 条判据内)。

未做任何写操作(本轮纯核对)。

08:1x–08:2x · 用户三条令:①停本区保活 ②协作机制登记改现名 ③旧的去掉

根因(先取证,不是推断):本区目录已由 content_marketing_agent 改名 contentm_agent,但登记没跟上:

  • collabd.config.json 的 workspace 仍写旧名 ⇒ 常驻(实测 pid 56368、08:05:23 起、argv0 指向技能源 E:\ProgramData\.workbuddy\skills\session-mechanism\scripts\collabd.py,⛔ 不是本区发布物)把心跳/日志/状态全写进已不存在的旧目录 content_marketing_agent/(该目录只剩 .workbuddy/collab/logs/ 4 文件 + tmp/supervise-inbox/ 3 文件=空壳)。
  • collabctl.py 的 WORKSPACES(L70) 与 KEEPALIVE_TASKS(L87) 硬编码旧名 —— 源 + 3 个区副本共 4 份都要改。
  • ai1net 的 collabd.config.json 的 peer_workspaces 里也列着旧路径。

已做(全部改前备份 .bak-*20261008、改后回读核对): 1、collabctl.py × 4(源 + contentm_agent/ai1net/vibe):旧名 → contentm_agent(各 2 行)⇒ py_compile 4 份全过。 2、本区 collabd.config.json:workspace → 现名 + _改名说明20261008 留痕(JSON 合法已验)。 3、ai1net collabd.config.json:peer_workspaces[1] → 现名 + _peer_变更20261008。⚠️ 看板需重启才吃到(配置模块级只读一次,P0-38)—— 本轮未重启看板。 4、停本区:开关 off + 注销旧保活任务 collabd-keepalive-content_marketing_agent(定义已导出备份 tmp/_oldtask_backup.xml)。 5、旧空壳目录 content_marketing_agent/ ⇒ 改名 content_marketing_agent.RETIRED-20261008(零删除、可逆;改名后到 08:24 无新写入,确认无人再写)。

🔴 事故(如实记):collabctl.py off --ws <本区> 没有真正收敛 —— disable_tasks() 已按 ONLY_WS 跳过看板,但 kill_all() 的第二段 list_procs() 是全机扫描、不认 --ws ⇒ 一次杀掉 5 个进程,其中含 ai1net(pid 73304 前身)/vibe/看板。

  • 已当场恢复:on --ws ai1net + on --ws vibe + PowerShell 重新启用并触发 dsh-board-keepalive ⇒ 三处全绿(ai1net pid 73304/vibe pid 26992/看板 20099 pid 14136 在听)。
  • ✅ 已修根因:kill_all() 在 ONLY_WS 时只杀本区心跳里记的 pid 并提前 return,⛔ 不做全机扫描;另修 cmd_off 打印里「看板 1」是常量 +1(ONLY_WS 下看板根本没禁,数字却照加)⇒ 改为按 ONLY_WS 分别打印。4 份同步改,py_compile 全过。
  • 实证(⛔ 未做起停实验):注入 ONLY_WS 调 kill_all() ⇒ 返回 0(改前是 5),随后他区 pid 与看板pid 未变、仍在活。

验收读数(08:2x 现取):contentm_agent = 开关 off/常驻停 ✅|ai1net ✅ 活|vibe ✅ 活|看板 ✅ 在监听|计划任务:仅 ai1net/vibe/看板 Running,旧名任务已注销。

未做:看板未重启(改 ai1net 的 peer 要重启才生效);本轮改动未 git 提交(用户未要求)。

08:2x · 用户质疑 d85687 界面粗糙:取证分析(read-only)

用户原话:界面设计很粗糙,不是预期的高保真有设计感的界面,连视频截图的那款产品都赶不上,怀疑是不是用了 oil-ui-pro 和 tiaoyue。

取证结论:供给没撒谎,真用了 —— 但「用了」只等于「套了皮肤」,粗糙是真问题,根因四层:

1、令牌逐值吻合(L3):HTML :root 与 design-system-tiaoyue/assets/tokens.css 逐值一致(#faf9f5 纸感底/#9E4CFF 紫/卡片 24px 圆角/按钮 26px 胶囊);截图印证(米白底、白卡、紫胶囊按钮「确认归因并回写」)。oil-ui-pro 在全局技能根存在,tiaoyue 在 product-planning/.../assets/design-systems/ 存在,DESIGN.md §〇 有供给核对。

2、粗糙的量化铁证(L3,最硬一条):mcn-workbench.html 1865 行里 <svg> 0 个、<canvas> 0 个、chart 0、<img> 0、gradient 0 —— 一个短视频矩阵工作台,没有一个图标、没有一张视频缩略图、没有一处数据图表、没有一处渐变/插画。P1「账号矩阵列表」全是纯文字行;P7 复盘台的「播放 8.6 万/完播 41%/三连率 6.3%」就是三个数字块。视觉资产密度≈线框图。

3、四层根因:

  • A 供给本身薄:tiaoyue 的 tokens.css 只有 46 行,只有色值/圆角/按钮/输入框/卡片皮肤(取自 tiaoyue.com 官网 clipper)—— 官网是低密度营销页,这套「极简纸感」套到高密度数据工作台上就「没东西看」;它不含图标系统/图表规范/缩略图/空状态/状态色语义。
  • B 判据里没有「保真度」:goal.json 5 条判据全是工程向(契约落了/可点通/来源写了/骨架一致/落点可溯);自检 81 项、变异 13、骨架机检全是「对不对」,没有一项测「好不好看」 ⇒ 门禁全绿但用户要的东西不在测量范围。用户换目标时的原话只指定了「用 oil-ui-pro 和 tiaoyue」,没定视觉水准 ⇒ 判据天然缺口。
  • C 方法论反噬:oil-ui-pro 的「反 slop」判据专防 AI 味装饰(禁紫→粉渐变、禁 hero),防过头 ⇒ 该有的信息可视化元素一个没画;DESIGN.md 里「保真/美观/视觉」全文只出现 2 次。
  • D 精力分配:③段那一棒把力气花在合规与证据(说人话自评、23 张截图像素校验、供给核对、变异对照)上,视觉只有 3a 一步拿令牌;10.6 偏离单如实记了 3c 评审不是外部 GPT(是隔离上下文执行者)、3b 没走真人点验。

4、修复方向(待用户拍板后执行):保留八页骨架与交互清单(②③段机检仍有效),重做视觉层:图标系统+数据可视化(趋势/完成率小图)+视频缩略图卡+状态色语义+层次阴影;并给「高保真」立可判据的标准(对标物截图逐项对照),写进验收判据,⛔ 不再让「好看」游离在门禁外。

08:4x · 用户追加质疑「排版布局像 10 年前后台管理系统,不像 agent 产品」—— 第二轮取证(read-only)

验证结果:用户的判断与 3c 独立评审的结论几乎一字不差,而且评审当时就把问题点名了、却被权限边界挂起。

一、布局形态实证(L3 读 CSS,非看文档)

  • mcn-workbench.html:70 —— .app{ display:grid; grid-template-columns:var(--nav-w) minmax(0,1fr) },--nav-w:240px;主区= topbar(sticky)+ 内容 flex column,内容里全是 .panel > .row 横条行。⇒ 就是「左侧固定导航 + 顶栏 + 行式列表」这套后台骨架。
  • 信息呈现=行式列表:②段 2b 把 P1 第二板块写死成「账号矩阵列表 —— 一行一个账号,行内三件事」,③段照做。

二、为什么改不动(这是最硬的一条)

  • ②段 2b 文首两条硬规:「全文零视觉词」 + 「交给③段时骨架是冻结的,③段不许新增/移动/删除板块」。
  • ③段另有机检闸门 check_skeleton.py 把八页 37 板块与②段逐页逐位比对 ⇒ ③段改了就报红。
  • ⇒ 三段分工里 没有任何一段负责「形态语言」:②段只给块名与顺序,③段只给皮肤与交互,「这产品该长成什么样」没人管。

三、供给里就没有 Agent 型形态

  • layouts-tooling.md 的四个骨架档位=行式列表(明写「工具型主形态·默认首选」)/表格式清单/详情面板/主从侧区,另加红线五条与「反实习生审美」五条 ⇒ 没有对话式、指令入口、Agent 运行态、生成结果采纳、画布这类 Agent 产品形态档位。

四、🔴 评审早就点破了,而且被挂起(硬证据)

  • 3c-GPT会诊.md 评审原话(逐条):品类应属 B2B 数据工作台/运营控制台(参照 Linear/飞书多维表格/蝉妈妈·新榜·飞瓜);「这些产品的共识=主视觉是数据本身(表/矩阵/图表),不是『卡片+说明文字』」;「卡片化+大留白(每组内容都包成 24px 圆角白卡)= 没认出品类,工具台第一诉求是信息密度不是呼吸感」;「遮住文字后认不出是任何一家…侧栏像 Linear/Notion 通用骨架,卡片+淡紫按钮像 shadcn/Tailwind 的默认产出 ⇒ 不是克隆,是没有品牌辨识度的通用后台」。
  • 3d-审查报告.md S-16 与 3c R-21(同一条,两次提出):「建议把 P1『账号矩阵列表』做成真正的矩阵 + 异常分布,这是全篇最有可能做出记忆点的一处」⇒ 处置=「已知不修·往上提」,理由「板块名与位置受②段冻结,矩阵视图是信息呈现变更,超出③段权限」⇒ 没有任何人拍板,就这么挂着。

五、三层叠加的最终诊断 「像 10 年前的后台」与「没有品牌辨识度的通用后台」是同一个病的两面:① 形态骨架=后台(供给默认档位就是行式列表);② 视觉=通用皮肤(tiaoyue 纸张感是官网皮,套在控制台上);③ 缺一层「这产品自己长什么样」的形态定义 —— ②段不许写视觉、③段不许改骨架,中间这一层是空的。

六、修复必须动②段(⛔ 只重做③段视觉治不好):至少三处要回②段 —— P1 从「一行一个账号」改成真矩阵/卡片流;给 P4 创作台与 P7 复盘台的 AI 环节定「Agent 运行态」的呈现(生成中/建议/采纳驳回);主视觉从「卡片+说明文字」换成「数据即主视觉」。⇒ 这些都要先改 2b,再让③段跟着重做,机检闸门同步更新。

08:5x · 主会话:骨架优化方案已落盘(用户问「骨架应该如何优化」)

  • 产出:执行会话/目标-…-d85687/prd/2b-骨架形态优化方案.md(Ⓐ 新增,⛔ 未改 2b 原文)。
  • 骨架四宗病(每条都给了 2b 出处):① 八页同构 —— 每页都是「从上到下堆 4–5 块」的纵向单列 ⇒ 做出来就是八个长得一样的后台表单页;② 列表是唯一信息呈现 —— P1/P2/P3/P6/P7/P8 六页主视觉都是列表,产品叫「矩阵工作台」却一处矩阵没有;③ 没有 AI/Agent 的位置 —— P4 七环节没写哪步出 AI 产出、产出放哪、怎么采纳驳回,P7「归因结论区·由人确认」也没给 AI 结论留块;④ 缺一层「形态语言」—— ②段不许写视觉、③段不许改骨架,中间「这产品该长成什么样」没人管。
  • 逐页改法:P1 真矩阵(账号×日期网格,异常标在格上,顶部今日行动条)|P2 缩略图卡片流+倍数徽章+紧凑 KPI 条|P3 摘录卡网格+详情改右抽屉|P4 最关键 —— 流水线画布(环节轨道常驻)+ 新增 AI 产出区(生成中/已生成 + 采纳·驳回·改后再用)+ 资产引用改右侧常驻(⛔ 不再是可点入折叠块)|P5 原稿×各平台版本对照 + 检查改逐条 diff|P6 画像卡+记忆时间线(记忆「只追加」天然是时间线,现在写成可点入把形态浪费了)+账号改顶部横向切换条|P7 数据即主视觉 + 归因拆成「AI 归因结论(可编辑)」与「人确认/改判」两块(现在是混在一块里)|P8 三栏对照(内容/发布记录/收支)。
  • ②段要补三件事:每页加「形态」字段(主视觉是什么+空间关系,⛔ 这不算视觉词)/每页加「AI 在哪」字段(八页逐页给结论,没有要写「无」)/全局加「形态语言」一节并规定不许八页同构。
  • 执行顺序(倒不得):先改 2b ⇒ ③段重做 ⇒ check_skeleton.py 机检基线同步更新(它现在拿旧骨架当权威,改一位就报红)。
  • ⛔ 本轮只出方案,未改 2b 原文、未动③段、未改闸门。

08:5x · 🔴 用户纠正:骨架是②③交叉知识,形态归③段,③段可往更好体验改 —— v1 方案作废,v2 重出

我的错(v1 偏差):把「P1 做成矩阵」「P5 做成对照」这类形态决策当成块级改动推给②段,方向反了。

核实到的权威口径(读文件,⛔ 不是记忆):

  • ②段 stage-requirements/SKILL.md §②—③ 交接口(唯一权威处,2026-10-06 用户定案):「②段钉骨架,③段做皮肉」。归②段=有哪几页/每页几个板块怎么排/跨页关系/每页主操作/每条信息哪一档;归③段=配色字体间距组件样式动效/每个板块的视觉实现/交互行为/状态与空态/响应式。「骨架是判断基准必须在②段定死」「③段不许新增/移动/删除板块」⇒ 冻结的是块级,不是形态。
  • layouts-tooling.md 文首明写「⛔ 本文件是 stage-delivery 自己的东西」、「工具型页面的版式在本项目只有这一份来源」,§0 就是「先判形态,再挑骨架」⇒ 形态归③段,③段有裁量权往更好体验改。

v2 方案(prd/骨架优化方案-v2-②③分段.md,v1 改名 骨架优化方案-v1-作废-形态误归②段.md 留档):

  • 归②段(只三处):① 删越界形态措辞 —— P1「一行一个账号」、P2/P3/P7/P8 块名里的「列表」都是形态词,侵了③段地盘,改中性块名(块名写「列表」③段就被迫画列表,这是「像后台」的源头);② 给 AI 产出补块位 —— 2a 里 AI 状态流转(idle→抓取中→已出候选→已采纳/忽略、失败重试、生成不覆盖)都有,但 2b P4 没有一个块承载它 ⇒ P4 加「AI 产出与采纳」,P7 把「归因结论区·由人确认」拆成「归因结论(可编辑)」+「确认与改判」两块;③ 分档跟着改(新增块=主屏常驻;P1 异常值若并入矩阵则降档,⛔ 须回②段改,③段不能自己改档)。
  • 归③段:① 逐页用 §0 判形态(P1 列表型但矩阵是表格式清单的轴转置排布,③段直接画,⛔ 不需②段改块名;P3/P6/P7 侧区型或详情型,P4 详情型,P5/P8 列表型+对照);② 补 layouts-tooling.md 四个形态档(矩阵型/对照型/流水线型/时间线型)—— 现有 §0 只有列表型/详情型/侧区型三类,不够用;③ 体验上③段可主动改(数据密度、AI 生成中态与可中断、状态与空态、响应式,含 B-15 那条窄屏账)。
  • 执行顺序:形态问题在③段解决,块级问题才回②段;机检 check_skeleton.py 同步(②段改块名后不同步会误报)。
  • ⚠️ 待拍板(已转用户):补档要动 layouts-tooling.md —— 它是全局技能包文件,改了会影响别的工作区 ⇒ 必须由用户拍板。

09:0x · 用户拍板(1A 补全局库 + 2C 两边一起改)—— 执行与全绿验证

拍板原文:「1 按照建议处理(=四形态档补进全局版式工具库);2 C 两边一起改,免得后面忘了」。

已做(全部改前备份、改后复跑闸门/自检):

1、全局库补四档(layouts-tooling.md,备份 .bak-add4forms-20261008):§0 形态表加 矩阵型/对照型/流水线型/时间线型 四行(并加「列表型里并列发生在两个维度上 ⇒ 判矩阵型 ⛔ 不是列表型;矩阵是表格式清单的轴转置排布,⛔ 不需要为它新增板块」的判读);新增 §4.5–§4.8 四节(各带适用/判定要点,流水线型里写死「🔴 AI 产出环节必须有独立产出区:生成中要有进度与可中断、产出与人的编辑分区、采纳/驳回是显式动作 ⛔ 不许默认等于采纳」)。闸门复跑 check_naming.py --root <包> --ws <本区> = 通过 2059 | 失败 0 | 提示 25(与基线同)。

2、②段块级 17 处(2b-界面布局.md,备份 .bak-20261008,脚本 tmp/fix_2b_blocks.py 可复算):

  • 删形态措辞:P1「账号矩阵列表——一行一个账号,行内三件事」→「账号矩阵」(加一句 ⛔ 不写怎么呈现,归③段);P2「对标内容列表」→「对标内容」;P3「条目列表」→「资产条目」;P7「待复盘列表」→「待复盘项」;P8「发布记录列表」→「发布记录」;评论区洞察区→评论区洞察(补「出 AI 候选选题,2a F3」);分档表与跨页关系同步。
  • P4 插入「AI 产出与采纳」块(生成中/已生成/失败重试 + 采纳·驳回·改后再用),分档=主屏常驻。
  • P7 拆出「确认与改判」块(采纳/驳回/改后再用),「归因结论区·由人确认」→「归因结论(由 AI 给出,可编辑)」。
  • 八页板块 37 → 39。

3、③段同步(原型 + 双闸门):

  • FROZEN 表同步 39 块 ⇒ check_skeleton.py(外部机检,比对 ②段文档 ↔ FROZEN)PASS。
  • ⚠️ 第一次只改 FROZEN 时,原型自带自检(比对渲染 ↔ FROZEN)报 3 FAIL ⇒ 坐实「FROZEN 与渲染两张表各改一边就没人发现」的设防是对的。随后改渲染:P3/P7 标题同步、P4 真加「AI 产出与采纳」section(S 加 aiOut/aiVerdict 状态;P4-03 改为只写 aiOut ⛔ 不写正文,采纳(P4-09)才并入 stepOut —— 落实「产出与人的编辑分区」;P4-10 驳回/P4-11 改后再用/P4-12 中断生成)、P7 加「确认与改判」section(P7-06/07/08)。
  • 自检场景补 2 条(P4 AI 待裁决/P4 生成中)—— 没有它们新 act 会被判「从未被驱动=死控件」。
  • 终验:自检 PASS 81 / FAIL 0;check_skeleton.py PASS;P4 截图确认新块在位(_scratch/p4-new.png)。

09:2x · 用户令「检查技能修改是否到位,是否支持生成最新 AI agent 工作台的布局和样式」—— 验收结果:布局支持、样式零供给

一、布局层:四档在位,但登记漏了两处,本轮已补**(这是我自己上一棒改动的遗漏)**

  • 在位:layouts-tooling.md §0 表有矩阵型/对照型/流水线型/时间线型四行,§4.5–§4.8 四节齐(19,082 → 23,976 B,+4,894)。
  • 🔴 漏的两处(都是"读到旧清单"⇒ 执行时不会去看新档):③段 SKILL.md §供给 表「版式骨架」行仍写「行式列表 / 表格式清单 / 详情面板 / 主从侧区」;execution-runbook.md 第 65 行同样写旧四档。
  • 已补(各备份 .bak-agentforms-20261008):两处都改成指引式(「工具型八档的名单与判读见 layouts-tooling.md §0,⛔ 不復述名单」)—— 遵守单一可信源:名单只留在 layouts-tooling.md §0,§供给 不复述。
  • 闸门复跑:通过 2059 | 失败 0 | 提示 25(与基线同)。

二、🔴 样式层:完全不支持 Agent 工作台(硬缺口,⛔ 不是"没配好",是供给里根本没有)

  • design-system-tiaoyue 组件库 277 个自有组件族,grep AI/生成中/进度/建议/采纳/驳回/diff/流式 零命中(唯一命中的 "AI" 是 maiya-btn 里的字母)。
  • tokens.css 46 行,grep ai/gen/progress/stream/skeleton/diff/suggest 零命中 ⇒ 没有生成中态、AI 输出卡、diff 对照、采纳按钮组的任何令牌。
  • 组件库第三部分 Element Plus 基座只有 14 个浮层/输入类(dialog / dropdown / input / popover / tooltip / scrollbar),el-steps、el-timeline、el-progress、el-skeleton 一个都没有 ⇒ 连流水线轨道和时间线都拼不出来。
  • ⇒ 结论:③段能判出要用矩阵/流水线/时间线(布局层有了),但画不出 Agent 的样子(样式层无来源)。
  • ⛔ tiaoyue 是逐字搬入的第三方件,纪律不许改它的内容 ⇒ 只能③段自建补遗(参照 layouts-tooling.md 的自建先例)。

09:3x · 用户怀疑「tiaoyue 要登录,是不是抓取时没登录、漏了信息」—— 取证结论:登录态有,漏的是交互态

一、登录态:抓到了(⛔ 不是没登录)

  • design-system-tiaoyue/references/capture-notes.md 第 49 行逐字:「源站是明暗双主题(首页默认 dark #0b0b10),本次抓到的是登录后的亮色形态」。
  • 旁证:组件库按页列出业务页专属族 —— 首页(26)/短视频(40)/转绘(4)/剧本(15)/资产(19)/空间(15)/团队(4),共 277 族 ⇒ 这些页面不是公开首页,没登录进不去。
  • ⇒ 用户怀疑的方向对了一半:信息确实漏了,但⛔ 不是登录态问题。

二、🔴 真正漏的是「交互态」(clipper 只拍静态快照)

  • 在 1.4 MB 的原始产出 design-system.html 里 grep 生成中/AI/建议/采纳/驳回/diff/流式/骨架屏/spinner ⇒ 只有 loading 23 处与 progress 5 处,零 AI 产出类组件。
  • 根因:clipper 拍的是页面静态快照;生成中态、AI 输出卡、采纳/驳回、diff 对照只在动作发生时才出现 ⇒ 静态抓不到。这与登录与否无关。
  • ⇒ 所以「参考 tiaoyue 的界面排版布局」能拿到的是布局骨架与视觉语言(277 族里有作品流、资产网格等),拿不到的是Agent 交互态 —— 那部分仍须自建。

三、顺带查到两处旧账(都在技能包里明写,⛔ 不是我推断)

  • ① 暗色令牌未抓:capture-notes 第 49 行同一句写明「暗色令牌未单独抓取」。
  • ② 🔴 现在用的这套亮色令牌,是不是 tiaoyue 主线未裁决:known-conflicts.md C-01 明写「同一个站两次独立抓取给出两套不同的值(A 路 clipper 9 页 = 现在用的 tokens.css/B 路 CDP 活动页 DOM)」,裁决内容只有「暗亮不混搭」,而「哪一套才是主线」仍是 ⛔ 未裁决,且注明要「在主线页面同批抓一次 light+dark 才能定,需要动技能之外的抓取动作」。 ⇒ 含义:③段现在照着做的这套令牌,连"是不是 tiaoyue 主线"都没定论。

09:4x · 用户澄清「我说的是界面布局、如何布局排版」—— 取证:那部分信息抓到了,就在库里,是做的时候没用上

一、tiaoyue 的布局骨架(从组件库全局组件"9 页通用"里逐条读出)

  • 外壳三段:sidebar-shell(9/9 页)→ app-sidebar(9/9)+ layout-header(9/9)+ layout-main(9/9,含 --no-scrollbar 变体)⇒ 侧栏壳 + 顶栏 + 主区。
  • 侧栏是可展开的(is-expand-right),带导航提示层(nav-tips-layer / nav-tips-viewport)与路由激活态(router-link-active)。
  • 顶栏有通知铃铛+徽章(notification-trigger__badge)与头像按钮(header-avatar-btn)。
  • 有分区背景 app-bg 与 app-bg--creative-workbench(创作工作台专用,3 次)⇒ 不同工作区给不同底。
  • ⇒ 这套外壳与我们原型的「240px 侧栏 + sticky 顶栏 + 主区」是同一套,用户觉得「像后台」⛔ 不是因为外壳抄错了。

二、🔴 真正的差距在「内容区怎么排」,而这条信息库里有、我们没用

  • tiaoyue 资产页:封面卡片网格 —— asset-card(180 次 / 20 张卡,带 __cover 封面、--clickable、--meta、__meta-tags)+ asset-media-cover(80 次,带 --ratio 固定比例)+ asset-card-official-meta(标题/创作者/创建者名)+ asset-multi-select-filter(266 次,筛选器)。
  • tiaoyue 空间页:project-folder-design-v2(立体文件夹视觉:__stage/__back-assembly/__front-assembly/__sparkles)+ space-create-button + space-quota-progress(配额进度)⇒ 同样是卡片化、有视觉主体。
  • 我们的原型:<img> 0 次、<svg> 0 次 ⇒ P1 账号矩阵是纯文字行、P3 资产库是纯文字条目,一处封面卡都没有。
  • ⇒ 结论:「像 10 年前后台」的真因是内容区只有文字行,而「内容区该长成什么样」的参考(封面卡 + 固定比例 + 元信息标签 + 筛选器)就写在组件库里,③段做的时候没取用。

三、由此收敛出的修复方向(⛔ 不用重抓,现成参考就在库里)

  • 内容区从「行列表」换成「封面卡网格 / 矩阵格」:asset-card__cover + asset-media-cover--ratio = 卡 + 固定比例封面;__meta-tags = 卡上挂标签;筛选器常驻。
  • 侧栏改可展开(is-expand-right),顶栏补通知与头像(我们已有头像位),分区给不同底(app-bg--*)。
  • ⛔ 这些不属视觉词(是结构与呈现),②段现在的中性块名已经放行了 ⇒ ③段可以直接画,不必再回②段。

10:0x · 🔴 用户问「说用 tiaoyue 的样式,为什么不参考它的排版布局」—— 抓到机制根因并修掉(含门禁)

根因(L3 取证,⛔ 不是推断)

  • ③段 execution-runbook.md 的 D1 定调步骤原写:读 DESIGN.md + tokens.css + components.html。
  • 而 components.html 只存在于可选档(open-design 那 153 套:agentic/airbnb/airtable/ant/apple…);默认档 design-system-tiaoyue/ 里根本没有这个文件(它给组件的是 references/components.md + references/design-system.html,全包 find 确认)。
  • ⇒ 执行者照这个名字在默认档里找 ⇒ 扑空 ⇒ 只取到了 tokens.css(色值/圆角/间距),版式结构与组件族整层漏掉 ⇒ 做出的界面「用了它的样式、没有它的排版」。
  • 对照:③段 SKILL.md 第 49 行的供给表写的组件形态来源是对的(references/components.md + references/design-system.html)⇒ 权威处对、执行步骤处错,典型的"两处不同源"漂移。
  • 后果实测:整个原型 <img> 0/<svg> 0,而 tiaoyue 资产页是 asset-card(180 次/20 卡,带 __cover 封面)+ asset-media-cover--ratio(固定比例)的封面卡网格;外壳是 sidebar-shell/app-sidebar/layout-header/layout-main(9/9 页)+ is-expand-right(侧栏可展开)+ app-bg--creative-workbench(分区底)⇒ 这些一条都没用上。

已修(三处,全部备份 + 跑闸门) 1、execution-runbook.md §2.2 新增 「D1 读什么」硬前置:定调必须取三样(数值/版式结构/组件族),⛔ 只取数值不算取用选定套;写明默认档那套的实际文件名,并留痕这次事故(为什么照 components.html 找会扑空)。判据:DESIGN.md §2.5 组件规格每一行都要写出处,⛔ 只写数值不写出处即判未取用。 2、execution-runbook.md 第 49 行 D1 表格行改成指引式(⛔ 不再写死文件名)。 3、scripts/check_naming.py 的 AUTHORITY 表加第 10 条:「选定套的组件文件名(默认档与可选档不同名)」—— 权威处=runbook(反面留痕),其余任何 md 出现 + components.html ⇒ FAIL。

验证(含变异对照,⛔ 不拿"没报错"当验收)

  • 基线:通过 2060 | 失败 0 | 提示 25(+1 条新检查项)。
  • 变异对照:向 stage-delivery/SKILL.md(非定义处)注入旧写法探针 ⇒ 闸门报 FAIL(定位 SKILL.md#129,通过 2059 | 失败 1)⇒ 判据不是恒绿;还原后回 2060 | 0。
  • 备份:execution-runbook.md.bak-d1fix-20261008、check_naming.py.bak-auth-20261008。

10:0x · 用户指定布局排版参照物:已上线的 mcn-work-shop(跨区只读取证)

  • 指令原文:「AGENT 工具先按照这个界面布局排版」+路径 E:/ProgramData/AIProject/mcn-short-video/project/短视频脚本创作/V1.0/mcn-work-shop。
  • 那是一套真跑过的 MCN 工作台(node server.js 8900,技能里也提过:用户从桌面双击 start.bat 起,属用户登录会话故能长跑;现测 8900 没在听)。前端=public/index.html(1.8KB)+style.css(56KB)+app.js(54KB)+data-pages.js(173KB),另有 30+ 个 cdp-*.mjs(CDP 实测脚本)⇒ 界面是逐处实测验证过的。
  • 提取到的布局排版(已落 ui/布局排版参考-mcn-work-shop.md):
    • 外壳=.topbar(品牌+面包屑 .crumbs+操作组)+main#view;侧栏不是常驻,只在产出浏览页出现(.files-layout=.sidebar 320px + .content-view)。
    • html,body{height:100%;overflow:hidden} ⇒ 整页不滚,滚动只由主区承担(注释明写为消除顶栏 1px 边引发的第二层滚动条)。
    • 首页=.func-grid(max-width 900 居中、单列、gap 14)+ .func-card(白底+1px 边+圆角 12+内衬 16/18+轻阴影)+ 🔴 .qa-row 问答行(.q 用强调色橙、.a 用次级色缩进、hover 可复制)⇒ AI 以「一问一答的行」当一等公民。
    • 有 vendor/echarts.min.js ⇒ 真画图;列表项带类型标记(.ext-md/.ext-json/.ext-xlsx/.ext-txt)。
    • 令牌:--bg #f5f6f8(冷灰白)/--primary #2f6fed(蓝)/--accent #e8590c(橙)/--border #e3e6ea/圆角 12/阴影只一层 0 1px 3px rgba(0,0,0,.08)/正文 16px。
  • 与我们现原型的逐条反差:外壳(顶栏+面包屑 vs 固定侧栏常驻)|首页(限宽单列卡流+问答行 vs 卡片堆说明文字)|图形(有 echarts vs svg/canvas/chart 全 0)|配色(蓝+冷灰白 vs 紫+纸白)|圆角 12 vs 24|阴影一层 vs 三层。
  • ⚠️ 待拍板:配色要不要也换成它这套(蓝+冷灰白),还是布局照它、配色仍留 tiaoyue(紫+纸白)。

10:1x · 用户拍板(1B 布局照 mcn-work-shop/样式留 tiaoyue;2C 先外壳+首页)—— 第一版已出,双闸门全绿

已做(原型 mcn-workbench.html,样式令牌未动仍走 tiaoyue):

  1. 顶栏加面包屑 .crumbs(「组 › 页」,照 mcn-work-shop,导航主要靠它)。
  2. 侧栏可收起(G-11,S.sideCollapsed + .app.side-collapsed{grid-template-columns:0 ...})—— 照「侧栏按需」的精神;⛔ 完全去掉侧栏不行(八页要入口)⇒ 折中为可收起,偏离已留痕。
  3. 整页不滚(html,body{height:100%;overflow:hidden},滚动只由 .view 承担)。
  4. P1 补问答行(.qa-row:问=强调色、答=次级色缩进,两条示例)—— 放在「全局检索与随手记」块内,⛔ 不新增板块(②段冻结)。

三次被既有判据拦下(全是真拦,⛔ 不是做样子):

  • ① gap:14px(照抄 mcn-work-shop)⇒ 自检报「间距出现未登记刻度 14px」⇒ 取登记刻度 16(差 2px 不影响形态,⛔ 不为了照抄去改判据)。
  • ② P1 套「限宽 900 单列」⇒ 一屏只装 4 行(首行顶 622px)⇒ 自检红(契约 ≥6 行/900px)⇒ 回退两栏并留痕:mcn-work-shop 的首页是功能入口页(卡流+问答行,不要求数据行数),P1 是矩阵数据页 —— 页型不同不能硬套,密度判据优先。问答行形态保留。
  • ③ 顶栏按钮写在静态 HTML 里用了 ${...} 模板串 ⇒ 原样显示未求值(截图抓到)⇒ 改静态文本+paint 里更新 textContent。

终验:自检 PASS 81 / FAIL 0;check_skeleton.py PASS(39 板块);P1 截图 _scratch/p1-v3-1440.png(顶栏:收起侧栏按钮+面包屑+演示控件+操作组,全部正常)。

10:2x · 用户再纠「左侧导航分大板块,板块功能卡片排一行,板块上方放统计」—— 照 mcn-work-shop 真实首页改

  • 取证:之前只读了它的 CSS,漏了 app.js 的 renderHome() —— 真实首页是 .home-stats 统计条(5 项:关注账号/视频解析/AI写脚本/AI脚本诊断/AI脚本评分,挂 /api/dsh/stats)在上 + .data-cards 功能卡(热点数据/账号列表/AI写脚本/脚本诊断,带图标)+ 榜单预览(tab)+ 最近脚本。用户描述的正是这个。
  • 已落 P1(样板):h1 之后加 ① .home-stats 统计条 4 项(在管账号/今日待处理/数据异动/本月已发,数据全部来自现有数据源,⛔ 没编数)② .data-cards 功能卡一行 3 张(矩阵总览/复盘台/记录与对账,可点跳页)。⛔ 两块都不是 .block ⇒ 不进②段骨架板块计数(机检数 .block .block-head h2)⇒ 骨架冻结不被破坏。
  • CSS 新增 .home-stats/.stat-item/.stat-value/.stat-label 与 .data-cards/.data-card/.dc-title/.dc-desc,全走 tiaoyue 令牌(surface/line/panel 圆角/字阶 24/16/12)。
  • 中途一处笔误(第三张卡 title/desc 顺序反了)当场自纠。
  • 终验:自检 PASS 81/FAIL 0;机检 PASS;截图 _scratch/p1-v4.png —— 顶栏(收起侧栏+面包屑)→ 统计条 → 功能卡一行 → 两栏内容,正是用户描述的「板块上方统计+板块功能卡排一行」。
  • 待确认:P1 样板风格 OK 后铺开其余板块页(每个板块页顶部各放自己的统计)。

10:3x · 用户给的 Figma 设计链接 —— 取不到(三处实证,⛔ 不是没试)

  • 链接:https://www.figma.com/files/team/1121267380629877738/resources/community/file/1058767686059595687?...
  • ① 网页抓取只拿到登录页(标题 Login | Figma,正文是「Log in or create an account to collaborate」)⇒ 文件内容在登录后,抓不到。
  • ② 本机无任何 Figma 凭据:环境变量无、无 Figma CLI、~/.workbuddy/mcp.json 里无 figma 条目、技能目录无 figma 技能。
  • ③ 连接器市场没有 Figma 连接器(read-only 搜 type=connector,关键词 Figma/design/设计稿 ⇒ 返回 60+ 条里有 MasterGo 莫高设计、Canva、稿定、创客贴等,唯独没有 Figma)。
  • ⇒ 唯一能取到的路:用户给 Figma 个人访问令牌(走 /v1/files/:key 拿节点树+样式),或用户导出 PNG/SVG、Dev Mode 复制 CSS、或直接截图。⛔ 要凭据属红线 ⇒ 已写成待拍板项提报。:其余七页的同款改版(面包屑/侧栏收起在所有页生效,P2–P8 内容区形态仍旧);echarts 图表;封面卡网格。:P1 真矩阵、P2 缩略图卡流、P5 对照、P7 数据主视觉、图标/图表/缩略图等视觉资产 —— 骨架与闸门已就位,形态实现待派活。goal.json 的 5 条判据是按旧③段写的,重做后要按新标准重立(「高保真」判据缺口未补)。

08:1x · 主会话:工作区 git 化并首次推送(用户令「将本工作区文件夹提交到仓库」)

  • 远端:[email protected]:admin/contentm_agent.git(Gitea,SSH deploy key 认证,实测有写权限;push 前 git ls-remote 返回空 ⇒ 仓库已存在但为空)。
  • 本地:git init -b main ⇒ 分支 main;局部(⛔ 未动全局)user.name=WorkBuddy/[email protected](可推翻);core.autocrlf=false(保持文件原样,不做 CRLF 转换)。
  • 提交 df56c2c「初始化提交:contentm_agent 工作区全量快照」—— 1773 个文件 / 205.46 MiB pack。分布:参考资料 1162(含 1145 抽帧 jpg + 2 个 mp4,共 231M)|执行会话 335|.workbuddy 233|归档 19|tmp 15|根脚本 5 + .gitignore + 2 份 md + docs 1。
  • .gitignore(新建)只排运行时噪音 28 个:.workbuddy/collab/logs/(4.4 MB 滚动日志)/.workbuddy/*.log/.workbuddy/collab/*.bak* 与 bak-goalctl-*/(脚本备份副本)/.workbuddy/collab/supervise.pid/.workbuddy/tmp//退役的 env-stamp.json.retired-*/tmp/_*.txt(一次性探针)。⛔ 未打折:参考资料 231M 全量入库(用户说"本工作区文件夹",不排除=降级目标)。
  • push 后回读验证(非只看回显):远端 HEAD 与 refs/heads/main 均 = df56c2c137bb8625831829e1385189cb6580af38,与本地 git log -1 逐字一致;git status -sb = ## main...origin/main 无待提交项。
  • ⚠️ 未做:origin/HEAD 未设为符号引用(git symbolic-ref refs/remotes/origin/HEAD 报 not a symbolic ref)⇒ Gitea 侧默认分支需在网页设置里确认;未建任何自动提交排期(用户未要求)。

10:4x–10:5x · 用户令「选中态老用左侧彩色边条 —— 找到源头全面移除」+ 给出 Figma 预览站

一、左色条源头(L3 取证)

  • 唯一要求出处:product-planning/references/stage-delivery/references/layouts-tooling.md 第 234–235 行「当前项用 border-left 指示(3px 实底)」+示例第 205 行同款。oil-ui-pro/references/visual-language.md 第 73 行正好反对(「用单侧色条标重点…是最常见的模型默认之一,『它在表达状态』不能当理由」)⇒ 本段 runbook 的硬要求压过了反 slop 条款。
  • check_naming.py 的 AUTHORITY 表没有这条事实 ⇒ 改它不动门禁口径。
  • 产物同款:mcn-workbench.html 第 121/127 行(.nav-item.is-active 左 3px 色条)、226 行(.list-row.is-active inset 左色块)、371–374 行(移动端改 border-bottom 同族)。

二、已改(改后复跑闸门)

  • 技能:第 205 行示例与 234–235 行判定要点 ⇒ 改成「当前项用元素自身表达:整块浅底 + 字重加重 + 状态词『当前』,⛔ 不用 border-left / inset 左色条」;并注明禁令权威在 oil-ui-pro 视觉语言,不复述清单。
  • 产物:三处 is-active 全改为 color-mix(in srgb, var(--accent) 10%, var(--paper)) 整块底色(导航/列表/移动端),去掉 border-left 与 inset 色条,连带清掉空心占位 border。
  • ⛔ 未动 open-design 第三方素材里的 border-left(纪律:不改供应商件内容)。

三、读数:命名闸门 通过 2060 | 失败 0 | 提示 25(与基线同);原型自检 PASS 81 / FAIL 0;截图 _scratch/p1-v5-noleftbar.png 确认左色条已消失。

四、Figma 预览站(用户给的入口)

  • 用户说点 preview 会打开 https://iso-strong-13397590.figma.site/ ⇒ 实测是 Figma Make 生成的单页应用(标题 AI Content Creation Platform),真 DOM(21KB)+ 一张 Tailwind v4 编译 CSS(94KB)。
  • 已抓落盘 tmp/_figma_preview/:preview.html(DOM)|preview_full.png(整页截图)|site.css(CSS 源)。基座=shadcn/ui + Tailwind v4 默认主题(--primary:#030213、--radius:.625rem、系统字体);紫色强调与彩色图标属组件层。
  • 结构:顶栏(logo+Upgrade Plan+头像)→ 英雄标题+副标题 → 2 张统计卡(含进度条)→「Select AI Feature」5 张功能卡(选中那张=紫描边,⛔ 不是左色条)→ 提示词输入+Generate → 输出空态。
  • browser-harness 可用:BU_CDP_URL=http://127.0.0.1:9223 + 清掉 HTTP(S)_PROXY 变量;独立 profile bu-figma-profile(现已登录 Figma)。⚠️ 抓取前先 switch_tab 到目标标签 —— daemon 当前标签可能落在别的页。

10:5x · 用户令「排查产品规划技能与 oil-ui-pro 视觉规范的冲突并全部修改」—— 全仓对撞

做法:oil-ui-pro 15 份判据全读(SKILL + 视觉语言/组件/点缀/布局视口/交互状态/动效/方向/存量/图标/素材/配图/评审/工具/风格对比),逐条反查 product-planning 三份(③段 SKILL.md、execution-runbook.md、layouts-tooling.md)+ 产物。

硬冲突只有两处:

  1. 单侧色条(上一轮已改)—— product 在第 234–235 行硬要求,oil 视觉语言第 73 行硬禁。
  2. 入场编排(本轮改)—— product 硬禁(4 处:③段 SKILL.md:262/:361 反面清单/execution-runbook.md:302/layouts-tooling.md:310);oil 硬要(动效那份第 5–9 行「每个界面先做三处动效」,第 3 处即「首次进入的一次出场」;且把「界面完全不动」列为模型默认缺陷)。
    • 改法(4 处同口径):⛔ 不做**逐区块**的入场编排(每块各套一次淡入上移 — oil 明列的模型默认);首次进入的**一次**协调出场按 §供给·方法主线 最简档做,一天开几十次的高频页可整段省去。
    • 产物自检同款(mcn-workbench.html:1672 原写「零 @keyframes」)⇒ 改「至多一处,禁逐区块」。

数值口径差(不改值,只在 runbook §3.4 立「差异登记」条):强调色占屏(本项目更严)/页内在用字号档下限(本项目更低)/同屏动效元素数量与错峰区间(本项目更紧)。写法要点:只登记「本项目刻意收严」,一律引 §供给·方法主线,⛔ 不复述 oil 的值(守单一可信源)。oil 那几处原文写的是「预算是起点」「不是死规定」的软值,故不构成硬矛盾。

顺带:layouts-tooling.md §1「状态用 tag 不用整行底色」与 §4「当前项用整块浅底」曾被读成打架 ⇒ 加半句区分(记录状态 vs 选中态)。

读数:命名门禁 通过 2060 | 失败 0 | 提示 25(与基线同);原型自检 PASS 81 / FAIL 0。

旁证(记账):open-design 的 design-templates/live-dashboard/SKILL.md:187 本就写着「No rounded card with a 4px left-border accent」⇒ 左色条是公认的模型默认,上一轮删对了。

未动:open-design 第三方素材里的 border-left(纪律:不改供应商件内容)。产物层小发现(未改):P1 右上角挂「假设」标记 —— oil 视觉语言第 77 行把「界面写制作说明」列为禁项(该类标记应进交付说明),但③段技能并未要求它,属产物自选,故只记录。

13:0x · 🔴 用户定供给治理口径:「oil 是基础,在这个基础上可以叠加其他设计规范」

含义:oil-ui-pro = 基础层(视觉与体验的底线判据);其余各档(定调与令牌/版式骨架/工艺数值判据/本段自有 runbook 与 layouts-tooling)= 叠加层 —— 只许更严、更具体,⛔ 不许放宽或推翻基础层;冲突以基础层为准。 这同时否掉了上一轮的待拍板 B(把入场编排回退成「一律不动」= 推翻基础层,不合口径)⇒ 保留 A(对齐 oil 的动效三处)。

一、治理落地(唯一权威处 + 三处越权口径)

  • ③段 SKILL.md §供给 块新增分层规则(第 33 行,2026-10-08 定案留痕)——供给的唯一权威处,其余引它。
  • ③段 SKILL.md 原第 54/59/307 行写着「供给件不是规范权威…以本段为准/冲突处以本段与 DESIGN.md 为准」⇒ 与「oil 是基础」相反,全改成「本段自有判据是叠加层,⛔ 不许放宽基础层,只许更严」。
  • 总入口 product-planning/SKILL.md 第 109 行「以本项目追加条为准」⇒ 补「⛔ 追加条不得放宽基础层」。
  • ⭐ 这三处「本段越权」口径正是此前让左色条等冲突存活下来的机制(本段判据可压过 oil 的视觉判据)。

二、收紧两处「放宽基础层」的数值(原值允许了 oil 禁止的)

  • 字号档:≥3 档 → 4–6 档(oil 基础=一页 4–6 级)|runbook §3.3 与 §5.1 两处。
  • 动效:同屏动效元素 ≤3 个且有 30–50ms 错峰 → ≤2 个且有 40–80ms 错峰(oil 基础=一两处/40–80ms)|runbook §5.2 + ③段 SKILL.md。
  • runbook §3.4 的「差异登记」重写:只登记收严项(强调色占屏 ≤5%),并写死「放宽 ≠ 叠加 —— 想放宽得先回基础层改」。

三、读数:命名门禁 通过 2060 | 失败 0 | 提示 25(与基线同);原型自检 PASS 81 / FAIL 0(上一轮改后同)。

13:1x · 用户令「看哪些环节需要重新生成,都按新技能要求重新生成」—— ③段四份重生成

受影响环节判定:①段(research 1a–1e)与②段(prd 2a/2b)是文字与块级骨架,与视觉判据无关 ⇒ 不受影响;只有 ③段四份受影响(DESIGN.md・原型・3b-实测记录.md・3c-GPT会诊.md・3d-审查报告.md)。④段本项目未做,N/A。

已重生成:

  • DESIGN.md 6 处:§〇 供给口径(方法主线 → 基础层+叠加层)|§1.1 第 4 条入场编排判据(零 @keyframes → @keyframes ≤1、禁逐区块)|§2.2 强调色允许位置(去掉「左侧 3px 指示条」→ 整块浅底)|§2.5 侧栏导航项(整块浅紫底 + 字重 600)|§六 在用字号档判据(≥3 → 4–6)|§六 强调色取值口径(去掉「3px 左侧标条」);§七 修订记录加一行留痕。
  • 原型 mcn-workbench.html:上一轮已改(三处 is-active + 自检判据)。
  • 3b-实测记录.md 3 处:供给口径/入场编排结论/强调色取值口径。
  • 3d-审查报告.md:S-06 样式描述(旧写 --surface-soft + 左 3px --accent)。
  • 3c-GPT会诊.md:R-07/R-20 两条处置的样式与 @keyframes 描述同步;⚠️ 第 54 行是提问原文(历史记录)未动。

读数:原型自检 PASS 81 / FAIL 0;命名门禁 通过 2060 | 失败 0。

如实登记的两点:① 3c 是对旧版的会诊,严格按技能(3c 必做、未取得外部审查≠已通过)应重跑 —— 本轮改动只在选中态与判据文字,未动会诊覆盖的交互/布局,已写成待拍板;② 标题与正文共用选定套的系统字体栈:字面上没踩 runbook「标题禁用 system-ui」,精神上与 oil 基础层「标题要有自己的性格」有距离 —— 已写成待拍板(补标题字体是视觉决策,不擅改)。

15:3x · 用户拍板:①3c 改成「让 GPT 生成参考版」②标题字体走方案 A

一、技能改动:③段 3c 由「GPT 会诊」改成「GPT 参考版」(用户原话:「GPT 最好的用法是告诉它需求和设计风格,让它按照理解生成一版做当参考」)

  • 与旧做法的实质差别:不传我们的原型 HTML(传了就是让它改编我们的稿、拿不到独立版本)⇒ 改成内联②段需求 + DESIGN.md 定调/令牌,要它独立出一版单文件 HTML + 开头三句话说明。
  • 产物名 3c-GPT会诊.md → 3c-GPT参考版.md;三段式改成「提问原文 → 参考版原文(三句话+完整 HTML)→ 四列对照表」;处置纪律改成「参考版不是命令,是参照物」。
  • 改动落点(技能包内共 15 处):SKILL.md §3c 全节重写 + 子步表 + 顺序句 + 完成标准 + 硬约束 + 反面清单 + frontmatter;runbook §4 全段重写 + 完成标准;总入口 SKILL.md 两处产物名;scripts/check_naming.py 的 subs 名单(3c GPT会诊 → 3c GPT参考版)。references/_留痕/ 历史档⛔ 未动。
  • 读数:命名门禁 通过 2060 | 失败 0 | 提示 25;技能包内「会诊」已清零(只剩 _留痕)。

二、方案 A:补标题展示体

  • DESIGN.md §2.3 新增「标题字体」= 展示体 "Songti SC", "Noto Serif SC", "Source Han Serif SC", "SimSun", Georgia, serif(正文仍走选定套黑体栈);§四 Gate-1 第 6 项(反 slop)同步;§七 修订记录加一行。
  • 产物 mcn-workbench.html:新增 --font-display 令牌,应用 h1 / h2 / .brand(h3 是块内小标题,留在正文族);3d-审查报告.md 3 处(字号档判据 ≥3→4–6、失真项、字体回退项)同步。
  • 读数:原型自检 PASS 81 / FAIL 0;截图 _scratch/p1-v6-displayfont.png 确认标题已走展示体、导航仍是黑体。

未做(下一步):本项目的 3c-GPT参考版.md 尚未生成 —— 要外部 ChatGPT 会话(内联②段需求+令牌 → 取回参考版 HTML)。现有 3c-GPT会诊.md 是旧方法的会诊记录,保留作历史,不改名冒充参考版。

16:3x · 用户选 A(我跑 3c 参考版)—— 卡在 ChatGPT 未登录

  • 浏览器实例在(9223 / pid 47504),chatgpt.com 能打开,但那个独立实例里 ChatGPT 未登录(页面「登录以获取…」、编辑器未出现)⇒ 这一步要用户本人登录(同 Figma 那次)。
  • 已按新 §3c 备好提问底稿:ui/_scratch/3c-prompt.md —— 内联「②段八页骨架+板块清单」+「DESIGN.md 定调+令牌表」+三条要求 +「先给三句话说明」;⛔ 不含我们的原型 HTML(新 §3c 硬口径)。
  • 待用户登录后:原样发出 → 等回答出完取回 → 落 ui/3c-GPT参考版.md(提问原文 → 参考版原文 → 四列对照表)。

16:2x–16:4x · 3c GPT 参考版跑完(用户登录 ChatGPT 后)

跑法:browser-harness 打开 chatgpt.com(独立实例 9223,用户已登录)→ 把底稿(内联②段八页骨架+DESIGN.md 定调/令牌;⛔ 未传我们的原型 HTML)灌进 ProseMirror 输入框 → 点发送(硬证据=输入框清空,两次都核过)。

⚠️ 踩坑(记账,下次省事):① 首答把 HTML 放进了产物面板(artifact),源码不在父页 DOM(渲染壳是跨域 iframe cdn.platform.openai.com/.../runner.html,其 body 仅 943 字节、无嵌套帧);② 面板的「下载文件」按钮自动化下点了不触发(Browser.setDownloadBehavior 已设、坐标点击两次、下载夹为空);③ 「复制」按钮抓到的是消息正文不是源码。⇒ 追加一问「把完整源码贴在回复正文」后拿到:代码块是 <code>(48800 字符)而不是 <pre>(该页 pre 计数为 0,别按 pre 找)。

产出:

  • ui/3c-GPT参考版.md(67.5 KB):提问原文 → 参考版原文(开场说明 + 完整 HTML 48800 字符)→ 四列对照表 8 条。
  • 参考版 HTML 另存 ui/_scratch/gpt-ref.html(可运行);整页截图 tmp/_bh_shots/gpt-ref-full.png。
  • 对话 URL:https://chatgpt.com/c/6ac75440-fc60-83e8-b509-cdd6ec808200。

参考版做了什么:守住了我们的令牌(浅色纸感 + 品牌紫),但骨架借了「AI 内容工作台」那套——顶部横向一级导航(替代左侧栏)+ 居中宽内容区 + 顶栏常驻全局搜索 + 指标卡一排 + 表格化账号矩阵。

对照表里的分歧点:⛔ 不采纳它的「首屏超大主张式标题」(基础层把工具页大标题列为模型默认)、⛔ 不采纳「涨跌用绿」(中文该涨红跌绿)、⛔ 不采纳「每卡一色」;✅ 采纳顶部导航 + 常驻搜索 + pill 状态 + 行级动作;⚠️「账号矩阵改表格」待回②段确认。

未做(下一步):采纳项会改外壳(顶部导航替代左侧栏、常驻全局搜索)⇒ 属③段重做,待用户拍板是否动手。

17:0x–17:5x · 用户新三点口径落地 + 顺手挖出两个真缺陷(外壳滚不动 / 自检假绿)

用户口径(原话):「gpt做的的排版好看多了,但是功能入口还是卡片的形式并排放到数据下面比较好,还有AI内容营销工作台 板块很多,可以在左侧导航分大功能板块,每个板块一个主页面」。

落地的两条:

  1. 左导航分大功能板块 + 每板块一个主页面:#nav 原本一条基础样式都没有(只 640px 那条窄屏规则里写过)⇒ 桌面下四个板块零间距堆着,「分板块」读不出来。补 #nav{display:flex;flex-direction:column;gap:16px} + .nav-group + .nav-group{padding-top:16px;border-top:1px solid --line-soft};每个板块第一个页面即该块主页面,块标题点一下直达,主页那项带「主页」小药丸。⛔ 不许把导航收成 4 项 —— 自检「侧栏八项逐项核」按八个 G-05 判,那是②段八页一次点击可达的落地。
  2. P1 功能入口卡:保持卡片、并排、从统计条下面挪到「今日待处理 + 账号矩阵」之后(数据在上、入口在下)。顺带正收益:P1 账号矩阵首屏由 6 行 → 8 行(首行顶 442 → 332px)。

GPT 那版排版照搬不动 —— 实测过了:它把两块数据做成满宽表格顺排。照搬后(只改顺排、别的不动)账号矩阵首行顶 724px ⇒ 一屏 2 行(契约 ≥6);再把行内第二行小字拿掉逼近单行,首行顶 621px、行距 64px ⇒ 4 行,仍不够。⇒ 满宽表格与「一屏 ≥6 行」在两块现有信息量下不可兼得,要兼得得把每格压成一个短值(动②段定的次级信息档位)。已写进 DESIGN.md §五 第 7 条与 3c-GPT参考版.md 对照表 item 5,未动。

🔴 顺手挖出的两个真缺陷(都在修外壳时暴露):

  • 整页「滚不动」≠「不滚」:外壳只抄了 html,body{height:100%;overflow:hidden},没约束高度链 —— .app 用 min-height:100vh 跟着内容长到 1543px(1440×900 下 P1),.view clientH = scrollH(自己不滚),真正的滚动落到 <body>(实测 body.scrollTop 435),而 body 是 hidden ⇒ 折叠线以下永远拿不到(异常值提示 / 本月表现最好 / 全局检索三块真机看不到)。修:.app{height:100vh;grid-template-rows:minmax(0,1fr)} + .main{min-height:0;overflow:hidden} + .view{flex:1 1 auto;min-height:0;overflow:auto};新增判据「纵向滚动只由主区承担」+ 变异 M14。
  • 🔴 自检在窄视口量密度是假数(假绿):guardScroll 只复位/只核对 window.scrollY,而实际被滚的是 <body>(window.scrollY 恒 0)⇒ 500×844 曾报「一屏装得下 7 行」,真值连 1 行都不到;1024×768 的「4 行」同样是假的。修:applyScene 复位全部三个容器(html / body / .view),guardScroll 改成逐个核四个量;M9 的注入点从 window.scrollTo 重指到 .view.scrollTop(原来那条已经抓不到东西,属假变异)。
  • 连带修:两栏带 .band 的收线从 max-width:1024px 挪到 max-width:900px(原注释写「1024 劈两半后矩阵列不到 300px」,复测实得 336px,三列都不折行)⇒ 1024×900 由 4 行 → 8 行。

🔴 连带推翻的旧结论(这条最要紧):3b / DESIGN.md / 3d 里那个「密度边界 = 768px」是建立在假数上的。真边界 = 901px(= band 收线 900):1440/1280/1024 实测 8 行、1000/960/920/901 实测 7 行(✅);900 实测 3 行、768 实测 2 行、641 实测 1 行、640 实测 3 行、500×844 实测 0 行(❌,P2 在 500×844 也掉到 5 行)。⛔ 这不叫「放宽判据」,是把假绿修成真红。

闸门终态:原型自检 PASS 82 / FAIL 0 @1440×900(81 → 82,多的那条就是「滚动只由主区承担」);变异对照 14 / 14;骨架冻结 PASS,八页 39 个板块;命名一致性 通过 2060 | 失败 0 | 提示 25。

文档同步:DESIGN.md(§1① ⑤ 导航层级+主页面收口形态、§1⑨ 断点表加 901–1024 行+新增「滚动容器」段、§2.3 组件表加三行、§2.4 G-01…G-05、§五 第 7 条整表重测替换 + 新增第 10 条、§七 修订记录两条)、3b-实测记录.md(§二自检全文重落盘、§三变异 14/14、§四 37→39+新指纹、§五整表重测替换、§六新增第 16/17/18 条、§七 D1、§八门槛结论)、3d-审查报告.md(顶部加「2026-10-08 复核」块,逐条列旧值→新值)、3c-GPT参考版.md(对照表 item 1 改判不采纳 / item 4 落位调整 / item 5 卡在密度判据)。

待用户拍板(未动):①≤900px 宽的密度缺口(DESIGN.md §五 第 7 条三条出路,未选任何一条);②要不要把 P1 两块重做成满宽单行表格(=出路②,会动②段次级信息档位);③「本板块功能入口卡」这一形态目前只落在 P1(看矩阵复盘的主页面),要不要铺到 P2 / P4 / P6 三个主页面。

⚠️ 记账:2b-界面布局.md 的 md5 指纹换过一次(旧 1dcc69f9… /15036 字节 /02:30 → 新 61129a3c… /15688 字节 /09:01)—— ②段自己动过一轮,③段手里那条指纹就旧了;指纹只对记下来的那一刻负责。

17:3x–18:2x · 导航收一层 + 照抄参考版左右布局(用户两条新口径)

用户原话:「功能入口放在 数据统计下面,还有好好看看gpt的原型设计,哪里左右布局的功能,照着抄也改抄回了嘛」+「左侧功能导航 只有大板块的导航 只有一层」+「是否应该有8个功能板块,还是有些功能应该合并到一起」。

落地:

  1. 功能入口卡挪到「数据统计」下面(上一轮我放在数据列表下面,理解偏了)—— P1:页头 → 统计条 → 功能入口卡 → 今日待处理|账号矩阵 → 异常值提示|本月最好(左右)。
  2. 左导航收成一层:NAV 由「4 板块 × items」改成「4 板块 + home」,renderNav 只渲染 4 个板块项(40px、当前板块整块浅紫底+600)。板块下的页面不再平铺 ⇒ 给 P2/P4/P6 补了功能入口卡(P2→资产库/创作台、P4→发布中心/账号画像、P6→创作台/发布中心),否则 P3/P5/P7/P8 从侧栏就断了。
  3. 照抄 GPT 原型的左右布局(每页都有一处 .grid.cols2 1.35fr:.9fr):P1 异常值|本月最好、P2 评论区洞察|选题库、P4 工作区|AI产出+资产引用+版本、P6 记忆条目|关联内容、P7 左(待复盘项+表现数据)|右(归因+确认改判+回写)、P8 对账核对区|商单与收支。.grid-main-side 宽比 1:1 → 3:2,收线由 ≤640 提到 ≤900(与 .band 同步)。
  4. 自检判据跟着改:「侧栏二级页项 8 个」→「侧栏只有一层 4 个板块项」+新增「八页一次点击可达(4 板块 + 功能入口卡无缺口)」;4b 由「8 项逐项核」改成「4 板块逐项落主页面」。项数 82 → 83。

为保住密度契约做的三处收高(P1/P2 各一屏 ≥6 行):卡内衬 16→12/16;≤1000px 隐掉卡片描述;≤1024 顶栏内衬 16→8(顶栏 109→93px)。实测边界仍是 901px(901/920/960/1000/1024/1280/1440 全绿)。

踩过的坑(记账):① 在 JS 模板字符串里写 HTML 注释,注释里带 反引号 会把模板字面量提前闭合(node --check 还照样通过,因为 `...` 后跟 .grid 被解析成成员访问)⇒ 页面静默白屏;扫全部注释行剥反引号后正常。② HTML 注释必须写 -->,我漏写成 */,把后面两张卡片行整段吞成注释(症状=P2 板块数 4≠5、P2-03 悬空)⇒ 判据当场报红才抓到。③ 卡片行紧贴数据统计下面时,它的高度直接转嫁给下面那张吃密度契约的列表(P2 由 7 行掉到 5 行)。

闸门终态:自检 PASS 83 / FAIL 0 @1440×900;变异对照 14/14;骨架冻结 PASS 八页 39 板块;命名一致性 通过 2060 | 失败 0 | 提示 25。

我的判断(8 板块问题):8 页不建议合并(每页一个唯一主操作,②段逐页判过;合了就是两个主操作塞一页)。真正立不住的是把「账号画像(跨组)」当第 4 个板块 —— ②段 §三 自己写的是「(跨组)」,它是跨页工具不是板块。已把这个作为待拍板项交用户。


18:2x–18:3x · 导航改 tiaoyue 图标栏 + 八页统一 P1 页壳 + 主列表表格化(第三轮)

用户两条口径(同一轮):「左侧导航参考 tiaoyue 的导航」+「每个板块的首页 样式参考 MCN工作台首页」。

取材(不猜):翻 design-system-tiaoyue 的 library.json / components.md / SKILL.md,tiaoyue 的导航解剖有 5 条独立证据 —— app-sidebar 宽 w-16=64px、每页 nav-item×9 + nav-icon×9 + nav-tip×9(一项一图标一提示、没有文字标签族)、提示是 viewport 级浮层 nav-tips-layer/nav-tips-viewport + is-expand-right。⇒ 落地成 64px 图标栏。

决策(我定的,可推翻):名字从「常驻」挪到「悬停/聚焦时向右浮出」——因为 64px 放不下中文名,tiaoyue 也是这么干的。≤640 的窄屏例外:没有悬停 ⇒ 转成带名字的横滚标签条(把用户先前要过的「看得见短名」保住)。

产物改动(ui/mcn-workbench.html):

  • --nav-w 240px → 64px(去掉 1024 断点的 200px 覆盖);.nav-flat 全套换成 .nav-item(44px 项 + 20px 图标),新增 .nav-tips-layer/.nav-tip 视口级提示浮层 + showNavTip()/hideNavTip()(mouseover/mouseout/focusin/focusout/resize/scroll 六个入口);品牌位收成 32px 方标「营」。
  • 八页统一页壳:页头 → .home-stats 统计条 → .sect-nav 功能入口卡 → 满宽表格主数据块 → 一处 .grid-main-side → 尾块。P3/P5/P7/P8 补统计条与入口卡;P4/P6 的入口卡挪到统计条下面。
  • 主列表表格化:P2 对标内容 / P3 资产条目 / P5 发布记录 / P6 账号列表 / P7 待复盘 / P8 发布记录 —— 一律 .ds-table.tbl-dense 满宽;新增 .tbl-side(栏内表,不套 nowrap)与 .btn-micro(22px 行级动作)。
  • P1 两块由并排改成满宽顺排(照参照物),行高 67px→31px ⇒ 6 行守住。

踩过的坑(记账): ① 模板字面量里写 HTML 注释,注释里带反引号 —— 老毛病又犯(`.home-stats`),把 P2 的模板提前闭合 ⇒ 页面报 stats is not defined、自检没跑完;已剥掉反引号。⇒ 改完必须扫一遍「HTML 注释里有没有反引号」。 ② 顺手挪动作位置:把 P3-03「入库」从单条详情搬进表格行尾 ⇒ 表格只渲染当前分区的行,P3 场景选中的 as3 不在角度分区 ⇒ 自检判「声明了但页面上没有」。已搬回详情(门禁说明长在那里,动作与说明不该拆开)。教训:形态改版不等于授权挪动作。 ③ 两条变异悄悄失效:M2「找不到注入点、跳过」、M8 注了不报红(都因为判据形态变了,注入点还指在旧的 .list-row/.action-cell 上)⇒ 假对照比没有变异更坏。已重指注入点,mutate_test.py 会把「找不到注入点」显式报成 ⚠️。

反直觉实测,值得记:同一个 768px 视口,侧栏 240px 时 P1 首行顶 816px(2 行);收到 64px 后 668px(7 行)。⇒ 主区越窄,密度反而越差(功能入口卡会被挤成两行),「侧栏收窄」与「守住密度」是同向的。

闸门终态:自检 PASS 83 / FAIL 0 @1440×900;变异对照 14/14;骨架冻结 PASS 八页 39 板块;命名一致性 通过 2060 / 失败 0 / 提示 25。 密度边界:由 901px 下移到 768px(≥768 全绿;640 起 P1 5 行、500×844 −1 行 ❌)。⛔ 判据一字未改、needRows=6 写死,两个窄视口的 FAIL 原样留着。

文档同步:DESIGN.md(§1① ⑤ 导航层级与侧栏形态、§1 ⑨ 断点表、§2.3 脚手架、§2.5 换成六行组件、§2.4 G-05、§五 第 7 条整表重测、§六 五处旧值、§七 新修订行);3b-实测记录.md(§二 自检全文整段重落盘、§三 变异 + M2/M8 说明、§五 密度表整表、§六 新增 21/22 条、§七 D1、§八 结论);3c-GPT参考版.md(item 1 改判「结构采纳、载体不采纳」、item 4 扩到八页、item 5 改判已采纳、新增 item 10 导航短名);3d-审查报告.md(第三轮复核块 + §三 B-15、§六 6.1/6.2/6.3、§八 三处数字当场改掉,不让新旧两个数在同报告里并存)。

待用户拍板(沿用):≤640px 宽的密度缺口三条出路(A 支持下限写 ≥768px / B 压列 / C 动外壳)一条未选。


18:3x–18:5x · 顶栏清杂项(用户:页面顶上弄这么多乱七八糟的东西 是那个技能那个规则引起的 需要详细排查 定位 删除)

排查结论:顶栏原有 7 项,没有一项是技能规则要求的。

1、收起侧栏(G-11)—— 无技能规则。来源是我自己写的 ui/布局排版参考-mcn-work-shop.md(§一「侧栏只在需要时出现」+ §五 落地清单第 1 条)。它是参照物笔记,不是规则文件。 2、面包屑 —— 同上来源(§一「导航靠面包屑,不靠固定侧栏」),且与页头 h1 重复。技能包唯一提到面包屑的是 layouts-tooling.md §1:「< 4 项改用页头横向导航或面包屑」——那是「导航项少于 4 项时」的替代方案,我们 8 项,不适用。 3、演示 · 账号(G-07)—— 无来源,我造的原型件。 4、演示 · 状态(G-09)—— 规则原文(stage-delivery/SKILL.md §3d「状态由路由与演示开关驱动」/execution-runbook.md §3.4「路由 + 演示开关」)是并列可选项;要守的是「不用 ?state=」+状态可见,路由那条已完整覆盖(#/p/p4/empty 直达,六态帧与自检 48 组都靠它)。 5、顶栏 全局检索(G-10)—— ②段 P1 第 5 板块是「全局检索与随手记入口」,是页内板块;②段 §286 只把随手记定为全局可达。⇒ 顶栏那颗是重复。 6、假设 2 项(G-08)—— 来源是我自己写的 DESIGN.md §三,而且是第二处(主兑现是板块标题行的徽章)。选改挂:徽章本身可点 → 打开同一个假设浮层。顶栏干净了,复核人/时机/落点一个没丢。 7、随手记(G-06)—— ②段硬要求(2b §59 + §286:「随手记出现在任意页面一次点击内,F2 是 P0,不能埋在两层下」)⇒ 必须挂全局外壳,留。

处置:顶栏收成「产品名 + 随手记」两项;内衬 16→8 ⇒ 49px(原 69px,≤1024 折行时 93px),且任何宽度都不折行。 连带清掉的代码:.crumbs 全套 / .app.side-collapsed / .demo + ≤1000 与 ≤1024 的三处顶栏补丁 / .topbar-label / .switch / #account-pick+#state-pick 填充 / change 监听 / S.sideCollapsed / renderCrumbs()。 门禁随之变化:交互 ID 79→76、真驱动 75→72、data-act 出现 750→638;自检仍 PASS 83/FAIL 0、变异 14/14、骨架 八页 39 板块、命名 2060/0。

顺带修正一处旧账(重要):P2「对标内容列表」第三轮已由行式列表改成满宽表格(行距 31px),但我上一轮没把文档里的数字跟着改 —— 它实际容量是 14 行、任何视口都达标(500×844 也有 8 行)。旧文档里「P2 6/7 行、500×844 下 P2 也不达标」全部作废。⇒ 现在只有 P1 在 ≤640px 不达标。

两条纪律(已写进 3d §十):①别再把「参照物产品的习惯」当需求搬进外壳 —— 6 项里有一半是这么来的;②撤销一个交互 ID 必须同时删掉它的 DOM,否则「页面上每个 data-act 都在清单里」会报红(本轮实测过)。

文档同步:DESIGN.md(§2.4 删 G-07/09/11 + G-08 改挂徽章 + 表下「已撤销的 7 个 ID」;§三 兑现方式;§1 ⑨ 断点表;§五 第 7 条第四轮整表重测;§六 三处旧值;§七 新修订行);3b(§二 自检全文重落盘 + 补回被吃掉的汇总行;§五 密度表第四轮整表;§六 新增第 23 条;§八 结论);3c(item 2 改判:顶栏常驻搜索撤掉,检索留 P1 页内);3d(第四轮复核块;§三 B-15;§六 6.1/6.2/6.3;§八/§九 数字;新增 §十 顶栏杂项来源排查;§四 S-12 改判)。


19:5x–20:2x · 组件口径统一(用户:参考 MCN工作台首页各组件样式 优化各功能页面首页组件样式)

查出三套「选中态画法」+ 两处内联字号,已统一成一套并加判据看住。

1、侧栏当前项:浅紫底(.nav-item.is-active)—— 原本就对。 2、分段控件(P2 选题库分组 / P3 分区 / P5 账号多选 / P5 平台多选 / P5 版本 tab 五处):原来是 .btn btn-sm + 内联 style="border-color:var(--ink);font-weight:600" —— 第三套画法,且靠内联样式铺。 3、表格当前行(P3/P6/P7/P8 四处):原来是内联 style="color:var(--accent-text)"。 4、字号内联覆盖两处:P7 三个数硬顶 --fs-20(用的还是 .grid-cards 那个 P1 不用的容器)、P4 统计条的「/7」。

处置(全部落地):

  • 新增四个组件:.seg/.seg-item(选中项 .is-on = 浅紫底 + accent 文字 + 600 + 描边转 accent)、.field(字段间距,替代内联 margin)、.cell-name.is-on(表格当前行)、.seg 里 .num 继承字色。
  • 五处分段控件 → .seg-item.is-on;四处表格当前行 → .cell-name.is-on;P7 三个数 → .home-stats/.stat-item(与 P1 统计条同一套);P4 去掉「/7」内联字号。
  • P8 对账核对区表:宽松档 .ds-table → .tbl-side(全站表格只剩 dense 与 side 两档)。
  • 行级动作统一 .btn-micro(22px):P2-06/07/09/10、P4-05/08(原来 32px 的 .btn-sm)。
  • P7 待复盘表最后一列表头补上「播放」(原来是无表头的 cell-act,语义错位)。

新增判据 + 变异(关键):自检加第 84 项「组件口径」——八页里 [style*=border-color]/[style*=color]/[style*=font-size] 出现次数都为 0(⚠️ 只查这三样,margin-*/flex/justify-content 这类一次性布局内联是允许的,硬按「内联为 0」判会把正常布局一起判红)。配 M15(把 P2 分组改回内联写法 ⇒ 必须报红)证明它不恒绿。

闸门终态:自检 PASS 84 / FAIL 0;变异 15 / 15;骨架 八页 39 板块;命名 2060 / 0 / 25。 落位未变(P1 324/605/886/1119、P2 143/380/661/1009),密度仍是 P1 688px/6 行、P2 462px/14 行、顶栏 49px。

踩的坑(第 3 次了):模板字面量里的 HTML 注释带反引号(.home-stats / style="font-size:...")→ 页面 Unexpected identifier 'style'、静默坏掉,而 node --check 只在提取 script 后才报。⇒ 以后改完必须跑:「提取 script 到临时 .js → node --check」+「多行扫描 script 区内所有 <!--...--> 块里有没有反引号」。

文档同步:DESIGN.md(§1.1 ⑩ 新增第 6 条拒绝项;§2.5 新增四行组件;§四 Gate-1「共 5 条」→「共 6 条」;§六 新增「内联样式越权」实测行;§七 新修订行);3b(§二 84 项全文重落盘;§三 15/15;§六 新增第 24 条;§七 D1;§八 结论);3d(第五轮复核块;Gate-3 数字)。


20:0x–20:4x · 学参照物的组件细节(用户:MCN工作台 里面每个组件的 样式高度 ICON 都是需要学习的,比如功能入口,感觉没有学到细节)

先纠了一次口径:我上一轮把「MCN 工作台」理解成我们自己的 P1 首页,用户明确「我说的是 MCN 工作台 不是 GPT」⇒ 参照物 = mcn-work-shop(已上线那套),源码在 E:/ProgramData/AIProject/mcn-short-video/project/短视频脚本创作/V1.0/mcn-work-shop/public/(只读,⛔ 未改对方文件)。

逐件回源站量到的关键值(style.css 行号 + app.js 生成函数): 1、功能入口卡 .data-card(style.css:387-392 + app.js:332-336)—— 名字与我们同名(从笔记照抄来的),但细节几乎全丢:它有三个子元素(.data-card-icon / -title / -desc),图标是 svgIcon(icon, **22**) ⇒ 22px 单色图标;卡内 flex column; gap 6 三段纵向;内衬 16px 18px;标题 17/600;描述 14;网格 minmax(200px,1fr) gap 14;hover = 描边转主色 + translateY(-2px) + 彩色阴影。 2、图标系统 svgIcon()(app.js:196-207):viewBox 24 / fill none / stroke currentColor / stroke-width 2 / 圆头圆角;尺寸用法 卡 22 / 功能卡标题 18 / 按钮 16;颜色走 ICON_COLORS(8 个图标 8 个色相)。 3、统计条 .home-stat-item(style.css:383-386):无框,flex:1; padding:2px 12px; border-right:1px solid rgba(主色,.16);值 26px/700/主色;标签 13。 4、问答区:.qa-row{padding:6px 8px; font-size:15px};可复制行 hover 出 📋;.func-card .qa{**border-top:1px dashed**; padding-top:8px}。 5、顶栏 .topbar{padding:10px 20px; gap:20px}(约 52px);.ghost{padding:6px 14px; radius 8};.panel{padding:24px}。

本轮落地(产物):

  • 功能入口卡补图标:17 张卡全部改成「22px 图标 + 标题」一行 + 描述一行。图标=目标页自己的图标(复用侧栏那 8 个 NAV_ICON),⛔ 不另造图标库 ⇒ 同一目标在侧栏与卡片上长得一样。抽出唯一出口 navSvg(page,size)。
  • 图标线宽 1.7 → 2(学参照物的 lucide 标准),侧栏与卡片一起改。
  • 网格最小宽 180 → 200;hover 补轻阴影 L1;⛔ 不做 translateY(-2px) 抬起(本项目动效纪律)。
  • P1 问答区加虚线分隔 .qa-block。
  • 形态取舍(重要):参照物首页那 4 张卡是「图标 / 标题 / 描述 三段纵向」,我改成「图标+标题同行、描述在下」—— 三段纵向卡高约 92px,P1 首行顶会顶到 722px ⇒ 一屏只剩 5 行(破密度契约)。⚠️ 而且「图标+标题同行」正是参照物自己的 .func-card h3{display:flex;align-items:center;gap:8px} 写法,不是我编的。

三条刻意不学(写进文档,理由齐):它的冷灰蓝品牌色 / 8 色相图标 / 圆角 12px 体系。

新增第 5 个门禁 _tools/check_js.py:抠 <script> 段跑 node --check + 多行扫描 script 区内每个 <!-- … --> 块里的反引号。 起因:「模板里的 HTML 注释带反引号」踩了第 4 次(本轮又踩一次,Unexpected token '{')。已做变异对照:注入一个反引号 ⇒ FAIL 2 项、退出码 1(证明不恒绿)。

出了一次窄屏回归并收回:加图标那轮只量 1440(697px/6 行 ✅)就往下走,回头跑逐视口表发现 640 由 5 行掉到 3 行(卡片变高 + minmax 180→200,608px 主区装不下三张卡、折成两行)。补 ≤640px 紧凑档(内衬 8/12、图标 18px、最小宽 160px、隐「功能入口」小标)⇒ 640 转绿(6 行),500×844 由 −2 回到 −1。收线由 ≥768px 下移到 ≥640px;不达标的视口只剩 500×844 一个。

闸门终态(5 道):自检 PASS 84 / FAIL 0;变异 15 / 15;骨架 八页 39 板块;命名 2060 / 0 / 25;语法门禁 全过。 落位:P1 首行顶 688→697px(块落位 333/614/895/1128);P2 471px(143/389/670/1018)。

文档:3d-审查报告.md 新增 §十一「参照物组件细节对照」(11.1 功能入口卡 10 项逐条对值 + 11.2 其余组件 9 项,每项写「学没学 / 为什么不学」)+ 第六轮复核块;DESIGN.md §2.5 新增「图标(唯一出口 navSvg)」「问答区」两行、重写「功能入口卡」行,§五 第 7 条与 §六 六处实测值回填,§七 新修订行;3b-实测记录.md §一 复跑命令加到四条、§二 全文重落盘、§五 密度表第六轮整表、§六 新增第 25(反引号门禁)26(窄屏回归)条、§八 结论;布局排版参考-mcn-work-shop.md 补 §六「组件细节实测」;MEMORY.md 加两条长期纪律。


第七轮 · 功能入口卡按参照物改三段纵向 + 取证通道改「只连不起」(2026-10-08 晚)

用户口径(两条):①「功能入口的高度还是没有 参考 MCN 的首页的功能入口 按钮的样式和布局」;②反过来点破取证方式「为什么要重新开浏览器,先检查之前是否开过浏览能否复用」,并要求把这条写进 browser-harness 技能。

① 先查浏览器,别新起:netstat -ano 查到 9223 上有一个常驻实例(pid 47504,今早 10:40 起),里头已开 4 个标签页(含本项目的 _scratch/gpt-ref.html)。⇒ 直连复用,不另起。这条规则已写进 E://ProgramData//.workbuddy//skills//browser-harness//SKILL.md 的「🔴 本机(用户明令)」段:动手先 netstat 探 9223 → 在跑就直接连 → list_tabs() 摸清页 → 需要新页自己 new_tab(),⛔ 不碰别人的页、⛔ 不为自己方便关掉现有页;并加一条「⛔ 别自建取数通道(量一个高度就另写脚本起 Chrome)」。

② 顺着这条规则把 _tools/cap.py 也改合规:从「自己 chrome.exe --headless --window-size」改成走 CDP Emulation.setDeviceMetricsOverride 只连 9223 上已有实例(CLI 不变,mutate_test.py 不用改)。三个后果:视口变成声明式(要多少是多少,dump 里印实际 innerW/H 并断言);--window-size 的偏移量口径整段作废;500px 宽度下限解除 —— 已实测 390×844(PNG 尺寸当场比对通过)。⚠️ 本轮一度新建 _tools/measure.py 量几何真值,因它自己起 Chrome,写完即删(量几何改用 harness 直连,脚本放 _scratch/)。

③ 功能入口卡:先量再改。同视口 1249×1277 并排量参照物与我方:卡高 133px vs 68px;差的主因是排布(我方把「图标+标题」并成一行 ⇒ 少一段 + 少两次 6px 段间距),次因内衬 12/16 vs 16/18、字号 16/12 vs 17/14;另发现参照物卡片自带阴影而我方是平的。⇒ .data-card 改三段纵向(图标独占一行 → 标题 → 描述)+ gap:6(mg-6) + padding:16(sp-16) + 标题 --fs-18 + 描述 --fs-14 + 补 --sh-L1;三处刻意不学(圆角 12px / translateY(-2px) 位移 / 一个功能一个色)。实测卡高 68 → 111.19px(参照物同宽 113px)。

④ 改完立刻发现密度掉了,且先做了基线对照:改卡后 1440×900 的 P1 由 6 行掉到 5 行(首行顶 697 → 740)。先把本轮两处改动回退成 _scratch/base.html 跑同一套判据拿基线 ⇒ 改前绿 1440/1280/1024/1000/960/920/901/900/840/820/640、红 768/700/560/500;收口后逐格完全一致(这是本轮全部正当性)。⚠️ 顺带查出一处旧错数:上一版把 768 记成「677px/7 行 ✅」,改前版本实测是 741px/5 行 ❌ —— 根因正是旧取证通道的视口歧义(768 恰好卡在卡片「3 列/2 列」阈值 632px 上,只差 7px);连带作废「≥640 全绿」的旧结论。 还账三处(实测 740 → 701,−39px):删「功能入口」小标(−24.6,八页各一处,参照物本来就没有小标)/统计条下边距 8→6(照参照物 .home-stats{margin:0 0 6px})/.block-head 下边距 12→8(P1 上方三处,−12)。≤640 追加:卡内衬 8/12→6/8、图标 18→16、标题 18→16、.block 上边距 32→24(实测 724 → 700)。768/700/560/500 那四处红是改前就有的,本轮没顺手改(免得混淆「本轮改了什么」和「本来就有什么」)。

闸门终态(5 道,全部在改完之后跑):自检 PASS 84 / FAIL 0(1440×900);逐视口 15 个:绿 1440/1280/1024/1000/960/920/901/900/840/820/640,红 768/700/560/500;变异 15 / 15;骨架 八页 39 板块;命名 2060 / 0 / 25;语法门禁(check_js.py)全过。 新挂的纪律:「改完只量主视口」这个毛病犯了两次(第六轮 640、本轮 1440),两次都是逐视口表兜住的 ⇒ 已写进 DESIGN.md §五 第 7 条;另两条:改组件高度前先跑改前基线 / 学参照物就量到数值,量不准就写「刻意不学 + 理由」。

文档:DESIGN.md §2.5「功能入口卡」行重写 + 新增「功能入口那一行(.sect-nav)」行、§五 第 6 条作废+第 7 条第七轮整表、§六 实测值回填、§七 新修订行;3b-实测记录.md §一 加「复跑前先探实例」、§五 整段重写(含 768 错数更正与通道口径改写)、§六 新增第 27–30 条、§七 D1/D2 改判「已修」、§八 结论;3d-审查报告.md §十一 11.1 改成第七轮真值表 + 新增 §十二「65px 高差怎么差的、又怎么还的」;布局排版参考-mcn-work-shop.md §六 补卡片渲染实测高(133/113px 的拆解)。

补令(20:48):用户「后续调试网页 一个页面开一个标签就行了不要反复开」。查处现场:共享实例里 5 个标签页,其中第 5 个(mcn-workbench.html)是本会话留下的尾巴 ⇒ 已 close_tab() 关掉,回到用户原本的 4 个。规则写进 browser-harness/SKILL.md「🔴 本机(用户明令)」段:同一页面全程一个标签(换路由改 hash、换视口用 Emulation.setDeviceMetricsOverride 在同标签里改,⛔ 不复开);只有「并排对比两个不同页面」才开第二个、用完立刻关;收工前 list_tabs() 复核,自己开的一个不留、也别关别人的。 用户追问「左侧导航 参考 tiaoyue 这个事处理了吗」⇒ 老实说只做了一半:第三轮只做了形态(64px 栏、nav-item/nav-icon/nav-tip 各 9 个),而且是照 library.json 的计数猜的 —— 包里 tokens.css 没有一条导航几何、design-system.html 里 app-sidebar 0 处 ⇒ 猜出来的「纯图标栏、名字只走悬停提示」与源站正好相反。

回源站 https://www.tiaoyue.com/ 实测(只连已有实例、量完即关;先强制 data-theme=light 取亮色形态):栏=64px 药丸浮栏(rounded-[100px]/p-[3px]/bg rgba(100,112,160,.08)/border 1px rgba(100,112,160,.14)/无右边线);项=56×78 药丸(w-14 h-[78px]/p-4/gap-1.5/rounded-[54px]/text-xs font-medium leading-4);图标 24(size-6)在上、名字 12px/500 在下,两者都常驻;is-active=bg rgba(31,35,41,.06)+满墨、is-inactive=透明底+字 rgba(31,35,41,.55);项间无 gap;hover 只 transition-colors。nav-tip/nav-tips__row(158×78,与项逐项对齐)的内容是说明(「发现灵感与精选内容」),⛔ 不是名字重播。

改动:.sidebar 改药丸浮栏(align-self:center、随内容高);.nav-item 改 56×78 药丸(内衬 16/段间距 6/圆角 54/图标 24/名字常驻/中性填充状态);NAV 短名一律收到 2 字(账号画像→画像、记录与对账→对账、找选题→选题、资产库→资产;页面标题不变)并新增 desc;提示改读 desc;≤640 档补「药丸那一套整段还原成通栏横条」。⛔ 三处刻意不学:填充字形图标(我方保留 mcn-work-shop 的描边图标)/真浮层(仍占一列,差 16px)/逐项对齐的说明列。

验收:五道闸门全过 —— 自检 PASS 84/FAIL 0、逐视口 15 个绿/红分界与改前逐格一致、变异 15/15、骨架 39 板块、命名 2060/0/25、语法全过。⚠️ 这次是少见的「只改外观、不动布局」:栏宽仍 64px 定值,项 44→78 只让药丸变高,15 个视口首行顶一格未动 ⇒ 不需要还账。

文档:DESIGN.md §1① ⑤/§1.1 ⑨/§2.3 两处/§2.4 G-05/§2.5 拆成两行+提示行改口径/§六 实测/§七 新修订行;3d-审查报告.md 新增 §十三「tiaoyue 左侧导航样式对照」(13.1 先在包里找→回源站的取证链、13.2 逐条实测表、13.3 三处不学/一处没做、13.4 验收);3b-实测记录.md §二 侧栏行重落盘、§五 侧栏列改「64px 药丸浮栏」×12、§六 第 31 条、§八 补一句。原型里描述现状的「图标栏」全改「药丸浮栏」(历史修订行保留旧称)。


复盘 · 为什么第一版「结构全对但仍然难看」(用户 21:53 追问,出 ui/复盘-为什么第一版做得很差.md)

用户原话:「现在有设计的感觉了,为什么一开始 用了 oil-ui-pro 和 tiaoyue 的设计样式,界面设计和排版都很差呢,哪些技能和规则起了反作用,需要从头到尾详细复盘」。

三句结论: 1、技能早写了治这个病的判据 —— layouts-tooling.md §5.5 五条反「实习生审美」硬判据,文末原话「§5.5 五条过不了就别交付,它们正是『结构全对但仍然难看』的缺口所在」(=本次事故的诊断书)。病不在"没写",在这五条被挂成人工勾选项、没有任何取值实现,而我在 3d §九 收口清单里给了 ✅ 自检机核 ⇒ 把"没检查"写成"已通过"。这是第一责任,已当场更正那条为 🔴 说明。 2、③段整套验收里「好看」没有载体 —— Gate-3 的八项目眼项(裁切/重叠/失真/失效控件/缺状态/响应式破损/控制台报错/字体回退)全是"有没有坏";runbook §7 完成标准二十几条没有一条要求视觉评分。唯一有"好评判"的是 oil-ui-pro 的 10 分制评审(目标 9 分、最多三轮)+ 模型默认审美自查,它没被挂进 ③段任何 Gate ⇒ 一次都没跑。⇒ 制度上"丑"不会被任何一关拦下。 3、四条规则被用偏:供给把"有令牌"当"有设计"/自建令牌刻度反过来否决参照物/密度契约被升格成全局否决权/「⛔ 不许编」被用成"少做"。

关键实测证据(全部现算):

  • §5.5 零覆盖:grep 原型 标题区0 /从属0 /注脚0 /主次0 /主角0 /假装分组0 ⇒ 自检 84 项里 §5.5.1/§5.5.3/§5.5.4 零覆盖,§5.5.5 被第 6/7/8 条覆盖,§5.5.2 被反向违反。
  • 现状仍不合格的两条:P1 上 4 张统计卡(各 312.25×77.59)+ 3 张入口卡(各 421.66×111.19)宽高与最大字号全等 ⇒ 撞 §5.5.3「并列 ≥3 卡必须有一张主卡」;统计条是一个一个白底描边圆角卡 ⇒ 撞 §5.5.4 点名反例「Bordering every card to fake grouping」。
  • §5.5.2 原文:「主导航默认必须带文字标签(宽 ~240–280px),⛔ 不许一上手就是 52px 纯图标栏」「允许 64px 纯图标,仅当它有明确的可展开入口且默认展开」⇒ 我第三轮两条路都不占(64px + 标签 display:none)。且用户口径「参考 tiaoyue 导航」与这条判据正面冲突,当时没报出来做裁决。
  • 供给实质:design-system-tiaoyue 只到调色板级(色值/圆角/字体/按钮),tokens.css 零导航几何、design-system.html 里 app-sidebar 0 处、library.json 只有计数(summary.tailwind: 659 ⇒ 几何在 class 名里)⇒ "用 tiaoyue" 退化成"用它的颜色",几何全靠猜、猜错查不出来。
  • 刻度反过来否决参照物:圆角 12→16、gap 14→16、内衬 16/18→12/16、标题 17→16、描述 14→12、面板 24→12 —— 每条都合理,合起来就是"不像"。
  • 密度契约被升格:原文只是 §1 行式列表的一条判定要点,我做成了硬闸并让它压过一切(行高 31、≤1000 隐描述、删小标、面板内衬 12、卡从三段压成两段);三个附带缺陷:按当前视口算 ⇒ 15 视口里 4 个永远红;没定义 cap 与数据条数 n 的关系;每改外观都要"还账"(打地鼠)。
  • 自造物料冒充依据:布局排版参考-mcn-work-shop.md(我写的笔记)把「收起侧栏」「面包屑」带进顶栏,G-11 证据栏写「来源是本项目参照物笔记」⇒ 顶栏 7 项杂物。
  • 13 轮里第 8–13 轮全是修正轮,且每轮都由用户点破触发;前 7 轮没有任何一轮是"用户看完说不错"。

要立的三条(已写进复盘 §五,可推翻):① 闸门必须声明它不量什么(本次事故本质=闸门没说的那句被我补成了"应该都管");② 凡挂人工项必须给机检实现,给不出就写死"本条无机检"并 ⛔ 不许记 ✅(落法:§5.5 补成自检第 85–89 项;⚠️ 一补上就要红,③④ 两条当前不合格,得一起改);③ 参照物原值与我方刻度冲突时必须报出来,⛔ 不许默默"就近落位"(落法=量到数值 → 差异列表 → 逐条"学/不学+理由+代价",第七轮已用过一次,固化成规矩)。

产物:ui/复盘-为什么第一版做得很差.md(〇 三句结论 / 一 13 轮时间轴 / 二 四类反作用 A1-A3 B1-B4 C1 D1-D4 逐条给原文与证据 / 三 为什么五道闸门全绿和难看能同时成立 / 四 已修与仍欠 / 五 要立的三条 / 六 收束);3d-审查报告.md §九 那条假 ✅ 当场更正为 🔴 说明。


第八轮 · A 方案收密度 + 规则侧整改(用户 22:03 三条口径)

用户原话:「1、不光是保持现状,要增加 agent 主导航规则,或优化现有规则」「2、A 方案」「不光是复盘,起反作用的 规则要优化或清理」。

① A 方案(原型侧):≤1000 功能入口卡最小宽 200→160px、≤820 统计条最小宽 132→96px。结果:768(3→7 行)、700(0→7 行)、560(2→6 行)三处转绿,640 首行顶再降 15px,500×844 由 −2 回到 2 行(仍是唯一红);其余 10 个视口一格未动(auto-fit 只在真装不下时才缩 ⇒ 不是拿宽屏换窄屏)。 顺带修一个真缺陷:移动档标签条里压着一根 16px 高的横向滚动条(条子本体只有 52px ⇒ 三成高度是灰杠),藏轨后 560 的 1 行缺口补上。实测证据:.sidebar offsetHeight 68 / clientHeight 52。⛔ 藏轨 ≠ 删滚动能力。

② 规则侧(用户点名"要真改",共改 3 份文件 6 处 + 顺手修 3 条既有 FAIL):

  • layouts-tooling.md:§5.5.2 判据订正(「栏宽 240–280px」→「名字必须常驻可读」,原判据把手段当目的);新增 §4.9「导航栏」一档(两套合规形态 64px 药丸栏/240–280px 宽栏 + 当前项只改颜色 / 窄屏整段换形态 / ⛔ 横滚条不许画滚动轨 / 图标一处出口 / 悬停提示写说明 / ⛔ 不许照计数反推形态)+ §0 形态表加「导航型(外壳)」行;§1 密度契约补适用范围(只管行式列表/表格式清单的主数据块、给出 cap 口径、⛔ 不许拿它否决参照物形态、只量一档视口不算过);新增 §5.6 两条元规则(参照物冲突三步走 / 自造物料不得当判据来源)。
  • stage-delivery/SKILL.md 供给块:「定调与令牌」补能力边界(只到调色板级,几何与版式不在包内);「工艺数值判据」补无供给时怎么办(四项记为证据缺口);版式骨架档数 八→九。
  • execution-runbook.md:Gate-3 补两条硬要求(「看过」必须有落盘评分记录 / 人工项必须给机检否则写死"本条无机检",⛔ 不许打无取值手段的 ✅);§7 完成标准补三条勾选项。
  • 顺手修掉 3 条既有 FAIL(不是本轮引入):闸门 AUTHORITY 里「停线规则」的 authority: None 是 bug(=连权威处也不许写,且 SKILL.md 里真的没有这条规则)⇒ 改 SKILL.md + 把规则补进「执行规则」;stage-proto-doc:22 与 usage-scenario:103 两处废路径 strategy/ ⇒ research/1d产品策略 / research/1e使用场景。闸门 2057/3/29 → 2060/0/27。

闸门终态(五道全过):逐视口 15 个(绿 14 / 红只剩 500×844);变异 15/15;骨架 39 板块;命名 2060 / 0 / 27;语法全过。自检 PASS 84 / FAIL 0(1440×900)。

还欠:§5.5 五条的机检实现(自检第 85–89 项)—— 一补上,P1 的「并列卡无主次」与「统计条靠边框分组」会立刻报红,两处要一起改。

文档:DESIGN.md §1.1 ⑨ 断点表整表校正(原表区间重叠)+ §五 第八轮密度表 + §七 新修订行;3b-实测记录.md §五 第八轮块 + §六 第 32/33 条 + §八;复盘-为什么第一版做得很差.md 新增 §七「第八轮规则侧实际改了什么(逐处清单)」、§五 标注已落地。


第九轮 · 提交仓库(用户:「确认优化调整完毕后 提交仓库」)

先核实再提交 —— 上一轮留的疑点先查清:技能仓 HEAD 是 7a476f9(maogeigei,10-08 22:11「术语更名第一步:执行会话/任务会话 ⇒ 项目会话」),我第八轮那 5 处编辑已被另一个会话随它的提交一起带走,逐条验过都在 HEAD 里:product-planning/SKILL.md:181 停线规则 ✅|layouts-tooling.md §0「导航型(外壳)」行 + §4.9 导航栏 + §5.6 两条元规则 ✅|execution-runbook.md Gate-3 ①/「本条无机检」/§7 两条勾选 ✅|stage-delivery/SKILL.md 供给块三处(能力边界/九档/证据缺口)✅。 ⚠️ 上一轮记的「SKILL.md | 1 + 与我改动量对不上」是误读:那是同一次提交里多文件合并后的行数,不代表内容缺失 —— 判「改动在不在」要看 git show HEAD:<文件> | grep,⛔ 不看 --stat 行数(记一条)。

工作区仓(E:/ProgramData/AIProject/contentm_agent,分支 main):

  • 提交 eee042c「③段第八轮收口:功能入口卡按参照物对齐 + 导航按 tiaoyue 源站重建 + 密度 A 方案」,48 文件 +8222 −1752;已推 df56c2c..eee042c。
  • 提交前补 .gitignore 排运行时噪音(?? 由 28 项降到 16 项,误加检查 = 0):**/ui/_scratch/(34M 取证中间件)、__pycache__/、tmp/_bh_shots/+_figma_preview/+_gpt_dl/+_bh_chrome.log、*.bak-*、tmp/fix_*.py/dup_scan*.py/bh_keep_chrome.py、.workbuddy/.load-pending(技能加载运行时标记,59B)。
  • 随本次入库的新增真资产:ui/复盘-为什么第一版做得很差.md、ui/布局排版参考-{AI内容工作台,mcn-work-shop}.md、ui/3c-GPT参考版.md、ui/_tools/check_js.py、ui/_gate_shots/ 新增 7 帧(P1-1440-7th/P1-768-8th/P1-nav-8th/P1-nav-640/P2-1440-7th/spot-390/spot-640)、prd/骨架优化方案-v1-作废-形态误归②段.md+v2-②③分段.md、tmp/_oldtask_backup.xml。
  • 同时带上积压未提交的机制改动:.workbuddy/collab/collabctl.py(off --ws 不再全机扫描)、collabd.config.json/supervise.switch(协作机制停用态)、两份 memory。

技能仓(E:/ProgramData/.workbuddy/skills,分支 master):

  • 提交 44d42b0「browser-harness:补两条浏览器复用纪律(用户当场点破)+ 入库积压的『调 AI 工具提问方法』」;已推 7a476f9..44d42b0。
  • ⚠️ 该仓分支 master 没有配 upstream ⇒ 必须显式 git push origin master(git push 不带参数会报 no upstream)。
  • ⚠️ 提交者身份是全局 maogeigei <[email protected]>;而工作区仓是局部 WorkBuddy <[email protected]> —— 两仓身份不同,属正常,⛔ 不要"统一"掉。
  • ⛔ 8 个 ?? 第三方技能目录未动(AI HOT/、draw-ui/、dsh-diagnose/、dsh-knowledge/、dsh-local-env/、dsh-opensource-release/、dsh-workflow/、oil-motion/、skills-security-check/):不是本轮工作,留给用户决定要不要入库。

两仓推送后状态:均与远端同步(main...origin/main/master 无 ahead)。


第九轮补 · 全局技能仓的并发推进与覆盖(用户追问「提交仓库指的是 E:\ProgramData.workbuddy\skills 吧」)

回答:是 —— 本轮改的 5 个技能文件全在全局仓,提交 44d42b0 已推送(7a476f9..44d42b0)。

但仓已被另一会话推快:我推完几分钟内又冒出 5 个提交 —— 1d7d31a/90e892e 撤销误用的「项目会话」更名 + 说人话新稿按合并落地(141 处措辞替换)|805f1ba/d26c844 对外叫法落定(机制叫「项目机制」)|e03465c 把此前未纳管的 9 个技能目录一并入库|237a09a 修 draw-ui·oil-motion 被子模块指针收录的问题。全局仓 HEAD 已到 237a09a,工作区干净、与远端同步。 ⇒ 我上一条回复里那句「9 个第三方目录未动、等你决定」已过时 —— 另一会话已按用户令把它们入库了。

覆盖实录(逐条用 git show HEAD:<文件> | grep 验):

  • 🔴 被覆盖:stage-delivery/SKILL.md 供给块三处(能力边界/证据缺口/九档)—— 整块被重构成另一种表结构(三列「供给位|管什么|用在哪」),我的三处不在其中;layouts-tooling.md §5.5.2 标题从「导航栏的判据是『名字常驻可读』,不是『栏有多宽』」换回旧标题「导航栏不许只有图标(治法:默认带标签,折叠才收)」。
  • ✅ 判据正文仍在(只是标题回退):名字必须常驻可见 / 64px 窄栏 2 字上限 / 栏宽不是判据 /「形态细则走 §4.9 导航栏」。
  • ⚠️ 新缺陷:§5.5.2 里「实证:…」同一段写了两遍(合并留下的重复,一行「实证:」+ 一行「实证(原文引用保留):」)。
  • ✅ 完好:product-planning/SKILL.md 停线规则(1 处)|layouts-tooling.md §4.9 导航栏(3 处)+ §5.6 两条元规则(1 处)|execution-runbook.md「本条无机检」(1 处)|browser-harness/SKILL.md 两条浏览器纪律(该文件在我之后无人动过)。

教训:全局技能包是多会话共写、推进以分钟计 ⇒ 改前先 git log -1、改完立刻提交,别攒;判"我的改动还在不在"一律 git show HEAD:<文件> | grep,⛔ 不看 --stat 行数。


第十轮 · B 方案补落(用户:「另一个会话已完成 B方案」)

核实现场与"已完成"不符:全局仓 HEAD 仍是 237a09a(22:29),两个目标文件 mtime 停在 22:21,git fetch 后远端无新提交,工作区也无相关未提交改动(只有 session-mechanism/references/manifest.md —— 另一会话在清 product-planning 下 5 个遗留 .bak)。另排除"做在别处":全机只有 E:\ProgramData\.workbuddy\skills 一处技能包,各工作区 .workbuddy/skills/ 下无 product-planning 副本,旧位置 C:\Users\Administrator\.workbuddy\skills 不存在。⇒ B 方案实际没做,由本会话补做。

四处锚点回填(逐条 grep -c 验过 = 1):

  • layouts-tooling.md §5.5.2 标题回填「导航栏的判据是『名字常驻可读』,不是『栏有多宽』(2026-10-08 订正)」+ 回填「订正原因」段(手段/目的之辨 + tiaoyue 源站实测 栏 64/项 56×78/名 12px + 反向事故"把标签 display:none");清掉合并留下的重复「实证:」行。
  • stage-delivery/SKILL.md 供给块三处:① 能力边界(自带样式库只到调色板级,几何与版式不在包内)② 九档(工具型走 layouts-tooling §0,含「导航型(外壳)」= §4.9)③ 证据缺口落盘(四项无来源必须逐项进 3d,"提一句"不算完)。

⚠️ 自查抓到一处自己引入的违规:新增句里顺手列了那 8 个骨架名(hero/features/stats/…),撞 AUTHORITY 的「可选档骨架名单只许在 layouts-tooling 开头写一次」⇒ 改成不复述,重跑确认 stage-delivery/SKILL.md#46 位置消失。教训:写"不复述"时别顺手把名单抄进来。

🔴 闸门现状:通过 2048 | 失败 12 | 提示 27(第八轮收口时为 2060/0/27)。这 12 条全由另一会话那批提交引入:四段表子步列含 3c GPT参考版|②③边界复述|停线规则复述 ×3|可选档骨架名单 ×4|说人话门槛 ×5|对比度门槛|设计契约字段|②—③定案原话 ×5|1b 定案原话 ×4|grill-me 火力点 ×2|strategy/ 旧路径(SKILL.md#141)|ux/ 旧路径(SKILL.md#77/142/143)。⛔ 本会话改动零新增 FAIL(提交前后各验一次)。

提交:46bee95,已推 237a09a..46bee95(回退方式:git revert 46bee95)。


第十一轮 · 闸门 12 条 FAIL 的归因坐实(用户质疑「别的会话没处理过这个技能」)

用户质疑:「这个不都是产品规划的技能吗 别的会话没有处理过这个技能」⇒ 复核后质疑不成立,那个会话确实处理过。

铁证(抽版本对跑,可复现):

  • git archive 44d42b0 product-planning 抽出来跑闸门 → ✅ 命名一致性全过(0 失败)
  • git archive 1d7d31a product-planning 抽出来跑 → 2048 | 失败 12 | 提示 27
  • git diff --stat 44d42b0..HEAD -- product-planning/scripts/check_naming.py → 空(判据在整个区间零改动;它最后一次被改是 7a476f9,在 44d42b0 之前) ⇒ 12 条是 1d7d31a(10-08 22:22,作者 maogeigei)一步引进来的,不是长期欠账,也不是判据变严翻旧账。

该提交的改动范围:product-planning 下 7 个文件(SKILL.md、stage-delivery/SKILL.md、execution-runbook.md、layouts-tooling.md、stage-discovery/SKILL.md、stage-requirements/SKILL.md、create-prd.md)+ session-mechanism 两个。

改动性质像回退,不像合并(以 stage-requirements/SKILL.md 为例):

  • 把 ## ⭐⭐ ②—③ 交接口(唯一权威处 · 改边界只改这一块 · 2026-10-06 用户定案) 的「唯一权威处」声明连同下方说明整段删掉
  • 删掉「为什么立这一块:停线规则被三段写成三种、②段写成四种……」那段(这段正是「单一可信源」门禁的立法理由)
  • 删掉「⛔ 交给③段时骨架是冻结的…」那条 ⇒ 权威处声明被削弱之后,复述就重新长回来 ⇒ 修法顺序必须是先恢复权威处声明、再清复述,反了会反复。

产出:技能包闸门待修清单-20261008.md 加第五节「归因铁证」(两版本对跑的可复现命令 + 三条证据 + 改动性质),供用户带去与那个会话对质。


第十二轮 · 重大发现:全局技能包当前版本不是最新调整版(用户追问「全局版本不应该是最新的吗」「确定修改后是之前调整后的最新版本吗」)

结论:不是。 当前版本 = 另一个会话的「说人话新稿」整文件覆盖了 product-planning 下 7 个文件,把晚于那批新稿的调整一并抹掉了。

硬指标:「单一可信源」类声明 5 处 → 1 处

  • 44d42b0(第八轮收口,闸门全过)有 5 处:SKILL.md 1 | references/stage-delivery/SKILL.md 2 | references/stage-delivery/references/layouts-tooling.md 1 | references/stage-requirements/SKILL.md 1
  • 当前 HEAD 只剩 SKILL.md 那 1 处 ⇒ 丢了 4 处(其中 stage-requirements 那处我已恢复)
  • 最重的一处:stage-delivery/SKILL.md 的 ## 供给(唯一权威处 · 改供给只改这一块) 整节标题消失,六行供给表(方法主线|定调与令牌|版式骨架|工艺数值判据|独立评审协议|多方向比选)被换成另一种三列表
  • layouts-tooling.md 开头「骨架名单与理由只在本节写一次」的声明也没了

🔴 口径被翻转(与用户 2026-10-08 定案相反)

  • 用户定案(44d42b0 落地):默认主线 = oil-ui-pro;open-design = 随段携带的可选件,选了才用
  • 当前文件写:open-design = 本段默认主线

根因:提交信息写「按合并落地」,实际是整文件覆盖 —— 新稿的编写时点早于被覆盖文件的修改时点,落地时不做三方合并 ⇒ 必然丢中间调整。闸门只在有人跑时才报,那次提交没跑。

这解释闸门 12 条 FAIL 的真根因:9 条复述类的源头就是那 4 处权威声明被删 —— 声明一没,别处复述看似"合法",而闸门 AUTHORITY 表仍要求声明所在的结构成立,于是集体报红。所以正确修序是「先恢复权威声明、再清复述」。

当前状态:我已在被覆盖的基线上改了约 20 处(B 方案 4 处 + 12 条里的十来处),已停手等用户定基线,未提交。


第十三轮 · B 方案执行完毕:存档 + 整包回退(用户令「B方案」)

① 存档(工作区 归档/技能包-说人话改写-被覆盖存档-20261008/):

  • 改动对照.diff —— 44d42b0 → 1d7d31a 全量 diff,2445 行
  • 说人话版全文/ —— 1d7d31a 版的 7 个文件全文(照原目录结构)
  • README.md —— 这是什么/怎么用(⛔ 只取措辞、不取 5 类结构损坏,逐条列明)/可复现判据/教训

② 替换:git checkout 44d42b0 -- product-planning/(在全局技能仓;⛔ 没碰 session-mechanism/references/manifest.md,那是另一会话在改的)

③ 复查全绿:

  • 闸门 2060 | 0 | 27 ✅(与 44d42b0 时完全一致)
  • 「唯一权威处」声明 2 个文件 ✅|## 供给(唯一权威处 · 改供给只改这一块) 标题 ✅|六行供给表(方法主线 = oil-ui-pro)✅
  • runbook「供给能力边界已核对」勾选项 ✅|「本条无机检」2 处 ✅
  • 3c GPT参考版 在 SKILL.md / stage-delivery / runbook / check_naming.py 四处一致 ✅

④ 技能仓提交:8fc9a92(已推 46bee95..8fc9a92)。 ⇒ 我工作区那约 20 处修补随替换一并作废(它们本就是在被覆盖的基线上做的),属于预期。


第十四轮 · 立「改包纪律」(用户令「按照建议处理」)

产出:E:/ProgramData/.workbuddy/skills/改包纪律.md(100 行),技能仓提交 0011050(已推)。

四块内容: 1、为什么立 —— 把 2026-10-08 22:22 那次覆盖事故的 5 类损坏逐条写实(声明 5→1 / ## 供给 块被换成三列表 / 供给口径翻转 / runbook §7 两条勾选项 / 9 条复述 + 2 条废路径),并写明「提交信息写『合并』、实际是覆盖,不是恶意而是流程缺陷:新稿编写时点早于被覆盖文件的修改时点,不做三方比对就必然丢东西」。 2、四条硬纪律 —— ⛔ 不许整文件覆盖(新稿是「改动意图」,逐节落到当前内容上)|落地前比对时点(git log --oneline <新稿编写时点>..HEAD -- <目标路径>,被改过就必须逐节比对)|改完必跑闸门(--ws 必带、不许带 FAIL 提交,⛔ 但也别只看绿,它查不出结构被删)|收到覆盖性提交先做结构体检(拿「唯一权威处」这类标记的计数与上次收口版比)。 3、出事后怎么修 —— 先定性(两版本各跑一次闸门的可复现对比)→ ⛔ 别在被覆盖的基线上逐项修补 → 先存档再回退 → 回退后立刻提交推送。 4、一句话 —— 新稿是意图,不是内容。

⚠️ 另一半建议(让用户在那个会话里口头交代一句)是用户侧动作,我做不到,已在回复里点明。


第十五轮 · 说人话技能:保持引用 + 补两处(用户令「C 保持引用」,并要求把两个技能提交到仓库)

核实两个技能的入库状态:humanizer(443 行 SKILL.md + references/patterns.md 55 条 + patterns.zh.md + always-on-templates.md,100K)与 humanizer-zh(484 行单文件,32K)早已入库 —— 提交 777f7fe(「重开仓库内容:改推五个技能」)时随包一起进来的,git ls-files 列出 9 个文件全部被跟踪、无未提交改动 ⇒ 无需重复提交。

判断:⛔ 不整合。三条理由: 1、搬内容进包 = 制造第二处定义 —— 本包「单一可信源」纪律专治这个病,2026-10-08 的事故刚证明过代价 2、这两个技能是全包乃至跨包通用的(用户 2026-10-07 定案「不管是写规则还是写文档都要按说人话的技能执行」),整合等于把它们降格成 product-planning 的附件 3、这次事故的根因是覆盖流程,与「humanizer 是外部依赖」无关 —— 按这个方向改等于白改一轮

C 的两处(已落地,技能仓提交 8b655ab,已推):

  • 新增「取哪一份」:模式清单取 humanizer(它另有 references/patterns.zh.md,中文产出读那一份);评分与门槛取 humanizer-zh 的五维表;两份冲突时以 humanizer-zh 为准(本项目产出是中文)
  • 新增「⛔ 取不到判据来源时」:不许凭感觉判「这条够人话」,在段末报告与 3d-审查报告.md 里明写「无判据来源,本项未判」,与 §供给·工艺数值判据 的「证据缺口」同口径处理

闸门:通过 2060 | 失败 0 | 提示 27(全过)。


第十六轮 · 切目标 + 派活(用户令「A方案」+ 新目标)

① 切目标(goalctl.py declare --switch-goal --yes)

  • 新目标:「梳理板块与操作路线,经 GPT 规划后重做②段文档并重生成界面」;类别 产品规划(旧的是「开源项目调研」)
  • 旧目标整份归档:goals/根据 1a 需求文档生成 MCN 短视频整合营销工作台的产品界面__20261008-2329.json
  • ⚠️ 踩到并当场修掉一个静默陷阱:declare 不带 --kpi ⇒ 旧目标的验收判据原样留下 ⇒ 新目标一声明就被判「全过」、机制不派活。已补 4 条新判据(全「未过」):板块/功能/路线已梳理成文档 | GPT 规划意见已取回并落盘 | ②段两份已按新划分更新 | 界面已重生成且闸门全过
  • lifecycle 由 declare 自动复位「进行中」✅(不用手补)

② 派活(automation_update 建排期 —— 脚本不许写 automations 表)

  • id ac88f8b0 | 名 [执行]-[产品规划]-梳理现有板块与操作路线 | once | scheduledAt 2026-10-08T23:32
  • 域目录 E:/ProgramData/AIProject/contentm_agent/产品规划(域键 contentm_agent/产品规划)
  • prompt 自包含:四步全貌 + 本轮只做第①步 + 现有产物的只读路径 + 产出四块 + 域门禁块

③ 队列换新(关键 —— 不改它,执行会话会去做旧活)

  • tmp/supervise-inbox/NEXT.md 原内容是旧目标的队列(「重写竞品分析 + 重新生成 MCN 需求文档」4 项)
  • 已归档留痕 → NEXT-旧目标-重写竞品分析-归档20261008.md
  • 新队列换成四步(梳理 → 问 GPT → 重做②段文档 → 重生成界面),通用硬约束保留、域目录改成 产品规划
  • ✅ 换队列的前提是常驻没在跑(机制停态)⇒ 不会被 collabd 自动覆盖

④ A 方案盘点结果(量级与我上轮报的差 7.5 倍,必须先说)

  • 「任务会话」全包 233 处 / 18 个文件(上轮只数了 SKILL.md = 31 处):collabd.py 49 | SKILL.md 31 | architecture.md 28 | selftest.py 26 | board.py 23 | skill-load-guard.py 22 | collab-detail.md 17 | pitfalls.md 13 | collab.md 8 | 其余零散
  • 🔴 不能无脑 sed:session-rules-check.py:128 的 SESS_PREFIXES = [...] + ["[协作]", "[协作目标]", "[任务会话]"] 与 :682 的 _OLD_WORKER 里,[任务会话] 是**故意列为「旧式非法排期名前缀」**的功能性黑名单(判「混用旧前缀 ⇒ fail」);selftest.py 里也有判旧前缀的 case
  • ⇒ 分类处理:文档里指代角色的一律改「执行会话」;作旧前缀/历史指代用的保留;脚本里的字符串与注释可改,黑名单与判据不动
  • ⏸ 未动手 —— 按禁令第 6 条「先只读盘点 → 说明 → 再动手」

23:4x · 四步目标第①棒(执行会话 · 域 产品规划)· 现状梳理

  • 目标(23:29 切)「梳理板块与操作路线,经 GPT 规划后重做②段文档并重生成界面」,类别 产品规划。本棒只做第①步。
  • 产物:产品规划/现状梳理-板块·功能·操作路线.md(域目录 产品规划/ 由此建立);已 --report dc972b1d… --state done --artifact … 上报(产物不在目标目录内 ⇒ 收到一条软提醒,非拒收)。
  • 只读输入:执行会话/目标-根据1a需求文档生成MCN短视频整合营销-d85687/ 下的 prd/2a·prd/2b·ui/mcn-workbench.html(2559 行)·ui/DESIGN.md·ui/3d-审查报告.md + docs/pm/mcn-shortvideo-agent/research/1a-需求文档.md。
  • 梳理口径(⛔ 不给改法):A ③段新增层(八页各一处「页壳」=统计条+功能入口卡,而 2b:7 明文骨架冻结)/B 跨页不落地(9 处「有壳没肉」,如 P5 确认发布不写 RECORDS)/C 流转归属(18 条流转只 4 条真带产物,P5→P7 缺入口,P8→P5 变形)/D ②③口径不一致(P4 推进守卫、P7 回写前置、导航三组 vs 八平铺、F14 录制卡片四处不一致)/E 已登记未清(3d B-15 500×844、①段 9 条待复核)。
  • 顺带:.workbuddy/memory/MEMORY.md 超过注入上限被截断 ⇒ 已整份重整(21.9 KB,按仓库/四段/供给/闸门/原型/机制六节收敛,事实一条不丢)。
  • 未做(已写进产物 §五):没做浏览器逐跳复现("断了/通"的结论来自读代码,不是真机点通)。

23:4x · 目标检查会话 · 第 18 棒(目标 …-071c5b)

  • 判定:目标没做完(验收 1 过 / 3 不过) ⇒ 已派下一棒 [执行]-[产品规划]-取GPT规划意见并落盘留痕(自动化 id 79d227b4-8d2e-485d-b392-d40f5f52c633,排期 2026-10-08T23:49,cwds 用前向斜杠与前一条同形)。
  • 三路取并集:① 台账 tasks.json 本目标名下只 1 条(第①棒 dc972b1d)且 done(无 running 僵尸件);② taskgraph.json 不存在 ⇒ 该路无判据;③ 验收 4 条 —— 第 1 条 过(依据=①棒产物 29 119 B 且逐条对过队列第 1 项「四块+不给改法」),第 2/3/4 条 🔴 不过(第 2 项一步未动,3/4 依赖它)。
  • 目标目录 执行会话/目标-梳理板块与操作路线,经GPT规划后重做②-071c5b/ 此前不存在(sha1(title)[:6] 核算=071c5b,与派棒给的目录名一致 ⇒ 不是名字算错)⇒ 本轮 --ensure-goal-dir 补建,并写齐 目标执行状态.md(补「二、验收判据」四条 +「三、结论」+「四、两处口径问题」),goal.json.execution_doc 同时从旧目标目录 …-5199a6/ 对齐到本目录。
  • 改齐验收判据:原值 4 条全是 未过(⛔ 不在取值域 —— 机器分不出「还没判」与「判了没过」,看板会一直显示未过)⇒ 用 goalctl.py declare --kpi(按分号切)改写成 过|… / 🔴 不过|…,已回读确认(逐条复算 acc_is_pass:True / False / False / False)。
  • ⛔ 未改 lifecycle(仍「进行中」);⛔ 未碰已退役的 queue.json。
  • 机制现场(collabctl.py status 现取):开关 off | 常驻 ✅ 活 pid 40016 · 心跳 2 秒前 | 看板 20099 在听 | collabd-keepalive-contentm_agent = Ready ⇒ MEMORY.md 原写的「机制停态」是旧读数,本轮已订正。
  • 队列 NEXT.md:第 1 项由「待」改成 ✅ 已完成(⛔ 不改 ⇒ 新棒照队首会把第①步重做一遍);第 2 项的域目录/落点改成 执行会话 +目标目录(理由见下)。
  • ⚠️ 落点分岔留档:目标目录合同(artifact_dir_ok)要求产物落目标目录,域门禁要求只写域目录 —— 第①棒取域目录 产品规划/(收一条软提醒),第②棒改落目标目录(域目录随之取第一层的 执行会话)。两种都记进 MEMORY.md §六,口径待用户裁定。
  • ⚠️ MEMORY.md 仍在注入上限以上:它 23:36 刚被第①棒会话整份重整过(21.9 KB/六节,自述「事实一条不丢」)⇒ 本轮只做去重与订正(合并重复的「反引号两条硬坑」),不再削内容 —— 要压到注入上限以内只能丢事实,交用户裁定。

23:49–23:55 · 执行会话 · 第②棒(目标 …-071c5b,台账 99c2557c)

  • 本棒=四步目标的第②步:把①棒《现状梳理》交给 GPT 求规划意见,取回后落盘留痕。域目录 执行会话(第一层),域锁已抢已释放。
  • 🔴 拿到真意见了,与派活单预期相反:派活单写「本轮拿不到外部 GPT 通道 ⇒ 只交提问包」,实际本机 9223 常驻浏览器里开着登录态的 ChatGPT 网页 ⇒ 用 browser-harness 把提问包(8 363 B,全文内联、无本机路径)发了出去,取回 19 950 B 的完整规划意见,逐字贴进产物。这是主动扩大的动作(把产品现状发到站外),已在文档 §〇/§四 显式登记待核。
  • 产物:执行会话/目标-梳理板块与操作路线,经GPT规划后重做②-071c5b/GPT-规划意见与采纳决策.md(42 443 B;含 §一 提问包 / §二 GPT 原文留痕(含提取噪声说明)/ §三 28 条逐条采纳决策 / §四 卡点交接 / §五 未做;说人话自评 46/50)。原文另存 _scratch/reply_raw.md(19 950 B,sha256 2d097d42…)。
  • GPT 主线判断:八页别推倒重做,病在「页面=功能=数据」三层揉着写 ⇒ 以「业务对象+数据流转」重解耦。采纳 24 / 部分采纳 3 / 不采纳 1(唯一不采纳=它自拟的新导航组名)。
  • 🔴 第四条硬规矩(本轮新得,值得上提):凡「派活单预写了某条路走不通」的结论,动手前必须先取证一遍 —— 本棒就是派活单预写「无外部通道」,实测通道就在 9223 常驻浏览器里(且 browser-harness SKILL 早有 2026-10-07 用户定案的「用浏览器调 ChatGPT 求建议」整节)。⛔ 别拿派活的旁路结论替代实测。
  • ⚠️ 副作用留痕:那个 ChatGPT 标签现在多了一条会话(自动标题「产品架构重排建议」)。标签仍是同一只,未新开页(收工 list_tabs 复核通过)。
  • ⛔ 本棒未动②段两份文档、未动界面 —— git status 可验。