# Codex Prompt: Phase 6.2a — 视觉层 Token 映射计划

调研所有硬编码颜色和未定义 token，给出**映射计划**。**不修改任何代码**——只产出计划文件。

完成后 STOP，等用户审计划再进入 6.2b 执行替换。

---

## 必读前置

1. `docs/PROJECT_GOAL.md`
2. `docs/working-principles.md` 原则 4（颜色硬编码 = bug）
3. `src/design-system/translation/`（翻译层现状）
4. `docs/internal/api-diff.md` 各组件 "异常" 段（已识别的硬编码清单）

---

## 任务 1：盘点现有 token 资产

输出：`docs/internal/phase-6.2a-token-inventory.md`

内容：
- 列出 `tokens/` 目录所有现有 token（按文件分组）
- 每个 token 给出：name / value / 引用次数（grep `var(--token-name)` 在 `src/components/` 中的命中数）
- 标记"颜色 token"和"非颜色 token"

---

## 任务 2：盘点硬编码 hex 来源

对以下 5 个组件做硬编码 hex 全量扫描：

| 组件 | api-diff 报告的 hex 数 |
|---|---|
| `FormItem` | 11 + 2 个未定义 token (`--form-item-root-width`, `--form-item-label-width`) |
| `Notification` | 10（含错值 `#33ab4f`、`#ec5050`） |
| `PromptMessage` | 9 + 2 个未定义 token (`--prompt-bg`, `--prompt-text`) |
| `Tooltip` | 6 |
| `Input` | 2 (`#353535`, `#ffffff`) |

对每个 hex 出现位置：
- 文件路径 + 行号
- 上下文（用在哪个 CSS 属性：background / color / border 等）
- 当前值

输出：`docs/internal/phase-6.2a-hex-sources.md`

---

## 任务 3：给出映射计划（核心）

输出：`docs/internal/phase-6.2a-token-mapping-plan.md`

对每个硬编码 hex，给出以下决策建议中的一种（**不要替用户拍板，给推荐 + 备选**）：

### 决策类型

- **A. 替换为现有 token**：当前 hex 值与某现有 token 值一致 → 直接换 `var(--token-name)`
- **B. 替换为现有 token + 修正 token 值**：hex 是错的（如 Notification 的 `#33ab4f` 应是 Figma `#299f45`），现有 token 命中语义但值不对 → 换 `var(--token-name)` 同时修 token 定义
- **C. 新建 token**：现有 token 都不命中语义 → 提议新 token 名 + 值（值参考 Figma）
- **D. 待确认**：无法确定语义/来源，需用户拍板

### 输出格式

每个 hex 一行：

```markdown
| 组件 | 文件:行号 | CSS 属性 | 当前 hex | 决策 | Token 名（建议） | Token 值（建议） | 备注 |
|---|---|---|---|---|---|---|---|
| Notification | Notification.vue:142 | background-color | #33ab4f | B | --color-confirm-primary | #299f45 | Figma 真实值 |
| ... |
```

### 特殊关注：Notification 的两个错值

- `#33ab4f` → Figma 实际是 `#299f45`（confirm 按钮）
- `#ec5050` → Figma 实际是 `#dc2717`（delete/danger 按钮）
- 如果现有 token 系统里有 confirm / danger 语义的 token：
  - 检查 token 当前定义值
  - 如果 token 值是 `#33ab4f` / `#ec5050`（错的），决策是 B（同时修 token 值）
  - 如果 token 值是 `#299f45` / `#dc2717`（对的），决策是 A（仅换引用）
  - 如果没有这类 token，决策是 C（新建）

### 特殊关注：4 个未定义 token

```
--form-item-root-width
--form-item-label-width
--prompt-bg
--prompt-text
```

这些是被组件 CSS 引用了但 tokens/ 里找不到定义的 → 给出建议定义值（参考 Figma 实测）+ 应放在哪个 token 文件里

---

## 任务 4：风险评估

在映射计划文件末尾追加 "## 风险与不确定性" 节：

- 哪些决策依赖你看到 Figma 真值（建议哪些手动核对）
- 哪些 hex 可能不止一个语义（如 `#ffffff` 在 Input 里是背景还是文字？）
- 哪些 token 修值可能影响其他组件（B 类决策的副作用）

---

## 输出文件汇总

完成后应有：
1. `docs/internal/phase-6.2a-token-inventory.md`（现有 token 清单）
2. `docs/internal/phase-6.2a-hex-sources.md`（硬编码来源清单）
3. `docs/internal/phase-6.2a-token-mapping-plan.md`（映射计划，核心产出）

---

## 禁止

- 修改任何 `.vue` / `.css` / `tokens` 文件
- 修改 `translation/` 下任何文件
- 替用户做"决策 D（待确认）"项的判定
- 跳过任何 hex（即使看起来微不足道，也要列入）

---

完成后 STOP。我会审三份计划文件，确认后再发 Phase 6.2b 执行替换的 prompt。
