# Prompt — Phase A4.2 sample: ProgressPage transform

> **角色**：executor
> **范围**：第 2 个非样板 page（ProgressPage）改造为消费 generator 输出 + 用 FigmaMembersGrid。验证 A4 batch 范式在 visual primitive component 上的稳定性（与 NotificationPage 大型卡片不同形态）。
>
> ⚠️ **不要 commit / 不要 git add**——dirty 累积到本 sample 通过后 commit。
> ⚠️ 完成后 **STOP**，按底部"完成报告"格式回报；**§4 完成报告必须含 §4.X 完整改动清单段**。
> ⚠️ **不扩范围**：只动 `playground/docs/pages/ProgressPage.vue` 一个文件 + 重跑 audit 产物。

---

## §0 — Plan owner 已定裁定

### ProgressPage 现状

- 总 ~250 行
- 5 个 docs-section：Figma Coverage / Figma Members / Runtime Value / Development Usage / Progress API
- ε audit 7 findings（figmaPage / figmaNodeIds / "variant count=16" / "nodeId=4915:7287" 等）
- α audit fail（A4.0 follow-up commit e966d41 后 progress.ts 含 16 variant.theme，page 未 grid → α=fail）
- γ audit fail（无 grid usage）
- β / δ audit pass

### Progress figma 真源对照

- 16 variants = 2 themes × 4 status × 2 sizes
- variant.theme 字段已派生（commit e966d41 fix）：8 dark + 8 light
- axes: `theme` (`['dark','light']`) + `status` (`['default','success','warning','error']`) + `size` (`['M','S']`)
- canonical Progress props: `theme` / `status` / `size` / `value` (default 60) / `showLabel`

### 改造裁定

| 改 / 不改 | 内容 |
|---|---|
| **删** | `const figmaPage = ...` / `const figmaNodeIds = ['4915:7287']` |
| **删** | `const progressAxes = [...]` 手写 axes 数组 |
| **删** | `const progressThemes = ['dark', 'light']` (违反 dark-only 显示规则) |
| **删** | `const progressStatuses = [...]` / `const progressSizes = [...]` |
| **删** | `const familyGroups = ...` 计算（基于 themes 派生 dark+light 双 group，违反 dark-only） |
| **删** | template 内 `'variant count=16'` / `'nodeId=4915:7287'` 字面量 |
| **加 import** | `import { progressFigmaMembers } from '@/figma-data/normalized/docs-figma-members/progress'` 和 type `ProgressFigmaProps` |
| **加 import** | `import FigmaMembersGrid from '../components/FigmaMembersGrid.vue'` |
| **加 computed** | `progressDarkVariants` 派生 `progressFigmaMembers.variants.filter(v => v.theme === 'dark')` —— 用于 Dark Theme Members 段 v-for |
| **加 computed**（推荐） | `progressStatusList` / `progressSizeList` 派生自 `progressFigmaMembers.axes` —— 用于 family-matrix table headers |
| **替换 Figma Coverage 段** | 用 `<FigmaMembersGrid :members="progressFigmaMembers" :component="Progress" :site-theme="'dark'" />`（**默认 cellMinWidth 176px 不传**，Progress 是横条小组件 fit 默认） |
| **改 Figma Members 段 → 改名 "Dark Theme Members"** | 删原 `familyGroups` 双 theme outer iteration（违反 dark-only），改为单 dark group with family-matrix 子布局；v-for 用 `progressDarkVariants` + computed status/size 列表 |
| **保留** | Runtime Value 段（含 progressValue ref / slider 交互 / Try It）—— 不动 |
| **保留** | Development Usage 段 |
| **保留** | Progress API 段 |
| **保留** | i18n `t()` 包装 |

### Dark Theme Members 段 family-matrix 改造细节

原来：`familyGroups` 双 group (dark + light)，每 group 内 family-matrix 渲染 4 status × 2 size。

