跳转至

DLG-73 原型组件标注系统 + 公开发布集成 — UAT V1.0 → V1.1

日志编号:DLG-73 日期:2026-08-17 触发人:用户指令「对所有页面进行编号和页面功能组件进行编号,通过特殊事件(例如:ctrl+鼠标停留)可以显示编号+业务需求编号,然后通过这些编号,与需求文档建立关联。上述任务完成后,进行文档公开发布,前面完成的大部分文档都增加纳入发布范围,包括这份完整的原型,都可以发布页面直接操作。」 执行人:听写助手(DT) 前置条件:DLG-72 完成人机协作关系优化(PMG V9.1),UAT V1.0 全套静态 HTML 功能原型(五端 50 页)已完成(DLG-71 后续) 关联文档PMG V9.5UAT V1.1UAT-MAPUAT-PROTO


一、任务背景

1.1 触发场景

DLG-71 完成 UAT V1.0 全套静态 HTML 功能原型(五端 50 页 + 26 用例 + 11 账号)后,用户在本次会话中提出两项深化需求:

  1. 原型组件级标注系统:对所有页面编号 + 所有页面功能组件编号;通过 Ctrl+鼠标悬停特殊事件显示「组件编号 + 业务需求编号」;通过编号建立原型与需求文档的双向关联(在需求文档中描述功能实现的位置)。
  2. 公开发布集成:上述任务完成后,将业务测试目录、DIP1 文档及原型纳入公开发布范围,使原型可在发布站点直接操作。

1.2 任务目标

  • 建立 <pageId>.<AREA>.<NN> 组件编号体系,覆盖五端 50 页全部功能组件
  • 实现 Ctrl+Hover Tooltip 标注交互,支持动态渲染元素
  • 建立原型↔需求双向追溯:原型侧通过 data-req-ids 反查需求;需求侧通过 SPEC 表格「原型位置」列反查组件
  • 扩展 MkDocs 站点结构,新增 UAT 区块(13 个 slug),原型通过 iframe 嵌入发布站点
  • 全部工作纳入 Git 版本控制并部署至 Cloudflare Pages

二、执行步骤 12 阶段

阶段 1:方案设计与基础设施 ✅

设计文档 .trae/documents/原型编号系统与公开发布方案.md,明确:

设计点 方案
页面编号 <END>-<SHORTID>,如 OPR-DASH-01(OPR 端 DASH-01 页)
组件编号 <pageId>.<AREA>.<NN>,如 OPR-DASH-01.KPI.01
AREA 枚举 NAV / TAB / KPI / POOL / TREND / REC / TODO / FORM / LIST / DTL / BTN / ACT / FTG / CHART / CARD / STEP / MODAL / MISC
Ctrl+Hover 实现 事件委托监听 Control 键状态 + 动态 Tooltip + WV.annotate(selector, mapper) API
双向映射 pageMeta.json + reqIndex.json + 11-原型需求映射.md + SPEC「原型位置」列

阶段 2:标注基础设施 3 件套 ✅

文件 类型 关键内容
assets/js/annotate.js 新建 Ctrl 键监听 + Tooltip 渲染 + WV.annotate API + 事件委托支持动态元素
assets/css/common.css 修改 追加 .wv-annotate-mode(虚线轮廓高亮)+ .wv-tooltip(浮层样式)
assets/js/data.js 修改 renderWebSidebar / renderPhoneTabBar 等函数为导航菜单/TabBar 自动注入 data-comp-id / data-comp-desc / data-req-idsoprMenu / mfrMenu / wkrTabs / cstTabs / lgpTabs 所有菜单项新增 reqIds 字段

阶段 3:HTML 标注 50 页全量覆盖 ✅

采用 6 个 subagent 并行标注(按端+复杂度分组):

页面数 组件数 备注
组1 OPR 简单页 8 65 login/admin/buildings/customers/leads 等
组2 OPR 复杂页 11 115 dashboard/orders-board/quotes 等含 KPI/LIST/CHART
组3 MFR 全部 8 70 后期重试 5 个文件(48 组件)补齐
组4 WKR 全部 8 67 today-orders/install-process/earnings 等
组5 CST 全部 8 61 home/inquiry/order-detail/review 等
组6 LGP 6 + 入口 1 7 56 pending/in-progress/completed/waybill-detail 等
合计 五端+入口 50 434 唯一 compId 434 个

