Files
aurora-admin/计划-v1.3.0-执行计划.md
aurora-admin f1fbfc2ddb
Regression / regression (push) Canceled after 0s
feat(品牌标识): 几何 K 图标(favicon/顶栏标记/theme-color) + 并行会话成果入库
## 品牌标识(本次会话)

起因:品牌此前没有任何图形标识 —— 唯一 favicon 是内联 data-URI 里的字母「A」,
那是 v2.0.0「Aurora Admin → Kole UI」改名漏掉的一处(PC 顶栏也是「A」,
移动端站已是「K」;移动端文档站则完全没有 favicon)。

- 几何:24 网格三个互不接触的笔画(竖 + 两斜),圆头描边;
  描边 2.25 → 16px 标签页尺寸下正好 1.5px = 规范原文「描边1.5px」
- 取色分两套(刻意):favicon 硬编码品牌蓝/白(渲染在浏览器标签栏,不继承 kole-dark);
  顶栏标记走 currentColor(实测暗色下自动转 rgb(20,22,28))
- 新增 theme-color 双条(light #FFFFFF / dark #1C1F26,取 --kole-color-card-bg)
- 修 site/app.js hero 标语 KOLE ADMIN → KOLE UI(改名变形残留)
- 移动端 7 个模板补 favicon(此前计数 0)

验收:门禁 9 条全 OK(site-routing/site-routes/mobile-docs/mobile-site/isolation/
theme/nav/i18n/icons);PC 回归 1464/1464 · 移动端 807/807,各连跑 8 次一致;
两端 favicon 405 字节逐字节一致;PC 站控制台错误 1→0。

## 并行会话成果(本次一并入库)

- 图标系统:2576 图标(TDesign/Element Plus,MIT)+ 11 端注入 + 5 个构建门禁工具
  + IconPreview 预览页 + ICON-SPEC.md 冻结规格
- 移动端平台:47 组件 × 6 端 + 文档站 53 页 + 隔离门禁
- PC 组件:103 个大后台组件 / 组件11 批次
- uni-app:PC 端试点 + 移动端端实现 + 真实编译验证

## 工程

- .gitignore 补 .scratch/ 与 .zcode-preexisting-*.txt(会话中间产物,实测 9.1MB,不入库)
- CHANGELOG 补品牌标识条目
- ROADMAP 登 S8-P4(品牌标识任务包 + og:image/apple-touch-icon 未做部分)
2026-09-21 10:05:48 +08:00

84 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# v1.3.0 执行计划(验收链路修复 / 契约第二批 / 文档同步)
> 依据:《现状问题分析与改造清单》v1.3.0 路线图(契约第二批/第三批、C1-C4 收口)+ 本轮对 v1.2.0 交付物的**实测核实**。
> 原则不变:零运行时依赖、build 脚本产物全部可重跑、每步完成即验证、改完文档与实现同步。
---
## 〇 · 前置核实结论(2026-09-10 实测,非文档声称)
| 项 | 文档声称 | 实测结果 | 判定 |
|---|---|---|---|
| 契约覆盖 | 21/79 | `index.json` 带 `contract` 字段 21 条,契约 JSON 22 个文件(含 index.json) | ✅ 一致 |
| 79 静态薄壳 + sitemap | 已生成 | `site/components/*.html`、`sitemap.xml` 存在 | ✅ 一致 |
| 回归通过率 | 75.1%(812 断言) | `tests/report.json` 数值一致,但**报告 version=1.1.1,早于 v1.2.0** | ⚠️ 数据过期 |
| 回归失败项定性 | "演示页真实缺口(states/aria/keyboard),不是 runner 误报" | **定性错误**:根因是测试页快照为空壳(见下) | ❌ 需修正 |
### 回归通过率低的真实根因(本轮定位)
1. `run-tests.ps1` 的 `Get-Snapshot()` 从 `frameworks/<Prefix>.html` 抽取 body 时:**删除全部 `<script>` 与 `<style>`**,并截断到 1200 字符。
2. 79 个 H5 演示页的 DOM **全部由内联 JS 渲染**(body 只有 `<div id="app"></div>` + `<script>render()</script>`)——script 一剥,快照就没内容。
3. 测试页只引用 `colors_and_type.css` + `site/style.css`,**从未引用 `frameworks/<Prefix>.css`**,组件样式根本没加载。
4. 后果:`matrix:states>=1`(52 失败)、`matrix:aria-or-role`(51)、`matrix:variants>=2`(40)、`matrix:keyboard-reachable`(35)在空 DOM 上必然全灭;`contrast>=4.5`(9)在无组件样式下按测试页默认色误判。
**结论:75.1% 是结构性误报,不是实现质量。** 修好链路后通过率才有资格作为对外证据链(Semi「90% 覆盖」那一档的可信度基础)。
---
## WS-1 · 验收链路修复(P0,先做,其他工作的地基)
**做法**:测试页快照区改为 **iframe 加载真实 `frameworks/<Prefix>.html`**,断言运行时**跨帧在同源 frame document 内执行**。
- `tests/_template.html`:`<div id="snapshot">` → `<iframe id="snapshot-frame" src="../frameworks/<Prefix>.html">` + 「新窗口打开演示页」链接。
- `tests/_runtime.js`:
- 新增 `frameDoc()`(取 `contentDocument`,同源可直读;失败回退 `document`);
- `collect()/annotate()/matrix()` 的目标文档、`getComputedStyle` 所属 window、`styleSheets` 来源、`outerHTML` 均切到 frame;
- 向 frame 注入 `[data-assert]` 状态描边样式,保留可视化;
- iframe `load` 后自动跑一次断言,并把结果 `postMessage` 给父页(供批量收集器汇总)。
- `run-tests.ps1`:`Get-Snapshot()` 删除,改为产出 iframe 标记;`Set-Content -Encoding UTF8` 改 `WriteAllText`(无 BOM,与 v1.2.0 的 data.js 修复口径一致)。
**新增** `tests/_collect.html`:把 79 个测试页顺序装入 iframe,监听 `postMessage` 汇总,输出可机读 JSON(供浏览器 `browser_evaluate` 取回写 `tests/report.json`,零 npm 依赖)。
**验收**:
- 任取测试页(button / modal / breadcrumb)浏览器打开:iframe 内组件真实渲染、有样式、`运行断言` 后 matrix 8 项通过率显著上升;
- 79 页全量收集产出新版 `tests/report.json`(version=1.2.0),并通过 `tools/run-regression.mjs` 口径校核(同字段结构);
- 剩余失败项逐条定性为**真实缺口**(保留为改进 backlog,不再有"空 DOM 全灭"这类假失败)。
## WS-2 · 契约第二批:15 个展示类组件(P0,沿用第一批 schema)
选件规则:`category=display` 高频优先,排除已有契约的 table/card。
| slug | 中文 | slug | 中文 | slug | 中文 |
|---|---|---|---|---|---|
| tree | 树形控件 | collapse | 折叠面板 | carousel | 走马灯 |
| calendar | 日历 | timelinelist | 时间轴 | steplist | 步骤列表 |
| cardlist | 卡片列表 | imagepreview | 图片预览 | qrcode | 二维码 |
| countdown | 倒计时 | watermark | 水印 | employeecard | 员工卡片 |
| chartpanel | 图表面板 | dashboardcard | 指标卡 | treetable | 树形表格 |
**字段**(与现有 21 份同 schema):`variantDimensions` / `representativeVariants` / `usageHints` / `structurePatterns` / `anatomy` / `doNotInvent` / `unknowns`。
**流程**:读规格原文(`组件*.txt` 对应章节)→ 写 `.design_library/kole-ui/components/<slug>.json` → `index.json` 注册 `contract` → 重跑 `build-site.ps1` → 浏览器验证详情页「设计契约」章节与 chip。
**硬规则**:只从规格原文提炼,**不发明**;规格未明示的进 `unknowns`,规格明确排除的进 `doNotInvent`。
**验收**:`data.json` 中这 15 个组件 `contractRef` 非空、`contract` 对象完整;契约化覆盖 21 → 36/79。
## WS-3 · 收尾
- `CHANGELOG.md` 增 `[1.3.0]` 条目(回归链路修复 + 契约第二批 + 回归数据更新)。
- `TESTING.md`:修正"失败项是演示页真实缺口"的错误定性,写清 iframe 快照机制与两种回归跑法(浏览器收集器 / Playwright runner)。
- `现状问题分析与改造清单.md`:进度标注同步(问题 8 的定性修正、B1 进度 21→36)。
- `TESTING.md` 中"§ 重新生成测试目录"补 iframe 说明。
- `git commit`(不推送,推送仍需用户凭证)。
---
## 执行顺序
```
WS-1(链路修复 → 重生成 → 全量回归)→ WS-2(契约第二批 → 重建 → 验证)→ WS-3(文档 + 提交)
```
依赖:WS-2 的验收依赖 WS-1 修好的回归(否则新契约没有任何真实断言兜底)。