docs: record mdtodo launch and otel target lessons

This commit is contained in:
Codex
2026-06-30 14:30:27 +00:00
parent 6f73690eb5
commit abbda09aa1
4 changed files with 8 additions and 0 deletions
+1
View File
@@ -21,6 +21,7 @@ bun scripts/cli.ts platform-infra observability search --service <service> --lim
- 可见性问题优先修复;状态、耗时、失败原因、trace、命令结果或关键证据不可见时,先补 CLI/日志/状态输出。
- OTel 查询默认低噪声摘要;完整 span/context 显式 `--full`/`--raw`
- OTel 查询的 `--target` 必须匹配 trace 所属运行面 node/laneJD01 运行面产生的 trace 用 `--target JD01` 查询,不能拿其他节点查询失败当作 trace 缺失结论。
- 不把 trace 缺口误判成业务成功;缺少 span 或窗口不完整时,先说明观测边界。
- `diagnose-code-agent``observabilityGap` / `Service trace coverage` 是跨服务追穿完整性证据:如果 business trace 只有 `hwlab-cloud-api`,但缺少 `agentrun-manager``agentrun-runner`,应按观测缺口记录并继续用 runId/commandId/sessionId drill-down,不要把缺失 span 当作服务未参与的业务结论。
- `platform-infra observability status` 默认应保持短表;需要完整 Kubernetes/Tempo payload 时才显式使用 `--full``--raw`
@@ -42,6 +42,8 @@ bun scripts/cli.ts platform-infra observability trace \
默认输出不得展开完整 Tempo JSON;需要原始响应时才用 `--raw`
`--target` 必须和产生 trace 的运行面一致。按 HWLAB node/lane 复测得到的 `x-hwlab-otel-trace-id` 应优先使用同一 node 查询,例如 JD01/v0.3 的 Workbench launch 或 `/v1/agent/chat` 响应头用 `--target JD01`。如果拿其他 target 查询返回 `traceFound=-``parseOk=false` 或平台状态超时,只能说明 target/运行面不匹配或该 target observability 不可用,不能据此判断原 trace 不存在。
当只有错误文案而没有 OTel trace id 时,先用 `search` 从 Tempo 最近 trace 中反查候选,再进入 `trace`
```bash
+1
View File
@@ -35,6 +35,7 @@ description: UniDesk Web 开发与浏览器验证技能。用户处理 UniDesk/H
- Issue closeout 引用 observer id、command id、stateDir/report SHA、screenshot SHA 和关键字段摘要;不要粘贴截图二进制、完整 JSON、Secret、cookie 或无界日志。
- 取证 drill-down 先用 `observe collect` / `observe analyze` 的 bounded view;需要截图路径、SHA、traceId 或 command detail 时优先查 `control.jsonl`、analysis 摘要或专用 artifact view,避免直接 `rg samples.jsonl`,因为页面快照是超长单行 JSON,容易触发输出截断和噪声。
- Project Management/MDTODO closeout 必须区分 `control` 页和被动 `observer` 页:显式 `observe command` 的 command result、control URL 和对应截图是用户动作证据;observer 周期刷新或 stop 后根路由空态只能作为对照信号,不能覆盖 command result。涉及报告的验收要同时记录 `reportPreviewVisible``reportFullscreenVisible`、报告 deep link 和截图 SHA。
- MDTODO → Workbench launch 验收必须引用 `launchWorkbenchFromMdtodo` 的 command result,确认文件/任务选择、Workbench session、launch/chat 状态和 OTel trace header;不要只凭页面最终停在 Workbench URL 判断通过。
- `observe analyze` 的 archive/history findings 可能包含旧样本或旧规则误判;关闭用户入口问题前同时核对最新 sample 字段、DOM 几何和截图。若 top-level findings、latest sample 和 archive red 冲突,说明冲突并补工具反馈 issue,不要只凭 archive red 或单张截图下结论。
## 高频工作流
@@ -139,6 +139,10 @@ bun scripts/cli.ts web-probe observe collect webobs-xxxx --view project-mdtodo-s
bun scripts/cli.ts web-probe observe analyze webobs-xxxx
```
`launchWorkbenchFromMdtodo` 是 Project Management 到 Workbench 的正式用户动作复现入口。传入 `--filename` / `--file-ref``--task` / `--task-ref` 时,runner 必须通过公开 source/file/task 控件完成选择;若 control 页停在 `/projects/mdtodo` 根路由,应先选择默认 source,再选择文件和任务。`source` 是 observe command provenance 字段,不能当成 MDTODO source id;需要指定 source 时只能使用显式 `--source-id`。显式文件或任务目标选不中时,命令必须失败并输出结构化 before/after project snapshot、目标摘要和选项样本,禁止静默选第一项或退回任意任务。
MDTODO → Workbench launch closeout 必须引用 command result 中的 `launchStatus``sessionId``workbenchUrl``chatStatus`、业务 trace、`otelTraceId` / `chatOtelTraceId`、文件/任务选择摘要和 control URL。`project-mdtodo-summary``LAUNCH ok/fail``OTEL` 计数是第一层汇总;若 analyzer 的 archive red 与当前 command result 冲突,以当前 command result、control 页面截图和最新 project summary 为准,并说明 archive red 来自旧样本或旧规则。
MDTODO 或 Project Management 的 Web 重写/布局 closeout 不能只引用组件 diff、PipelineRun 成功或一张默认截图。最小证据应按 SPEC 覆盖:默认深链任务正文可见、Source/File 下拉显示 direct MDTODO 文件名、Rxx 任务树为 outline 辅助视图、右侧报告栏可打开且不挤爆主工作区、报告全屏可读并可关闭。涉及报告渲染时,先用有 `reportLinkCount > 0` 的任务执行 `openMdtodoReportPreview`,再执行 `toggleMdtodoReportFullscreen`,并在 closeout 中记录 command id、`reportPreviewVisible``reportFullscreenVisible`、报告 deep link、截图 SHA 和 analyze report SHA。
`observe` 的 Project Management 采样可能同时包含 control 页和 observer 页。control 页是显式用户动作所在页面;observer 页用于被动对照和周期刷新。若 `project-mdtodo-summary``observe analyze` 的最新汇总被 observer 周期刷新、stop 命令或根路由样本带成 `SRC=0/FILES=0/TASKS=0`,不得直接推翻已完成 command result 和 control 页面截图;必须按 `pageRole`、command JSON、control URL、screenshot path/SHA 和相邻 samples 解释。反过来,若 control command 失败、command backlog 未清空或截图 URL 不在目标 source/file/task/report 深链上,也不能用 observer 的健康样本替代用户入口证据。