阶段 4:扫描脚本与元数据生成 ✅

新建 scripts/scan-prototype.js

  • 扫描 50 个 HTML 文件,提取 data-page-id / data-comp-id / data-comp-desc / data-req-ids
  • 生成 pageMeta.json(50 页 / 434 组件元数据)
  • 生成 reqIndex.json(26 需求反向索引)

运行结果:

===== 扫描结果 =====
页面总数: 50
组件总数: 434
被引用需求数: 26

按端分布:
  CST (客户端 App): 8 页 / 61 组件
  LGP (物流端 App): 6 页 / 48 组件
  MFR (生产商门户): 8 页 / 70 组件
  OPR (运营后台): 19 页 / 180 组件
  PORTAL (原型入口): 1 页 / 8 组件
  WKR (师傅端 App): 8 页 / 67 组件

阶段 5:双向映射文档生成 ✅

新建 scripts/gen-prototype-mapping.js,生成 11-原型需求映射.md(90 KB):

章节 内容
一、文档元数据 文档编号 DOC-U11 / UAT-MAP / V1.0
二、整体统计 50 页 / 434 组件 / 26 需求 / 25.5% 覆盖率
三、正向映射(页面→组件→需求) 按端分组,每页列出组件清单+关联需求
四、反向映射(需求→组件→页面) 按 SPEC 章节分组,每需求列出组件+页面
五、未覆盖需求清单 70 个需求未在原型标注(多为后端逻辑)
六、Ctrl+Hover 使用说明 操作步骤 / 视觉提示 / 常见问题

阶段 6:SPEC 反向追溯列自动追加 ✅