改后：单一 dark group + family-matrix 渲染：
- v-for 行：`progressStatusList` (`['default','success','warning','error']`)
- v-for 列：`progressSizeList` (`['M','S']`)
- cell 渲染：`<Progress theme="dark" :status="status" :size="size" :value="60" />`（保 60% baseline，不传 light theme）

效果：8 个 cell（4 row × 2 col）排成 family-matrix。

CSS `.docs-demo-card--dark` 类保留（Progress 在 dark cell 内显示更准）。

### Site theme 注入 + cellMinWidth

`<FigmaMembersGrid :site-theme="'dark'" />`（静态字面量，与 Badge/Tooltip/Notification 一致）。

**cellMinWidth 默认 `'176px'`**（不传 prop）—— Progress 是横条小组件，176px 应足够 fit `<Progress>` 实例（看 dev 视觉，若窄则 follow-up 调）。

### 不动

- `figma-sync/generate-docs-figma-members.mjs`（A4.0 follow-up 已 commit e966d41）
- `figma-sync/audit-page-t2-sample.mjs`
- `figma-data/normalized/docs-figma-members/types.ts` / `*.ts`
- `playground/docs/components/FigmaMembersGrid.vue`
- `src/canonical/Progress.vue` / `src/components/Progress/*` / 其他 canonical
- 其他 `playground/docs/pages/*.vue`
- `src/design-system/translation/*` / `docs/internal/backlog.md` / `AGENTS.md`

### 预期 audit verdict

- **ProgressPage**：α=pass · β=pass · γ=pass · δ=pass · ε=pass · findings=0
- **17 其他 audit reports**：与 commit e966d41 时一致除 timestamps（baseline regression）

### 预期 dev 视觉

- Figma Coverage 段：8 个 dark theme variants（grid auto-fit 176px → 多 col）每个 cell 渲染 Progress 横条 + label
- Dark Theme Members 段：4 row × 2 col family-matrix，8 个 dark variants
- Light variants **消失**（dark-only）
- Runtime Value 段保留 + slider 交互 OK
- Development Usage / Progress API 不变

---

## §1 — 必读输入

按顺序：

1. [`AGENTS.md`](../../../AGENTS.md) — 项目约束 "Docs site 默认 dark-only 显示" 段
2. [`docs/meta-rules.md`](../../meta-rules.md) — 反模式 + 触发器 G
3. [`docs/internal/backlog.md`](../../backlog.md) — backlog 现状
4. [`playground/docs/pages/ProgressPage.vue`](../../../playground/docs/pages/ProgressPage.vue) — 待改造，~250 行
5. [`playground/docs/pages/NotificationPage.vue`](../../../playground/docs/pages/NotificationPage.vue) — A4.1 已改造范式参考（含 dark-only 实施 + 删 Light Theme Members）
6. [`playground/docs/pages/BadgePage.vue`](../../../playground/docs/pages/BadgePage.vue) / [`TooltipPage.vue`](../../../playground/docs/pages/TooltipPage.vue) — sample 范式参考
7. [`figma-data/normalized/docs-figma-members/progress.ts`](../../../figma-data/normalized/docs-figma-members/progress.ts) — generator 输出（16 variant 含 variant.theme）
8. [`playground/docs/components/FigmaMembersGrid.vue`](../../../playground/docs/components/FigmaMembersGrid.vue) — grid prop API
9. [`docs/internal/t2-sample-audit-report.ProgressPage.md`](../../t2-sample-audit-report.ProgressPage.md) — 改造前 baseline (commit e966d41 时 ε=fail / α=fail / γ=fail / β=δ=pass)

---

## §2 — 任务清单

### 任务 2.1 — ProgressPage.vue 改造

按 §0 改造裁定执行。

### 任务 2.2 — typecheck

```bash
pnpm exec vue-tsc --noEmit
```

### 任务 2.3 — 跑 audit 全量

```bash
node figma-sync/audit-page-t2-sample.mjs
```

### 任务 2.4 — Verify ProgressPage 5+1 verdict 全 pass

```bash
grep "^| " docs/internal/t2-sample-audit-report.ProgressPage.md | head -8
```

