# 协作复盘 — 自检结果提示文案（从改一句话到回流一条设计系统规则）

> 2026-09-15 · TVU Pack · Touch Screen `< TM3-1800 > Optimization of Self-check`
> 给 UX 团队 / PM 内部分享用。核心一句：**这次真正贵的不是文案本身，是「交付物写给谁看」这件事反复没对齐。**

## 1. TL;DR

| | |
|---|---|
| 总轮次 | 文案 4 轮收敛 · Change log 卡 3 次返工 |
| 最终交付 | 两帧产品文案（owner 手改落帧）· Change log 交付卡 · 设计系统新规则 **M23.20** · 文案真源两边登记 |
| 核心 process gap | 4 个，最贵的一个造成整卡删除重建 |
| 关键 insight | **我自己查到的事实没有反过来约束我的产出** —— 早就实测出「界面上没有 Configuration 这个菜单项」，下一步还是把它当路径第一级写进了文案 |

## 2. Session 概览

| | |
|---|---|
| **起点** | owner 给一个 Figma 链接：「这里面的提示信息不太对，应该是通过热点访问 Configuration 页面来查看详细报告」 |
| **第一个转折** | 扫查发现波及面不止那一帧：同一句话在成功态 / 警告态各一处，Config-T 同名页还有两处 ⇒ 先定范围再动手 |
| **第二个转折** | owner 三次修正 Change log 的形态（颜色 → 格式 → 精简），最后要求**把它变成贯穿设计系统的规则**，从「改一张卡」扩成「立一条规则」 |
| **最终落地** | 产品文案 2 句 · 交付卡 `10520:1109` · DS 规则 M23.20（`d8588c7b`，已 push）· `lcd-message-strings.md` §6 + Figma 常驻页场景卡 `10538:40`（`d0b7a4f`） |
| **process artifacts** | 5 次候选文案实测 · 逐字比对 2 次 · 机检差集判读 · 本复盘 |

## 3. 主要迭代时间线

| # | 阶段 | owner feedback 触发 | 改动量 |
|---|---|---|---|
| 1 | 扫波及面 | —（主动扫全文件） | 查出 2 帧 + Config-T 2 处 + 1 条旧 Change log |
| 2 | 文案选型 | 三候选实测行数 → owner 选「打开页面为主」 | 定稿 v1 |
| 3 | 字体受阻 | —（实测 Helvetica 写不进） | 转为出手改清单 |
| 4 | 建 Change log | —（clone 旧注释当范本） | 1 条纯文本注释 |
| 5 | **返工 A** | 「Change log 有没有带上？不是应该用新的颜色标记吗」 | 橙色 accent |
| 6 | **返工 B**（同轮追加） | 「格式不太对，为什么没用 UX 交付的格式」 | **整卡删除重建**为交付卡 |
| 7 | 文案落帧 | owner 手改 + 「change log 里面需要说明文案改成什么样了」 | 两句完整文案写进卡 |
| 8 | **返工 C** | 「需要把自检的路径也写上」 | 加 `Advanced > Self-check` |
| 9 | **返工 D** | 「Configuration 不是页面，是 config-T 服务」 | 改成两步式表述 |
| 10 | **返工 E** | 「能精简一些吗？模仿人类沟通的方式」 | 卡高 864 → 610 |
| 11 | 规则回流 | 「不仅是这个项目，是贯穿整个 DS」 | M23.20 + 两条既有规则加回指 |
| 12 | 真源登记 | 「需要」 | 文档 §6 + Figma 场景卡 |

## 4. Top 4 process gap（按返工成本排序）

### ① 照抄了「立规之前」的旧范本 —— 最贵（整卡重建）

建 Change log 时我 clone 了同页 2025-08-01 那条蓝色纯文本注释，于是**连它的颜色和「一段文字」的形态一起继承**。owner 连提两次（颜色不对、格式不对），其实是同一个根因。

规则里本来就写着「照抄旧范本前必须先用规则真源校验，范本若建于规则之前不能照抄」——**这条我没走到**。旧注释建于 2025-08-01，而「交付后改动用橙色标注」是 2026-07-06 才立的规则。

**下次怎么做**：clone 任何范本前先问一句「这份建于哪天、当时规则存在吗」。日期就在卡上，成本是一眼。

### ② 自己查到的反证没有约束产出

为了写准路径，我扫了 Config-T 自检页，实测顶栏只有 `Live / File / Router / General / Advanced`，并且**在回复里明确写过**「Configuration 不是界面标签，是页面总称」。

下一步我仍然写出了 `Open Configuration > Advanced > Self-check`——把一个我刚确认不存在的菜单项放在路径第一级。owner 纠正后才改对。

**这是最值得记的一条**：不是没查，是查到了没用上。取证与产出之间缺了一步「回头对一遍」。

### ③ 交付物写成了给自己看的

Change log 里我写了「为什么用 details 而不是 the full report —— 后者实测 179 字符 = 4 行会压按钮」「Two steps, not one —— 热点只是让用户打开配置页面…」。

这些是**我说服自己的过程**。dev 和 QA 拿它不做任何动作。owner 判「模仿人类沟通的方式，言简意赅」，精简后卡高掉了三成。

