994 lines
146 KiB
Markdown
994 lines
146 KiB
Markdown
# 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 <maogeigei@gmail.com>`;而工作区仓是**局部** `WorkBuddy <workbuddy@contentm-agent.local>` —— 两仓身份不同,**属正常,⛔ 不要"统一"掉**。
|
||
- ⛔ **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 处修补随替换一并作废(它们本就是在被覆盖的基线上做的),属于预期。
|