新建 scripts/fill-spec-prototype.py V1.1:

  • 读取 reqIndex.json 反向索引
  • DIP1-SPEC 所有 §3.x 章节功能点表格追加「原型位置」列
  • 修复 V1.0 中的列分隔符 bug(append_col_to_row 函数正确处理末尾 |
  • 74 行功能点全部追加原型组件编号(如 OPR-QSV-01.FORM.01; OPR-QSV-01.BTN.01

阶段 7:校验工具与完整性验证 ✅

新建 scripts/verify-annotate.js

===== 原型标注校验 =====
① 共发现 50 个 HTML 文件
② 校验每个 HTML 的标注完整性:
  ✅ 50/50 HTML 有 data-page-id
  ✅ 50/50 HTML 引入了 annotate.js
  ✅ 共 434 个唯一 compId
  ✅ 共 26 个被引用的 F-XXX-NNN
③ 校验 pageMeta.json / reqIndex.json:
  ✅ pageMeta.json: 50 页
  ✅ reqIndex.json: 26 需求
④ 校验需求覆盖(SPEC ↔ reqIndex):
  ✅ SPEC 中包含 94 个 F-XXX-NNN
  ⚠️  reqIndex 中有 2 个需求不在 SPEC 中(F-OPS-015/F-SYS-002,经核查为校验脚本误报——这两个 ID 在 SPEC 范围 F-OPS-001~022 / F-SYS-001~014 内,只是 SPEC 文本使用简写形式)
  ℹ️  SPEC 中有 70 个需求未在原型中标注(部分后端逻辑无前端原型,属正常)
  ✅ 原型覆盖率: 25.5% (24/94)
===== 汇总 =====
  错误: 0
  警告: 1
  信息: 1

阶段 8:MkDocs 发布集成配置 ✅

8.1 URL 映射扩展

修改 scripts/url_map.py

  • MANUAL_MAP 新增 13 个 UAT slug 映射:
"docs/业务测试/README.md": "uat",
"docs/业务测试/01-测试账号清单.md": "uatacct",
"docs/业务测试/02-C端标准流程用例.md": "uatcst1",
"docs/业务测试/03-C端异常流程用例.md": "uatcst2",
"docs/业务测试/04-B2B2C本地配送用例.md": "uatloc",
"docs/业务测试/05-B2B2C跨境配送用例.md": "uatxbd",
"docs/业务测试/06-物流配送专项用例.md": "uatlgp",
"docs/业务测试/07-MFR生产商专项用例.md": "uatmfr",
"docs/业务测试/08-运营管理与派调用例.md": "uatopr",
"docs/业务测试/09-数据初始化方案.md": "uatinit",
"docs/业务测试/10-测试执行计划.md": "uatplan",
"docs/业务测试/11-原型需求映射.md": "uatmap",
"docs/业务测试/原型入口.md": "uatproto",
  • NAV_STRUCTURE 新增「业务测试 UAT」导航区块(13 条目)

8.2 原型入口页

新建 docs/业务测试/原型入口.md(DOC-U12 / UAT-PROTO / V1.0):

  • 通过 iframe 嵌入静态 HTML 原型(保留 Ctrl+Hover 标注能力)
  • 提供三种访问方式:iframe 内嵌 / 新窗口打开 / 按端直达
  • Ctrl+Hover 使用说明 + 编号体系说明 + 常见问题 FAQ

阶段 9:AGENTS.md 版本升级 V9.4 → V9.5 ✅

修改 AGENTS.md

  • 顶部版本号 V9.4 → V9.5,最后更新 2026-08-18
  • 文档导航表第 7 条「UAT」版本 V1.0 → V1.1,新增「V1.1 新增原型组件标注系统(Ctrl+Hover 显示组件编号+需求 ID)+ 11-原型需求映射.md 双向追溯 + MkDocs 公开发布集成」描述
  • 修订记录新增 V9.5 条目(详细记录标注基础设施 / 双向追溯 / 校验工具 / MkDocs 集成 5 大模块)

阶段 10:Git 提交与站点构建 ✅

10.1 Git 提交

  • 8ea932cdocs: V9.5 原型组件标注系统 + 公开发布集成 + DT后门 + MFR/LGP干系方(216 文件,整合 V9.1~V9.5 全部变更)
  • d447628fix: build-site.py 添加原型 HTML 复制到 uatproto slug 目录的后处理步骤(14 行新增)
  • eeb480afix: 排除 ops/tmp/ 目录避免 APK 文件超过 Cloudflare Pages 25MB 限制(3 行新增 2 行修改)

10.2 build-site.py 修复

发现两个构建期问题并修复:

问题 原因 修复
原型 HTML 不在 uatproto slug 目录 MkDocs 将 md 转为 site/uatproto/index.html,但原型 HTML 保留在 site/业务测试/原型/,iframe src 期望在 site/uatproto/原型/ 步骤 10.6 新增 shutil.copytree 复制 55 个原型文件到正确位置
APK 文件超过 Cloudflare Pages 25MB 限制 ops/tmp/ 下 4 个 APK 文件各约 68.6 MiB EXCLUDE_PREFIXES 新增 "ops/tmp/",非 md 文件从 103 降至 84

10.3 站点构建结果

✓ 跟踪文件: 189 md + 84 非 md (已排除 ops/private + ops/worklog + ops/deploy + ops/tmp)
✓ URL 映射表: 172 个 slug
✓ 复制 Markdown(slug 扁平化): 190 个文件
✓ 复制非 Markdown: 84 个文件
✓ 复制原型 HTML 到 uatproto/原型/: 55 个文件(iframe 嵌入支持)
✓ 站点已构建: D:\AC\TF\hk2026\site

阶段 11:Cloudflare Pages 部署 ✅

用户执行 powershell -File D:\AC\TF\hk2026\scripts\deploy-site.ps1 -SkipBuild 完成部署,站点发布至 https://hk2026-docs.pages.dev

部署后可访问的关键路径:

路径 内容
/uat/ UAT 目录索引
/uatproto/ 功能原型入口(iframe 嵌入原型)
/uatmap/ 原型需求映射文档(双向追溯)
/uatacct/ 测试账号清单
/uatcst1/ /uatcst2/ C 端标准+异常流程用例
/uatloc/ /uatxbd/ B2B2C 本地+跨境配送用例
/uatlgp/ /uatmfr/ /uatopr/ 物流/MFR/运营专项用例
/uatinit/ /uatplan/ 数据初始化+测试执行计划

阶段 12:部署后验证 ✅

  • site/uatproto/index.html 存在,iframe src 正确指向 原型/index.html
  • site/uatproto/原型/index.html 存在(PORTAL 入口页)
  • site/uatproto/原型/opr-admin/login.html 存在(OPR 登录页)
  • site/uatproto/原型/assets/js/annotate.js 存在(标注脚本)
  • site/uatmap/index.html 存在(映射文档)
  • ✅ 13 个 UAT 目录全部生成
  • ✅ 站点中无超过 10 MiB 的文件

三、交付物清单

3.1 新建文档(4 份)

文档 编号 位置
原型需求映射 UAT-MAP / DOC-U11 docs/业务测试/11-原型需求映射.md
功能原型入口 UAT-PROTO / DOC-U12 docs/业务测试/原型入口.md
实施方案 .trae/documents/原型编号系统与公开发布方案.md
本工作日志 DLG-73 docs/工作日志/对话记录/20260817_听写助手对话记录73_原型标注系统与公开发布集成.md

3.2 新建脚本(4 份)

脚本 作用
scripts/scan-prototype.js 扫描 HTML 生成 pageMeta.json + reqIndex.json
scripts/gen-prototype-mapping.js 生成 11-原型需求映射.md 双向映射文档
scripts/fill-spec-prototype.py 为 SPEC 表格追加「原型位置」列
scripts/verify-annotate.js 校验标注完整性(0 错误)

3.3 新建前端资源(2 份)

文件 作用
docs/业务测试/原型/assets/js/annotate.js Ctrl+Hover Tooltip 核心逻辑 + WV.annotate API
docs/业务测试/原型/assets/js/pageMeta.json + reqIndex.json 元数据 JSON(运行时加载)

3.4 修改文件(6 份)

文件 变更
docs/业务测试/原型/assets/css/common.css 追加 .wv-annotate-mode + .wv-tooltip 样式
docs/业务测试/原型/assets/js/data.js render 函数注入 data-* + menu reqIds 字段
dip1/docs/DIP1-SPEC-需求规格说明书.md 74 行功能点追加「原型位置」列
scripts/build-site.py 新增步骤 10.6 原型复制 + ops/tmp/ 排除
scripts/url_map.py 新增 13 个 UAT slug + 导航区块
AGENTS.md V9.4 → V9.5 修订记录

3.5 修改 HTML(50 份)

五端 50 页原型 HTML 全部添加:

  • <body data-page-id="..."> 页面编号
  • <script src="../assets/js/annotate.js"></script> 标注脚本引入
  • 组件级 data-comp-id / data-comp-desc / data-req-ids 属性(共 434 个组件)

四、关键里程碑

  • 本次完成日期:2026-08-17
  • 里程碑意义:UAT 从 V1.0(原型可用)升级至 V1.1(原型可追溯+公开发布),原型与 SPEC 需求建立双向追溯链路,发布站点可直接操作原型并查看组件级需求关联,为真实用户测试提供标准化操作入口
  • 下一关键节点:真实用户联调测试启动后,测试人员可通过 Ctrl+Hover 快速定位每个组件对应的需求编号,反向查询 SPEC 验收标准;测试中发现的 bug 可通过组件编号精准上报

五、后续待办

序号 待办 负责人
1 听码(WDE)实施听写后门功能代码(F-DT-001~006) WDE
2 数据库迁移脚本编写(dt_backdoor_audit 表) WDE
3 真实用户联调测试启动(使用 UAT V1.1 原型作为操作参考) DT
4 测试中发现的 bug 通过组件编号精准定位需求→代码 DT → WDE
5 根据测试反馈补充未覆盖需求的原型标注(当前覆盖率 25.5%) DT

六、Git 提交记录

Commit 类型 描述 文件数
8ea932c docs V9.5 原型组件标注系统 + 公开发布集成 + DT后门 + MFR/LGP干系方 216
d447628 fix build-site.py 添加原型 HTML 复制到 uatproto slug 目录的后处理步骤 1
eeb480a fix 排除 ops/tmp/ 目录避免 APK 文件超过 Cloudflare Pages 25MB 限制 1

本日志记录 UAT V1.0 → V1.1 原型组件标注系统与公开发布集成的完整过程。相关文档见 PMG V9.5 / UAT V1.1 / UAT-MAP / UAT-PROTO