# Web Probe

- 使用 `web-probe` 采集真实用户入口证据：
  - 交互流程使用 `observe start`、`observe command`、`observe collect` 和 `observe analyze`；
  - `run` 或 `script` 只用于有界探测和 smoke；
  - 收尾证据引用 observer id、command id、artifact/report SHA、screenshot SHA 和关键有界字段。
- Workbench 与 Performance 调查规则：
  - 先使用专用 collect/analyze view；
  - 不要先检索原始 JSONL artifact。
- Workbench 隔离 Kafka debug 重放规则：
  - 使用 `observe command --type validateWorkbenchKafkaDebugReplay`；
  - 命令复用 observer 的 semantic origin 和当前 session；
  - topic、group prefix、完成超时、产品/调试 SSE 路径和请求静默窗口来自 owning YAML；
  - 新 UI 同时报告分层重放计数、typed phase/code、source-authority Trace 行和原始 HWLAB Event 有界计数；
  - 原始事件标签必须复用同页产品 EventSource，切换标签不得新增产品 SSE 请求；
  - 旧 UI 缺少新 DOM 合同时报告 `legacy-ui`，不伪造新合同；
  - 禁止通过 URL/IP 或一次性脚本替代该命令。
- Workbench 产品 Trace 可读性规则：
  - 使用 `observe command --type validateWorkbenchTraceReadability`；
  - 功能开关与全部等待/轮询/稳定窗口由独立 owning YAML 提供；
  - 命令只读取 `#conversation-list` 内的当前产品卡片，排除隔离 debug panel；
  - 只接受新运行卡片，命中后按 traceId 固定定位，不回退旧终态卡片；
  - 报告必须区分命令前默认展开状态和命令驱动展开状态；
  - 默认运行中可读、source-authority 行和终态保留必须分别成立；
  - 窗口化 Trace 以 event count 和 source sequence 边界前进替代可见行身份交集；
  - 失败仍保留有界 DOM 诊断、report SHA 和 screenshot SHA。
