# 协作复盘 — Wi-Fi 密码弹窗标题换行（Config-T 8.4.0.56）

> 面向 UX 团队 / PM 内部分享。记的是**人与 AI 协作过程**里哪里顺、哪里绕了弯，不是设计结论。
> 日期：2026-09-14 · Session：单次（Slack 起，约 40 分钟）· 交付重量：**W1**（一条判断 + 规则回流，无 mockup、无 Jira 单）
> 相关：Slack thread（`C021E1BNTPF`，winniyang 报 → bonniezhou 转 UX → owner 自答）

---

## 1. TL;DR

- **事情**：测试报 Config-T 连 Wi-Fi 时密码弹窗标题「第一行明明还有空位却换行了」，Bonnie 转给 UX 定夺。
- **AI 判错了**：我判成**结构问题**，提议把标题拆成短句 + 把带网络名的整句下沉到弹窗内容区，理由是「跟 LCD 端刚定的形态对齐」。
- **owner 给的正解**：照 **macOS** 的做法 —— **强制换行 + 左对齐**，文案、结构、宽度一律不动。
- **关键 insight**：真因是标题**居中**。网络名是不可断行的整块，塞不下就整体掉到第二行；**居中时两端留白，才会显得「有空位还硬换行」**。左对齐后多行完全自然。⇒ 只需改一条对齐样式，我却给了个要改文案模板 + 改弹窗结构 + 重画 Figma 的方案。
- **已落地**：两条规则回流到设计系统真源（3 个 commit 已 push），本次**不改 mockup、不发 Jira**（Slack 由 owner 自己回的）。

## 2. Session 概览

| 项 | 内容 |
|---|---|
| 起点 | 用户贴 Slack 链接，无附加说明 |
| 中途转折 | owner 贴 macOS 弹窗截图 + 一句「强制换行，左对齐」+「我已经自己回复了」⇒ 我的方案作废 |
| 最终落地 | 设计系统仓 3 个 commit（2 条规则 + 1 个收尾同步），本项目仓 1 份复盘 |
| 没做的事 | ⛔ 没改 Config-T 的 Figma 弹窗（正解不需要动设计稿）· ⛔ 没发 Slack / Jira |

## 3. Process gap（按代价排序）

### ① 直接跳到最重的修复层 —— 本次唯一的真伤

修复层级从轻到重是 **① 样式（对齐 / 换行）→ ② 文案 → ③ 结构**。我一上来就落在 ③。

代价：给出的方案要动文案模板（两个语言文件）、动弹窗结构、重画 Figma，而正解是改一条对齐样式。如果 owner 没有立刻纠正，这个方案会带着一串工作量往前走。

**自查句**（已写进规则）：**「换成左对齐还看不看得下去？」** —— 没试过这句就提结构方案，就是跳层了。

### ② 找先例只在自家产品里找

我拿「LCD 端刚定的形态」当依据，没去看**系统原生**同场景怎么做。而 macOS 的 Wi-Fi 密码弹窗恰恰是「一整句含网络名的多行标题、左对齐」，连网络名都允许在连字符处断开 —— 一看就知道「长句进标题」是通行做法，不是需要修正的缺陷。

⚠️ 这条有个隐蔽处：**「跟我们自己刚定的范式对齐」听起来非常正当**，它把「内部一致」摆在了「符合用户既有预期」前面，顺序反了。用户天天用系统原生弹窗，一次都没见过我们上周定的形态。

### ③ 把上一轮的结论用过了头

上周（V4-1646 那轮）刚立的规则是「四面一致类需求要查对端同功能的演进史」。那条规则答的是「**这个功能有哪些字段 / 哪些步骤**」—— 它**答不了「这句话在版面上该怎么排」**。我把它的产物直接当成了形态依据。

⇒ 新立的规则容易被超范围使用，尤其是刚立、印象深的那条。

## 4. 做对的地方

- **没有自己去发 Slack**。判断给了、草稿也拟了，但等确认 —— 正好 owner 已经自己回了，没造成重复发言。
- **回流前先查重**，拿到 grep 证据才动笔：「多行标题 / 标题换行 / text-align / 修复层级」在四份规则真源里零命中，「系统原生」在设计先例语境下零命中 ⇒ 确认是真缺口，且按「优先并入既有条款」把两条都做成了子节，没另起顶层编号。
- **提交时守住了并行纪律**。设计系统仓当时有另一个 session 正在写（两个文件的修改时间就在两三分钟内），全量测试因此挂了 4 个 —— 判定出「那是别人的在途状态、与我的 markdown 无关」，没去碰、没去修，按仓库规矩带路径提交并留下了绕闸理由。

## 5. 回流规则清单（已 push）

| 规则 | 落点 | 内容 |
|---|---|---|
| **M43.3** | 设计系统仓 `mockup-conventions.md` | 标题句嵌变量 ⇒ 允许多行 + 左对齐；⛔ 不许拆结构 / 删限定词凑单行。并入**修复层级判据表**（样式 → 文案 → 结构，从最轻起）。同时划清与「表头不换行」的边界 |
| **M21.4 ④** | 设计系统仓 `design-process.md` | 形态 / 排版类问题的先例搜索面**必须包含系统原生**，且**优先级高于自家范式**。已与原有的 ⛔「先例搜索止于本产品」消解冲突（④ 搜的是跨产品通行的交互惯例，不是别家的视觉取值） |

> 具体弹窗宽度、网络名取值、帧 id 属项目资料，按真源划分纪律**留在本仓**，没有写进设计系统。

## 6. Action items

| # | 事项 | 归属 | 状态 |
|---|---|---|---|
| 1 | Config-T 弹窗标题改左对齐 + 允许多行 | 开发（Bonnie 侧） | owner 已在 Slack 回复，开发照做 |
| 2 | 两条规则回流设计系统 | AI | ✅ 已 push |
| 3 | 本项目是否要同步检查其他含变量的标题（设备名 / 文件名类弹窗） | 待定 | ⏳ **未做，也未立单** —— 本次没扫，不知道有几处 |

---

> **本次没有产出 mockup / Jira 单**，是有意的：正解不需要改设计稿。按「交付重量匹配需求大小」，一条判断 + 规则回流就是本次的完整交付。