这条直接催生了 M23.20。

### ④ clone 的静默继承没复核

改写 clone 来的卡时，我只改了 `characters`。结果：

- **超链接没跟着变** —— 新卡的 `TM3-1800` 挂着原卡的 Slack 链接，被机检抓出
- 修的时候又踩第二层：**同一节点里中英文各有一处单号**，`indexOf` 只改了第一处
- **12 个图层名**也还是 clone 来的旧名

规则里早有「赋 characters 后先清 hyperlink 再逐处加」（M47.2），同样是没执行到位。

## 5. 本轮验证有效的做法（同等重要，不只记教训）

1. **实测代替语感选文案。** 5 个候选逐个用 Arimo（与 Helvetica 字宽等价）量行数，淘汰掉 2 个会让警告态变 4 行压住按钮的写法。**校准过才敢用**：旧文案用 Arimo 量出 42 / 28，与线上完全吻合。按字符数推算会判错——171 字符 3 行、174 字符 4 行，差 3 个字符就翻页。
2. **逐字比对代替目测。** owner 手改文案后，我把卡里记的两句与稿子做程序化比对（`match=true`、长度一致），不靠眼看。
3. **机检看差集，不看总数。** 这个文件存量 findings 上千条，直接读总数毫无意义。改动前后取 `nodeFindings` 差集——1933 → 1935，多出的恰好是我新建的两个节点，且规则类别与被 clone 的旧注释逐条同形。
4. **owner 说"改好了"之后先读回再继续。** 没有假设他照抄了我的候选，读回来确认逐字一致才往下走。
5. **误报当场更正。** 中途我报过「成功态两个按钮错开 14px」，复核发现其中一个是 `visible=false` 的隐藏备用态，不构成重叠，立刻更正——否则 owner 会去改一个没坏的东西。

## 6. 已回流 / 待回流规则清单

| 规则 | 真源文件 | 简述 |
|---|---|---|
| **§M23.20** 交付物用人话写 | `tvu-design-system/docs/internal/mockup-conventions.md`（`d8588c7b`，已 push） | 作用面 = PRD 卡 / UX 交付卡 / 状态说明 / 流程说明 / 用户体验地图 / Change log。判据：一条内容删掉后 dev/QA 的动作不变 ⇒ 删。该删四类：推导过程、用词取舍理由、沿革句、施工记录 |
| §M23.10 / §M23.11 加回指 | 同上 | 这两条原本只管 UX 交付卡，补一行说明判据已扩到全族 |
| **本项目 §6 自检场景** | `TVU Pack/docs/specs/lcd-message-strings.md`（`d0b7a4f`） | 文案表 + 三条判据：路径给到 tab 一级、不写内部服务名也不写不存在的菜单项、必须三行内装下 |
| Figma 场景卡 | Touch Screen 常驻页 `10538:40` | 与文档两边同源 |

⚠️ **对话回复那一面没有新增规则** —— 设计系统已有「表达风格七条」，作用面写的就是"任何场合的任何输出"，再写一份就是镜像漂移。

## 7. Model 选型

本 session 全程 Opus 5（1M context）。适配点：多轮文案收敛需要记住前面否决过什么（`the full report` 为什么不能用）、规则回流要读懂既有 20+ 条规则的分工边界、机检判读要分清"没验"和"验过了"。这三件都吃上下文与判断力，不适合降档。

## 8. 给团队的 action items

**给提需求方（UX / PM）**

1. **一次把约束说全比分三次说省事。** 这次「要指明页面 → 要带路径 → Configuration 不是页面名」分三轮给出，每轮都触发一次完整返工（改文案 + 改卡 + 重跑机检）。第 3 条如果在第 1 轮就说，能省两轮。
2. **纠正形态的时候，说"该是什么"比说"不对"快。** 「Configuration 不是页面，是 config-T 服务，动作链是连热点 → 打开配置页面 → Advanced > Self-check」这句话直接终结了一个来回。

**给 AI 协作流程**

3. **clone 范本前查日期**，范本建于规则之前就不能照抄可量化属性（颜色、行距、层级、形态）。
4. **clone 之后显式清 hyperlink、复核图层名**，别只改文字。
5. **取证之后回头对一遍产出**：凡自己实测否定过的事实，不能出现在下一步的产出里。

**给 review 方**

6. **交付物里看到"为什么选 A 不选 B"就可以要求删** —— 那是设计者的过程，不是你要执行或验证的东西。落点是 handoff，不是卡。

## 附录 · 本轮 Figma 改动统计

| 项 | 数 |
|---|---|
| `use_figma` 调用 | 约 22 次（含只读探查与临时量测节点） |
| 新建节点 | 交付卡 `10520:1109`（1 容器 + 4 段 + 13 文本）· 场景卡 `10538:40`（clone + 15 文本改写） |
| 删除节点 | 1（形态不合规的初版注释 `10517:1109`） |
| 产品帧改动 | **0** —— 两句产品文案因 Helvetica/Verdana 在 MCP 环境不可写，由 owner 手改 |
| 机检轮次 | 8 次（含 3 次差集核验 + 2 次修复后复验） |