### 任务 2.5 — 17 其他 audit reports baseline regression

```bash
git diff --stat docs/internal/t2-sample-audit-report.*.md
```

期望：ProgressPage 实质 diff（α/γ/ε 转 pass + findings 清空）；17 其他仅 timestamps（每个 12 行）。

### 任务 2.6 — dev 视觉（**等 plan owner 截图**，不自评）

```bash
pnpm dev
```

启动后 STOP 等 plan owner 截图确认。

---

## §3 — 验收清单

- [ ] ProgressPage.vue 删手写 figma 字面量（figmaPage / figmaNodeIds / progressAxes / progressThemes / progressStatuses / progressSizes / familyGroups / "variant count=16" / "nodeId=4915:7287"）
- [ ] 加 generator import (progressFigmaMembers + ProgressFigmaProps)
- [ ] 加 FigmaMembersGrid import
- [ ] Figma Coverage 段用 grid（默认 cellMinWidth）
- [ ] Figma Members 段 → "Dark Theme Members"，v-for 用 computed 派生 dark variants only
- [ ] Runtime Value / Development Usage / Progress API 不动
- [ ] vue-tsc 0 错误
- [ ] ProgressPage 5+1 verdict 全 pass · findings=0
- [ ] 17 其他 audit reports 一致除 timestamps
- [ ] dev 启动等 plan owner 视觉确认（不自评）
- [ ] generator / canonical / 其他 page / 真源 .md / AGENTS / backlog 没动
- [ ] 没 commit / 没 git add

---

## §4 — 完成报告

```
## Phase A4.2 ProgressPage Sample 完成报告

### 改动文件 (按 prompt 任务的预期 scope)
- playground/docs/pages/ProgressPage.vue (改 +X/-Y 行)
- docs/internal/t2-sample-audit-report.ProgressPage.md (重生)
- docs/internal/t2-sample-audit-report.<其他 17>.md (重生, 仅 timestamps)

### §4.X 完整改动清单 (All M / A / D, 含 prompt 范围外)
[git status --short 全列表]
[如有范围外改动，标 ⚠️ 解释]

### Dark Theme Members 段 v-for 改造
[贴 family-matrix 改造 hunk + computed 派生方案]

### Figma Coverage grid 用法
[贴 <FigmaMembersGrid> 用法]

### Audit verdict
- ProgressPage: α/β/γ/δ/ε = <list>
- 17 其他 baseline 一致除 timestamps: <OK / 偏离>

### typecheck
- vue-tsc: 0 错误

### dev 视觉验收
- pnpm dev 启动: <OK / 失败>
- 等 plan owner 截图（executor 不自评）

### 验收 self-check
- [ ] 删手写 figma 字面量
- [ ] generator import + grid usage
- [ ] computed 派生 dark variants
- [ ] Dark Theme Members family-matrix 单 dark group
- [ ] Runtime Value 不动
- [ ] vue-tsc 0 错
- [ ] ProgressPage 5+1 全 pass
- [ ] 17 baseline 一致
- [ ] dev 启动等 plan owner
- [ ] 不动其它文件
- [ ] 没 commit
- [ ] §4.X 完整改动清单已列

### 未解决项 / blocker
[如有，列出；无则写"无"]

STOP — 等 plan owner 复审 + 截图确认 → commit A4.2 sample → 进 A4.2 batch (8 page 一刀)。
```

---

## §5 — 严守约束总览

- ⚠️ **不要 commit / 不要 git add**
- ⚠️ §0 文件改动**精确 1 文件**（ProgressPage.vue）+ audit 重跑产物
- ⚠️ §4 完成报告**必须含 §4.X 完整改动清单段**
- ⚠️ dev 视觉**不自评**——启动 dev 后 STOP 等 plan owner 截图
- ⚠️ Audit baseline regression（17 其他 page）必须 pass
- ⚠️ Dark-only 规则严执行（删 Light Theme Members / Figma Members 双 group → 改单 dark）
- ⚠️ 完成 STOP，按 §4 格式回报
