跳转至

P0.U-right-inspector-framework · ADR-12 Phase 1 #4 · RightInspector 6 段通用容器

Worker:TBD(用户分配)· 部门:前端 (frontend_vue3) 预计:0.5d · 优先级:P1 · 状态:dispatched 隔离:文件隔离(stages/xitest/inspector/ + drawers/right/Inspector/ 全新)

🔍 触发与解锁链

  • 触发:P0.U-meter-types-v3 (9fc31c4) zombie 后 Phase 1 #4 解锁(2026-05-29 15:36)· 工作量最小(0.5d)适合并行起手
  • 前置就位:MeasurementNode 7 子能力 types(9fc31c4)· §2.7 Inspector 6 段通用结构 ADR 锁定
  • 本任务 zombie 后解锁:Phase 2 #5/#6/#7 fork(每类 MeasurementNode 实施时填实 Inspector 子段控件 · 复用本容器)

任务定义(基于 ADR-AIOS-12 §2.7 + §5.1 Phase 1 #4)

按 ADR-12 §2.7 Right Dock Inspector 6 段通用结构(Source/Measurement/Display/Validation/Automation/Storage),落地 RightInspector 容器组件 + 6 段子组件 stub + 路由系统(按 selectedWidget.measurementNode.type 路由)。仅 stages/xitest/inspector/ + drawers/right/Inspector/ 全新文件 · 业务行为待 Phase 2 填实

完整 prompt(直接复制粘贴 worker 终端)

[U-thread] P0.U-right-inspector-framework
[部门] 前端 (frontend_vue3) · 推荐 skill: vuejs-typescript-best-practices
[Worker CWD] d:/work/25_claude/workspace/AlgoDepartment/04_development/(由用户分配的 worker / worktree 决定)
[Occupies] P0.K-shared-types(read) · P4.K3-right-dock(写 · drawers/right/Inspector/*)
[隔离] 文件隔离 · 仅写 frontend_vue3/src/stages/xitest/inspector/* + drawers/right/Inspector/* 全新文件
       严禁动 stages/xitest/modes/*(P4.U3 ceecccf 实装)+ dashboard/*(#2 写权)+ registry/*(#3 写权)
[优先级] P1 · 0.5d · ADR-12 Phase 1 #4 · 工作量最小 · 与 #2/#3 并行起手
[ADR] docs/08-implementation/40-aios/ADR/ADR-AIOS-12-xitest-realtime-arch.md(必读 §2.7 Inspector 6 段)
[业务行为契约引用] ADR-AIOS-12 §3.1-§3.7(本任务实施容器层 · Inspector 子段控件填实留 Phase 2)
[参考文档](绝对路径)
  - d:/work/25_claude/workspace/AlgoDepartment/06_docs/site-build/docs/08-implementation/40-aios/ADR/ADR-AIOS-12-xitest-realtime-arch.md(§2.7 必读)
  - d:/work/25_claude/workspace/AlgoDepartment/04_development/frontend_vue3/src/types/measurement-node.ts(MeasurementNode 7 子能力 · 9fc31c4)
  - d:/work/25_claude/workspace/AlgoDepartment/06_docs/site-build/docs/08-implementation/40-aios/prompts/done/P0.U-meter-types-v3--9fc31c4.md(同部门标本)

【背景】
ADR-12 §2.7 Right Dock Inspector 6 段通用结构(Source/Measurement/Display/Validation/Automation/Storage)· 每 widget 选中后 · Inspector 显示 6 段 · 子段控件按 measurementNode.type 路由(FFT Inspector / Transfer Inspector / Recorder Inspector …)。本任务实施容器 + 路由 stub · 业务控件填实留 Phase 2。

【执行步骤】

Step 1 · read 已有基础(只读)
- read frontend_vue3/src/types/measurement-node.ts(7 子能力字段:input/processing/measurement/validation/visualization/automation/storage)
- read ADR-12 §2.7(Inspector 6 段示意图 + 复用机制)

Step 2 · 新建 stages/xitest/inspector/RightInspector.vue(主容器)
- props: selectedWidget?: DashboardWidget
- template: 6 段折叠面板(Source/Measurement/Display/Validation/Automation/Storage)
- 每段内嵌 <component :is="getInspectorSubComponent(段名, type)" /> 路由
- 当 selectedWidget = null · 显示 "请选择一个 widget"

Step 3 · 新建 6 段子组件 stub(stages/xitest/inspector/sections/)
- SourceSection.vue · MeasurementSection.vue · DisplaySection.vue · ValidationSection.vue · AutomationSection.vue · StorageSection.vue
- 每段 stub 显示 measurementNode.{字段} 占位 · Phase 2 填实业务控件
- 用 defineAsyncComponent 加载子段(支持后续扩展不同 type 的 Inspector)

Step 4 · 实施 inspectorRouter
- 新建 stages/xitest/inspector/inspectorRouter.ts
- export function getInspectorSubComponent(section: string, type: string) → 返回对应 Vue 组件
- 默认返回 stub · Phase 2 #5 实施 RMS Inspector 时注册具体组件

Step 5 · 在 drawers/right/Inspector/ 挂载
- 新建 drawers/right/Inspector/InspectorDrawer.vue
- 包装 RightInspector + 接收 widget store 的 selectedWidget(由 xiTestWorkspaceStore 提供)
- 集成进 P4 stage RightDock 现有结构(read-only 接入 · 不破坏现有 drawer)

Step 6 · 单元测试
- 新增 right-inspector.test.ts(渲染 + 6 段折叠 + selectedWidget 切换 · 6+ 用例)
- 新增 inspector-router.test.ts(路由 stub 默认 + 注册替换 · 4+ 用例)
- test:unit 基线 312/3 → 目标 ≥ 322(+10 用例)

Step 7 · 验收
- npm run typecheck → ✓ exit 0
- npm run build → ✓ 零错误
- npm run test:unit → ≥ 322/3
- 浏览器手动测试:选中一个 widget(待 #2/#3 zombie 联调)→ RightDock 显示 6 段 Inspector · 默认 stub 占位

【验收】

- typecheck/build 全绿 · test:unit ≥ 322/3
- RightInspector + 6 段子组件 + inspectorRouter + InspectorDrawer 5 新文件
- 选 widget → 6 段显示 stub 占位 · 路由可扩展(Phase 2 注册具体 Inspector)
- 不动 modes/*(P4.U3)+ dashboard/*(#2)+ registry/*(#3)

**端到端真值** ⭐(.clinerules v1.8 §业务行为契约必填段强制要求)
- e2e 真值:浏览器打开 /xitest?mode=realtime → 选中 DashboardCanvas 一个 widget → RightDock § Inspector 显示 6 段(Source/Measurement/Display/Validation/Automation/Storage)· 每段显示对应 measurementNode 字段占位
- 自查清单:
  - [ ] 6 段全部渲染 · 折叠/展开正常
  - [ ] selectedWidget 切换时 · 6 段重新加载
  - [ ] inspectorRouter 默认返回 stub · 接受 registerInspectorSubComponent 注册
  - [ ] 不破坏现有 RightDock 其他 drawer

【commit】
- subject:`feat(P0.U-right-inspector-framework/inspector): 6-段 Inspector 容器 + router · ADR-12 Phase 1 #4`
- trailer:`[step=7/7] [pid=P0] [uid=U-right-inspector-framework] [occupies=P0.K-shared-types+P4.K3] [files=stages/xitest/inspector/*+drawers/right/Inspector/*+tests/*]`

【禁止】
1. ❌ 不动 stages/xitest/modes/*(P4.U3 实装)+ dashboard/*(#2)+ registry/*(#3)
2. ❌ 不实施具体 Inspector 控件(本任务仅 stub · 业务控件留 Phase 2 #5/#6/#7)
3. ❌ 不嵌入完整 Vue SFC 骨架(.clinerules v1.6 §prompt 内容硬约束)
4. ❌ 不绑定 CPU(worker: TBD · 用户分配)
5. ❌ 不与 #2/#3 写权重叠
6. ❌ 不验"typecheck 全绿就 commit"——必须浏览器手动测试 6 段渲染
7. ❌ 不实施 Multi-monitor schema(monitor 字段留 · UI 不动 · ADR-12 §2.5)

解锁链(本任务 zombie 后)

  • ✅ Phase 2 #5/#6/#7(每类 MeasurementNode 实施时调 registerInspectorSubComponent 注册具体 Inspector 子段)

风险评估

风险 缓解
⚠️ selectedWidget 状态来源不确定 由 xiTestWorkspaceStore 暴露 selectedWidgetId · #2 P0.U-widget-workspace-framework 实施时定
⚠️ defineAsyncComponent 性能影响 6 段子组件量小 · 异步加载是 Vue 推荐做法 · 性能影响可忽略

历史

时间 事件 hash
2026-05-29 15:36 dispatched · ADR-12 Phase 1 #4 解锁 · #1 zombie(9fc31c4)后立即派 (待 stop 时回填)