用途:调试并修复 XR Blocks 应用。当应用无法构建或运行、UI/交互/感知/渲染行为不正确,或模拟器与真机表现不一致时使用。
主要能力:按“红→原因→绿”的单一线索推进,先冻结失败契约,再捕获首个因果信号,证明单一原因,修复当前接缝,最后扩大验证并交接。
使用方式:
- 冻结失败契约:记录入口、启动命令与 URL、目标形态、预期结果、观察结果、首个已知失败,以及用户要求的是诊断还是修复;对现有工作树做快照,把无关改动视为用户所有。选择一个可观察检查项(构建错误、导入被拒、未捕获异常、首帧缺失、事件字段错误、状态错误、teardown 后残留资源、模拟器/设备不一致)。
- 捕获首个因果信号:运行最窄的命令或交互到达失败点,记录最早的相关错误、状态转换或错误值,与后续级联错误分开;对间歇性问题先缩减为可重复输入序列。只读检查配置与源码,确认解析到的 xrblocks 包版本、应用入口、依赖图、形态、权限及失败路径实际使用的可选特性状态。
- 在当前边界证明单一原因:阅读 references/diagnostic-branches.md,只加载与捕获信号匹配的分支;对照已安装声明或包导出验证可疑公共符号。在 XR Blocks 仓库中,以 src/xrblocks.ts 或 addon 的公开入口作为导入权威,对照最近的手册与可执行模板或示例。追踪失败值经过生产者、所有者、消费者、生命周期调用与清理路径,提出可证伪假设“X 导致 Y,因为 Z”,用只读探针或最小临时断言区分最强替代假设。注意:文档构建成功、源文件、被忽略的生成文件或旧示例都不能证明应用导入是公开且当前的。
- 修复当前接缝:仅诊断请求在变更前报告已证明原因并停止;修复请求则改动移除原因的最小当前所有者,保留应用的交付模型,用当前接口直接替换过时模式,保持单一引擎生命周期、依赖图、交互解析器、UI 树与状态所有者。添加或调整最小证明,使其在未修复时失败;通过一个幂等清理所有者释放新增监听器、定时器、媒体轨道、网络会话、GPU 对象或异步操作。
- 扩大验证并交接:重跑精确的绿色检查,再跑最小相关构建或类型检查、启动路径、主要交互与 teardown 路径;当传感器、权限、摄像头、深度或输入保真度不同时,分别检查模拟器与真机行为;构建成功后再次验证根包与 addon 导入。返回原始症状、已证明原因、变更所有者、红绿证据、精确复现步骤、已完成检查,以及剩余仅设备或依赖服务的检查。
限制:资料未提供具体命令、代码示例、收费或平台信息;诊断与修复需区分处理,不得绕过失败路径或隐藏错误来使检查变绿。