feat: refine guide explain UX and QA docs

This commit is contained in:
lyf
2026-06-12 17:20:39 +08:00
parent 2055b13b90
commit a7c1879f60
27 changed files with 2831 additions and 1362 deletions

View File

@@ -182,7 +182,7 @@
border-radius: 50%;
display: grid;
place-items: center;
background: conic-gradient(var(--green) 78%, #e4ebe6 0);
background: conic-gradient(var(--green) 75%, #e4ebe6 0);
}
.ring span {
width: 78px;
@@ -640,9 +640,9 @@
<p class="subtitle">从 docs/pdca 生成的专业项目状态、风险和行动闭环面板</p>
</div>
<div class="meta">
<div>生成日期: 2026-06-10</div>
<div>生成日期: 2026-06-12</div>
<div>项目: E:\MyWork\深圳国际艺术馆\museum-guide\museum-guide-v4.0\frontend-miniapp</div>
<div>Git master@a90f63c · 变更文件数:22</div>
<div>Git master@2055b13 · 变更文件数:19</div>
</div>
</header>
@@ -692,7 +692,7 @@
<button type="button" class="chip-button" data-quick-filter="missing-owner" aria-pressed="false">无负责人</button>
<button type="button" class="chip-button" data-quick-filter="missing-evidence" aria-pressed="false">缺证据</button>
<button type="button" class="chip-button" data-quick-filter="uncounted" aria-pressed="false">未计入完成率</button>
<span class="task-counter"><strong id="visible-task-count">0</strong>/<span id="total-task-count">9</span> 当前可见</span>
<span class="task-counter"><strong id="visible-task-count">0</strong>/<span id="total-task-count">12</span> 当前可见</span>
<button type="button" id="reset-filters" class="tool-button">重置</button>
<button type="button" id="export-visible" class="tool-button">导出 CSV</button>
<button type="button" id="print-dashboard" class="tool-button">打印</button>
@@ -703,16 +703,16 @@
<section id="overview" class="panel health-card health-red span-4">
<div class="health-label">健康状态</div>
<strong class="health-value">红色</strong>
<p class="health-reason">2 个任务有阻塞/依赖说明(不等同硬阻塞);2 个高影响风险仍开放;1 个决策待确认</p>
<p class="health-reason">4 个任务有阻塞/依赖说明(不等同硬阻塞);1 个任务逾期3 个高影响风险仍开放;2 个决策待确认</p>
</section>
<section class="panel span-4">
<h2>任务完成率</h2>
<div class="ring-wrap">
<div class="ring" aria-label="78%"><span>78%</span></div>
<div class="ring" aria-label="75%"><span>75%</span></div>
<div>
<p>已完成: 7/9</p>
<p class="subtitle">进行中/待复核: 0 · 硬阻塞: 0</p>
<p>已完成: 9/12</p>
<p class="subtitle">进行中/待复核: 1 · 硬阻塞: 0</p>
</div>
</div>
</section>
@@ -723,13 +723,13 @@
<div class="metric metric-neutral">
<span>任务总览</span>
<strong>9</strong>
<strong>12</strong>
</div>
<div class="metric metric-good">
<span>已完成(有证据)</span>
<strong>7</strong>
<strong>9</strong>
</div>
@@ -741,7 +741,7 @@
<div class="metric metric-info">
<span>进行中/待复核</span>
<strong>0</strong>
<strong>1</strong>
</div>
@@ -753,37 +753,37 @@
<div class="metric metric-warn">
<span>阻塞/依赖说明</span>
<strong>2</strong>
<strong>4</strong>
</div>
<div class="metric metric-warn">
<span>风险</span>
<strong>4</strong>
<strong>5</strong>
</div>
<div class="metric metric-neutral">
<span>检查</span>
<strong>通过 8 / 未通过 1</strong>
<strong>通过 13 / 未通过 1</strong>
</div>
<div class="metric metric-info">
<span>行动</span>
<strong>5</strong>
<strong>7</strong>
</div>
<div class="metric metric-info">
<span>里程碑</span>
<strong>5</strong>
<strong>6</strong>
</div>
<div class="metric metric-warn">
<span>决策待确认</span>
<strong>1</strong>
<strong>2</strong>
</div>
</div>
@@ -793,10 +793,10 @@
<h2>专业状态维度</h2>
<div class="dimension-grid">
<article class="dimension-card status-yellow">
<article class="dimension-card status-red">
<span>进度</span>
<strong></strong>
<p>开放工作仍有截止日期待确认</p>
<strong></strong>
<p>存在逾期任务或里程碑</p>
</article>
@@ -834,22 +834,38 @@
<h2>核心工作包</h2>
<div class="workstream-grid">
<article class="workstream-card workstream-frontend tone-good" role="button" tabindex="0" data-workstream="frontend" aria-label="小程序前端">
<article class="workstream-card workstream-frontend tone-warn" role="button" tabindex="0" data-workstream="frontend" aria-label="小程序前端">
<div class="workstream-head">
<span>小程序前端</span>
<strong>100%</strong>
</div>
<div class="mini-progress"><span style="width:100%;"></span></div>
<div class="workstream-meta">
<span>已验证完成 6/6</span>
<span>已验证完成 8/8</span>
<span>阻塞 0</span>
<span>关注项 0</span>
<span>关注项 1</span>
<span>下一到期 待确认</span>
<span>分类:关键词推断</span>
</div>
</article>
<article class="workstream-card workstream-navigation tone-warn" role="button" tabindex="0" data-workstream="navigation" aria-label="三维导览路网">
<div class="workstream-head">
<span>三维导览路网</span>
<strong>0%</strong>
</div>
<div class="mini-progress"><span style="width:0%;"></span></div>
<div class="workstream-meta">
<span>已验证完成 0/1</span>
<span>阻塞 0</span>
<span>关注项 1</span>
<span>下一到期 2026-06-13</span>
<span>分类:关键词推断</span>
</div>
</article>
<article class="workstream-card workstream-governance tone-warn" role="button" tabindex="0" data-workstream="governance" aria-label="项目治理">
<div class="workstream-head">
<span>项目治理</span>
@@ -934,6 +950,22 @@
</article>
<article class="timeline-row status-done">
<div class="timeline-date">2026-06-12</div>
<div class="timeline-dot"></div>
<div class="timeline-body">
<strong>2026-06-12 H5 功能更新部署到测试域名</strong>
<div>
<span>M-006</span>
<span>已完成</span>
<span>负责人: Codex</span>
<span>截止: 2026-06-12</span>
<span>证据: https://guide.whaoyue.com/ 引用 `index-Da0rB3mi.js`;备份 `/dmdata/nginx/html/_backups/guide-before-deploy-20260612032520.tar.gz`</span>
</div>
</div>
</article>
<article class="timeline-row status-todo">
<div class="timeline-date">待确认</div>
<div class="timeline-dot"></div>
@@ -970,11 +1002,11 @@
<section class="panel span-7">
<h2>任务状态分布</h2>
<div class="status-bar"><span class="segment segment-done" style="width:78%;" title="已完成: 7"></span><span class="segment segment-todo" style="width:22%;" title="待办: 2"></span></div>
<div class="status-bar"><span class="segment segment-done" style="width:75%;" title="已完成: 9"></span><span class="segment segment-review" style="width:8%;" title="待复核: 1"></span><span class="segment segment-todo" style="width:17%;" title="待办: 2"></span></div>
<div class="legend">
<span class="done">已完成 7</span>
<span class="done">已完成 9</span>
<span class="doing">进行中 0</span>
<span class="review">待复核 0</span>
<span class="review">待复核 1</span>
<span class="blocked">阻塞 0</span>
<span class="todo">待办 2</span>
</div>
@@ -990,7 +1022,7 @@
</div>
<div class="matrix-grid">
<div></div><div></div><div></div><div></div>
<div class="matrix-axis"></div><div class="matrix-cell matrix-high-low"></div><div class="matrix-cell matrix-high-medium"><button type="button" class="risk-chip" data-risk-id="R-003" title="模型静态资源缓存 30 天,错误资源上线后恢复慢">R-003</button></div><div class="matrix-cell matrix-high-high"><button type="button" class="risk-chip" data-risk-id="R-001" title="H5 用户流程闭环仍有断点,影响真实到馆任务完成">R-001</button></div><div class="matrix-axis"></div><div class="matrix-cell matrix-medium-low"></div><div class="matrix-cell matrix-medium-medium"><button type="button" class="risk-chip" data-risk-id="R-002" title="fresh browser 复测未完成,可能漏掉真实设备上的 3D 渲染问题">R-002</button><button type="button" class="risk-chip" data-risk-id="R-004" title="项目仍有多处未提交/未归属改动,发布边界可能不清">R-004</button></div><div class="matrix-cell matrix-medium-high"></div><div class="matrix-axis"></div><div class="matrix-cell matrix-low-low"></div><div class="matrix-cell matrix-low-medium"></div><div class="matrix-cell matrix-low-high"></div>
<div class="matrix-axis"></div><div class="matrix-cell matrix-high-low"></div><div class="matrix-cell matrix-high-medium"><button type="button" class="risk-chip" data-risk-id="R-003" title="模型静态资源缓存 30 天,错误资源上线后恢复慢">R-003</button><button type="button" class="risk-chip" data-risk-id="R-005" title="讲解内容改为资源包 POI 派生后,若未补正式文案/音频和人工验收,可能造成讲解体验与验收口径不一致">R-005</button></div><div class="matrix-cell matrix-high-high"><button type="button" class="risk-chip" data-risk-id="R-001" title="H5 用户流程闭环仍有断点,影响真实到馆任务完成">R-001</button></div><div class="matrix-axis"></div><div class="matrix-cell matrix-medium-low"></div><div class="matrix-cell matrix-medium-medium"><button type="button" class="risk-chip" data-risk-id="R-002" title="fresh browser 复测未完成,可能漏掉真实设备上的 3D 渲染问题">R-002</button><button type="button" class="risk-chip" data-risk-id="R-004" title="项目仍有多处未提交/未归属改动,发布边界可能不清">R-004</button></div><div class="matrix-cell matrix-medium-high"></div><div class="matrix-axis"></div><div class="matrix-cell matrix-low-low"></div><div class="matrix-cell matrix-low-medium"></div><div class="matrix-cell matrix-low-high"></div>
</div>
</div>
@@ -1024,15 +1056,15 @@
<div class="phase phase-do">
<span>执行</span>
<strong>6</strong>
<small>已完成 5/6</small>
<strong>7</strong>
<small>已完成 6/7</small>
</div>
<div class="phase phase-check">
<span>检查</span>
<strong>1</strong>
<small>已完成 0/1</small>
<strong>3</strong>
<small>已完成 1/3</small>
</div>
@@ -1058,46 +1090,46 @@
<div>
<small>判定依据</small>
<ul>
<li>1 个质量门禁未通过</li><li>1 个检查待完成</li><li>2 个高影响风险仍开放</li><li>1 个决策待确认</li>
<li>1 个质量门禁未通过</li><li>2 个检查待完成</li><li>3 个高影响风险仍开放</li><li>2 个决策待确认</li>
</ul>
</div>
</article>
<h3>最近检查</h3>
<article class="quality-row result-pass">
<span class="quality-result">通过</span>
<strong>根目录 TXT 校验文件公网访问</strong>
<small>2026-06-10 · C-010</small>
</article>
<article class="quality-row result-pass">
<span class="quality-result">通过</span>
<strong>PDCA 报告与面板生成</strong>
<small>2026-06-10 · C-009</small>
</article>
<article class="quality-row result-pending">
<span class="quality-result">待检查</span>
<strong>in-app browser fresh 3D 复测</strong>
<small>2026-06-10 · C-008</small>
</article>
<article class="quality-row result-fail">
<span class="quality-result">未通过</span>
<strong>H5 用户流程闭环审计</strong>
<small>2026-06-10 · C-007</small>
<strong>讲解内容资源包 POI 派生改动验收</strong>
<small>2026-06-12 · C-016</small>
</article>
<article class="quality-row result-pass">
<span class="quality-result">通过</span>
<strong>缺失模型资源处理</strong>
<small>2026-06-10 · C-006</small>
<strong>2026-06-12 线上 HTTP 资源复核</strong>
<small>2026-06-12 · C-015</small>
</article>
<article class="quality-row result-pass">
<span class="quality-result">通过</span>
<strong>楼层 GLB 公网响应</strong>
<small>2026-06-10 · C-005</small>
<strong>2026-06-12 当前工作区质量门复核</strong>
<small>2026-06-12 · C-014</small>
</article>
<article class="quality-row result-pass">
<span class="quality-result">通过</span>
<strong>2026-06-12 新模型资源公网响应</strong>
<small>2026-06-12 · C-013</small>
</article>
<article class="quality-row result-pass">
<span class="quality-result">通过</span>
<strong>2026-06-12 线上首页更新</strong>
<small>2026-06-12 · C-012</small>
</article>
<article class="quality-row result-pass">
<span class="quality-result">通过</span>
<strong>2026-06-12 H5 构建与类型检查</strong>
<small>2026-06-12 · C-011</small>
</article>
</div>
@@ -1107,7 +1139,12 @@
<section class="panel span-6">
<h2>阻塞与逾期</h2>
<div class="item-list">
<p class="empty">暂无阻塞或逾期任务。</p>
<article class="item-row">
<strong>浏览器 fresh load 复测室内 3D</strong>
<div><span>编号: T-007</span><span>状态: 待办</span><span>负责人: 待确认</span><span>截止日期: 2026-06-11</span><span>阻塞项: 当前 in-app browser 调试通道初始化异常,需人工或恢复工具后复测</span></div>
</article>
</div>
</section>
@@ -1267,12 +1304,12 @@
<td><span class="counted-yes"></span></td>
</tr>
<tr class="task-row"
<tr class="task-row row-due-overdue"
data-status="todo"
data-owner="TBD"
data-owner-missing="true"
data-due="2026-06-11"
data-due-state="future"
data-due-state="overdue"
data-phase="check"
data-workstream="governance"
data-hard-blocked="false"
@@ -1339,6 +1376,78 @@
<td><span class="counted-yes"></span></td>
</tr>
<tr class="task-row"
data-status="done"
data-owner="Codex"
data-owner-missing="false"
data-due="2026-06-12"
data-due-state="future"
data-phase="do"
data-workstream="frontend"
data-hard-blocked="false"
data-missing-evidence="false"
data-counted="true"
data-search="t-010 部署 2026-06-12 h5 功能更新 do done codex 2026-06-12 `pnpm type-check``pnpm build:h5`;线上备份 `/dmdata/nginx/html/_backups/guide-before-deploy-20260612032520.tar.gz`;首页引用 `index-da0rb3mi.js`">
<td class="task-id">T-010</td>
<td class="task-title">部署 2026-06-12 H5 功能更新</td>
<td>执行</td>
<td><span class="status-pill status-done">已完成</span></td>
<td>Codex</td>
<td>2026-06-12</td>
<td><button type="button" class="link-button workstream-filter" data-workstream-filter="frontend">小程序前端</button></td>
<td class="task-evidence">`pnpm type-check``pnpm build:h5`;线上备份 `/dmdata/nginx/html/_backups/guide-before-deploy-20260612032520.tar.gz`;首页引用 `index-Da0rB3mi.js`</td>
<td>待确认</td>
<td><span class="counted-yes"></span></td>
</tr>
<tr class="task-row"
data-status="done"
data-owner="Codex"
data-owner-missing="false"
data-due="2026-06-12"
data-due-state="future"
data-phase="check"
data-workstream="frontend"
data-hard-blocked="false"
data-missing-evidence="false"
data-counted="true"
data-search="t-011 复核 2026-06-12 当前工作区质量门 check done codex 2026-06-12 `pnpm type-check` 通过;`pnpm lint` 通过且仅有 18 个 warning`pnpm build:h5` 通过并复制 `static/nav-assets``pnpm build:mp-weixin` 通过 sass legacy api warning 不阻塞;小程序发布仍不在本轮 h5 部署范围">
<td class="task-id">T-011</td>
<td class="task-title">复核 2026-06-12 当前工作区质量门</td>
<td>检查</td>
<td><span class="status-pill status-done">已完成</span></td>
<td>Codex</td>
<td>2026-06-12</td>
<td><button type="button" class="link-button workstream-filter" data-workstream-filter="frontend">小程序前端</button></td>
<td class="task-evidence">`pnpm type-check` 通过;`pnpm lint` 通过且仅有 18 个 warning`pnpm build:h5` 通过并复制 `static/nav-assets``pnpm build:mp-weixin` 通过</td>
<td>Sass legacy API warning 不阻塞;小程序发布仍不在本轮 H5 部署范围</td>
<td><span class="counted-yes"></span></td>
</tr>
<tr class="task-row"
data-status="review"
data-owner="TBD"
data-owner-missing="true"
data-due="2026-06-13"
data-due-state="future"
data-phase="check"
data-workstream="navigation"
data-hard-blocked="false"
data-missing-evidence="false"
data-counted="false"
data-search="t-012 梳理讲解内容数据源改动和交付边界 check review tbd 2026-06-13 `src/data/providers/staticmuseumcontentprovider.ts` 从导览资源包 poi 派生展厅/展项;`src/components/explain/explainlist.vue` 显示暂无音频;`src/view-models/explainviewmodels.ts` 透出 tags 需人工浏览器/真实设备确认讲解列表、详情和搜索展示是否符合下一轮交付口径">
<td class="task-id">T-012</td>
<td class="task-title">梳理讲解内容数据源改动和交付边界</td>
<td>检查</td>
<td><span class="status-pill status-review">待复核</span></td>
<td>待确认</td>
<td>2026-06-13</td>
<td><button type="button" class="link-button workstream-filter" data-workstream-filter="navigation">三维导览路网</button></td>
<td class="task-evidence">`src/data/providers/staticMuseumContentProvider.ts` 从导览资源包 POI 派生展厅/展项;`src/components/explain/ExplainList.vue` 显示暂无音频;`src/view-models/explainViewModels.ts` 透出 tags</td>
<td>需人工浏览器/真实设备确认讲解列表、详情和搜索展示是否符合下一轮交付口径</td>
<td><span class="counted-no">未完成</span></td>
</tr>
</tbody>
</table>
</div>
@@ -1360,6 +1469,12 @@
<div><span>编号: R-003</span><span>状态: 缓解中</span><span>缓解措施: 模型包路径带版本号;缺失资源返回 404部署时使用 URL 参数强刷前端包</span><span>负责人: Codex</span></div>
</article>
<article class="item-row">
<strong>讲解内容改为资源包 POI 派生后,若未补正式文案/音频和人工验收,可能造成讲解体验与验收口径不一致</strong>
<div><span>编号: R-005</span><span>状态: 开放</span><span>缓解措施: 保留“暂无音频”显性状态;将资源包 POI 派生内容作为过渡方案复核;进入发布前补人工浏览器/真实设备验收和正式内容接入计划</span><span>负责人: 待确认</span></div>
</article>
</div>
</section>
@@ -1386,14 +1501,14 @@
<article class="item-row">
<strong>监控模型资源缓存与 404 行为,确认无 `&lt;!DOCTYPE` JSON 解析报错复发</strong>
<div><span>编号: A-004</span><span>负责人: 待确认</span><span>截止日期: 2026-06-11</span><span>来源: R-003</span></div>
<strong>梳理当前工作区未提交改动,明确本轮交付边界</strong>
<div><span>编号: A-005</span><span>负责人: 待确认</span><span>截止日期: 2026-06-11</span><span>来源: R-004</span></div>
</article>
<article class="item-row">
<strong>梳理当前工作区未提交改动,明确本轮交付边界</strong>
<div><span>编号: A-005</span><span>负责人: 待确认</span><span>截止日期: 2026-06-11</span><span>来源: R-004</span></div>
<strong>对 2026-06-12 新部署版本执行人工浏览器冒烟测试</strong>
<div><span>编号: A-006</span><span>负责人: 待确认</span><span>截止日期: 2026-06-13</span><span>来源: C-012 / C-013</span></div>
</article>
</div>
@@ -1408,6 +1523,12 @@
<div><span>编号: D-004</span><span>负责人: 待确认</span><span>需要日期: 2026-06-11</span><span>建议: 建议纳入准入</span></div>
</article>
<article class="item-row">
<strong>是否接受“从导览资源包 POI 派生讲解展厅/展项”作为正式内容接入前的过渡方案</strong>
<div><span>编号: D-005</span><span>负责人: 待确认</span><span>需要日期: 2026-06-13</span><span>建议: 建议仅作为过渡展示方案纳入,发布前必须明确“暂无音频”和正式内容接入计划</span></div>
</article>
</div>
</section>
@@ -1421,7 +1542,7 @@
<footer>由项目内 PDCA 进度工具生成 · 来源:项目管理目录</footer>
</div>
<script id="dashboard-data" type="application/json">{"language": "zh", "date": "2026-06-10", "risks": [{"id": "R-001", "risk": "H5 用户流程闭环仍有断点,影响真实到馆任务完成", "probability": "高", "impact": "高", "status": "开放", "mitigation": "按 `docs/QA/user-flow-closure-audit-2026-06-10.md` 拆分搜索、详情、路线、设施选择、返回/取消/重试任务", "owner": "待确认"}, {"id": "R-002", "risk": "fresh browser 复测未完成,可能漏掉真实设备上的 3D 渲染问题", "probability": "中", "impact": "中", "status": "观察中", "mitigation": "使用浏览器强刷、移动端视口和真实设备补测室内 3D保留 HTTP 资源验证作为最低证据", "owner": "待确认"}, {"id": "R-003", "risk": "模型静态资源缓存 30 天,错误资源上线后恢复慢", "probability": "中", "impact": "高", "status": "缓解中", "mitigation": "模型包路径带版本号;缺失资源返回 404部署时使用 URL 参数强刷前端包", "owner": "Codex"}, {"id": "R-004", "risk": "项目仍有多处未提交/未归属改动,发布边界可能不清", "probability": "中", "impact": "中", "status": "观察中", "mitigation": "发布前整理变更清单,确认哪些进入本轮交付,哪些留作后续", "owner": "待确认"}]}</script>
<script id="dashboard-data" type="application/json">{"language": "zh", "date": "2026-06-12", "risks": [{"id": "R-001", "risk": "H5 用户流程闭环仍有断点,影响真实到馆任务完成", "probability": "高", "impact": "高", "status": "开放", "mitigation": "按 `docs/QA/user-flow-closure-audit-2026-06-10.md` 拆分搜索、详情、路线、设施选择、返回/取消/重试任务", "owner": "待确认"}, {"id": "R-002", "risk": "fresh browser 复测未完成,可能漏掉真实设备上的 3D 渲染问题", "probability": "中", "impact": "中", "status": "观察中", "mitigation": "使用浏览器强刷、移动端视口和真实设备补测室内 3D保留 HTTP 资源验证作为最低证据", "owner": "待确认"}, {"id": "R-003", "risk": "模型静态资源缓存 30 天,错误资源上线后恢复慢", "probability": "中", "impact": "高", "status": "缓解中", "mitigation": "模型包路径带版本号;缺失资源返回 404部署时使用 URL 参数强刷前端包", "owner": "Codex"}, {"id": "R-004", "risk": "项目仍有多处未提交/未归属改动,发布边界可能不清", "probability": "中", "impact": "中", "status": "观察中", "mitigation": "当前 `git status --short` 有 16 项变更/未跟踪记录;发布前整理变更清单,确认哪些进入本轮交付,哪些留作后续", "owner": "待确认"}, {"id": "R-005", "risk": "讲解内容改为资源包 POI 派生后,若未补正式文案/音频和人工验收,可能造成讲解体验与验收口径不一致", "probability": "中", "impact": "高", "status": "开放", "mitigation": "保留“暂无音频”显性状态;将资源包 POI 派生内容作为过渡方案复核;进入发布前补人工浏览器/真实设备验收和正式内容接入计划", "owner": "待确认"}]}</script>
<script>
(() => {