# 04-任务矩阵

版本：0.1
日期：2026-06-28

## 1. 状态定义

| 状态 | 含义 |
| --- | --- |
| Todo | 尚未开始实现。 |
| Doing | 正在执行。 |
| Blocked | 被依赖、环境或设计问题阻塞。 |
| Review | 已实现，等待复核或补证据。 |
| Done | 已实现且验收证据完整。 |

## 2. 任务总表

| 编号 | 任务 | 状态 | 依赖 | 验收标准 |
| --- | --- | --- | --- | --- |
| W2-SPEC-000 | 创建 working2 任务文档 | Done | 无 | README、功能、步骤、台账、矩阵、证据、决策、manifest 均存在。 |
| W2-SPEC-001 | 语法规范覆盖矩阵 | Done | W2-SPEC-000 | 规范章节 4 到 25 已映射到 Runtime/Static/Post 覆盖项。 |
| W2-SPEC-002 | 执行边界分类 | Done | W2-SPEC-001 | 每项语义已标明虚拟执行、静态诊断或后处理验收方式。 |
| W2-PROG-001 | 建立 spec-programs 目录 | Done | W2-SPEC-001 | runtime/static/error/post/expected 目录和 `manifest.json` 可被测试读取。 |
| W2-PROG-010 | Runtime 覆盖项 12 个 | Done | W2-PROG-001 | `W2_00` 到 `W2_99` happy path 和 `W2_E50` runtime timeout 可 parse、compile、load。 |
| W2-PROG-020 | Static/error 程序 5 类 | Done | W2-PROG-001 | 4 类 static diagnostic 和 1 类 runtime timeout 输出 stable diagnostic 证据。 |
| W2-PROG-030 | Post/import 程序 3 个 | Done | W2-PROG-001 | 三品牌输出和 roundtrip 差异可验证。 |
| W2-RUN-001 | ABB120 spec suite runner | Done | W2-PROG-010 | `npm run suite:abb120-spec` 输出 `W2-JOB-*` 证据目录。 |
| W2-RUN-010 | 编译链路证据 | Done | W2-RUN-001 | AST/IR 摘要、source map、diagnostics 产物完整。 |
| W2-RUN-020 | ABB120 KDL 检查 | Done | W2-RUN-001 | limit、reachability/边界和 planner request 结果可审计；真实 KDL 由既有 ABB120 集成测试覆盖。 |
| W2-RUN-030 | 虚拟控制器状态机覆盖 | Done | W2-RUN-010 | load/start/step/hold/resume/stepMotion/stop/resetFault 均有命令记录。 |
| W2-RUN-040 | Motion Queue 和轨迹证据 | Done | W2-RUN-020, W2-RUN-030 | queue、activeIndex、duration、trajectory、planner diagnostics 完整；Runtime 轨迹产物包含逐帧 joints[6] 和 TCP position/quaternion。 |
| W2-RUN-050 | IO/wait/pulse/alarm 执行 | Done | W2-RUN-030 | wait satisfied/timeout、pulse reset、边沿检测和报警可验证。 |
| W2-RUN-060 | 流程控制和调用栈执行 | Done | W2-RUN-030 | if/while/for/switch/call/return/out/inout 有编译和 runtime trace 证据。 |
| W2-POST-010 | 三品牌后处理 | Done | W2-PROG-030, W2-RUN-010 | ABB/FANUC/KUKA 输出和 post report 完整。 |
| W2-POST-020 | 品牌导入回读 | Done | W2-POST-010 | roundtrip diff 记录等价和不可逆项。 |
| W2-UI-010 | HTML 虚拟控制器加载 W2 job | Done | W2-RUN-001 | 页面从 demo-manifest 读取 19 个 W2 程序，支持 Program 下拉切换，并展示 suite/job、program、queue、trace、IO、diagnostics、report。 |
| W2-UI-020 | HTML 截图和交互验证 | Done | W2-UI-010 | desktop/mobile 截图、evidence.json、无横向溢出。 |
| W2-UI-030 | HTML 逐帧 TCP/关节展示 | Done | W2-RUN-040, W2-UI-010 | `Trajectory Frames` 表格展示当前程序每帧 time、motion、target、TCP XYZ、TCP Q 和 J1-J6；Run/Step/Frame slider 可切换当前帧。 |
| W2-DEPLOY-001 | 服务器演示包 manifest | Done | W2-RUN-001, W2-UI-020 | 已生成 `demo-manifest.json`，包含 release_id、job_id、19 个程序、报告、截图和文档入口，路径均为相对 URL。 |
| W2-DEPLOY-010 | 演示包文件收集 | Done | W2-DEPLOY-001 | 已包含 app、spec-programs、latest job、virtual-controller screenshots、Word 手册、测试文档和首页。 |
| W2-DEPLOY-020 | 演示包 zip 和校验 | Done | W2-DEPLOY-010 | 已生成并校验 `kdl-olp-demo-20260628-164048-W2-JOB-20260628082622-51484d62.zip`，解压后 19 个 `.grl`、`report.json`、逐帧轨迹、截图、文档均存在。 |
| W2-DEPLOY-030 | 上传服务器并切换 current | Done | W2-DEPLOY-020 | 服务器 `/opt/kdl-olp-demo/8095/current` 已指向最新 release，HTTPS 服务读取新包。 |
| W2-DEPLOY-040 | HTTPS 远程页面验证 | Done | W2-DEPLOY-030 | `https://82.156.24.101:8095/`、`demo-manifest.json`、`virtual-controller.html`、`report.json`、截图均返回 200。 |
| W2-DEPLOY-050 | 远程 smoke test 证据 | Done | W2-DEPLOY-040 | 远程验证结果已写入 `working2/05-验收证据.md`，`program_count=19` 且 `fail=0`。 |
| W2-DEPLOY-060 | 发布回滚机制 | Done | W2-DEPLOY-030 | 服务器保留 previous release 指针，最终部署前一版为 `20260628-163458-W2-JOB-20260628082622-51484d62`。 |
| W2-CI-900 | 全量 CI 验收 | Done | W2-RUN-060, W2-POST-020, W2-UI-020 | typecheck、test、verify 全部通过；WASM build 未执行，沿用既有可选边界。 |

## 3. Runtime 程序子任务

| 子任务 | 程序 | 覆盖章节 | 状态 | 验收 |
| --- | --- | --- | --- | --- |
| W2-PROG-010.1 | `W2_00_MinimalModule.grl` | 4、5、6、9、10、23 | Done | 最小 movej 可执行。 |
| W2-PROG-010.2 | `W2_10_DataTargetToolFrame.grl` | 6、8、9 | Done | tool/frame/target 编译为 IR。 |
| W2-PROG-010.3 | `W2_20_ExpressionMath.grl` | 7 | Done | 表达式折叠结果进入 speed/zone/pose/wait。 |
| W2-PROG-010.4 | `W2_30_MotionAllTypes.grl` | 10 | Done | movej/movel/movec 和 set_* 执行。 |
| W2-PROG-010.5 | `W2_40_PathEvents.grl` | 11 | Done | before/after/at distance event 进入 trace。 |
| W2-PROG-010.6 | `W2_50_OperationProcess.grl` | 12 | Done | operation 展开为 start/path/end。 |
| W2-PROG-010.7 | `W2_60_IOWaitPulse.grl` | 13 | Done | IO、wait、pulse、边沿检测执行。 |
| W2-PROG-010.8 | `W2_70_ControlFlow.grl` | 14 | Done | 分支、循环、switch 状态正确。 |
| W2-PROG-010.9 | `W2_80_ProcFuncCall.grl` | 15 | Done | 参数方向、call stack、return 正确。 |
| W2-PROG-010.10 | `W2_90_ExceptionAlarm.grl` | 16 | Done | alarm/raise/try/catch/finally trace 正确；trap/task 为 P1 warning。 |
| W2-PROG-010.11 | `W2_99_FullSpecExample.grl` | 24 | Done | 完整示例 path/operation/proc/run_operation 可执行并输出 queue 证据。 |

## 4. Static/Post 子任务

| 子任务 | 程序 | 层级 | 状态 | 验收 |
| --- | --- | --- | --- | --- |
| W2-PROG-020.1 | `W2_E10_ExpressionDiagnostics.grl` | Static | Done | 表达式 diagnostic 覆盖。 |
| W2-PROG-020.2 | `W2_E20_SemanticDiagnostics.grl` | Static | Done | 语义检查 diagnostic 覆盖。 |
| W2-PROG-020.3 | `W2_E30_MotionDiagnostics.grl` | Static/KDL | Done | 限位、不可达、空 path 诊断稳定。 |
| W2-PROG-020.4 | `W2_E40_ControlFlowDiagnostics.grl` | Static | Done | 非法控制流诊断稳定。 |
| W2-PROG-020.5 | `W2_E50_RuntimeTimeout.grl` | Runtime error | Done | wait timeout 和 on_timeout 证据完整。 |
| W2-PROG-030.1 | `W2_P10_BrandHints.grl` | Post | Done | post_hint 进入 report；`@brand.*` 为后续 parser 扩展边界。 |
| W2-PROG-030.2 | `W2_P20_CrossBrandMotion.grl` | Post | Done | 三品牌 motion/IO/wait 输出完整。 |
| W2-PROG-030.3 | `W2_P30_Roundtrip.grl` | Post | Done | 导入回读结构等价或 diff 明确。 |

## 5. 服务器演示子任务

| 子任务 | 内容 | 状态 | 验收 |
| --- | --- | --- | --- |
| W2-DEPLOY-001.1 | 定义 `demo-manifest.json` schema | Done | schema 能表达 release、suite、job、program、report、screenshot、doc。 |
| W2-DEPLOY-001.2 | 生成首页 `index.html` | Done | 首页可跳转虚拟控制器、报告、程序清单、截图和文档。 |
| W2-DEPLOY-010.1 | 收集 19 个 GRL 程序 | Done | zip 内 `spec-programs` 与 manifest 数量一致。 |
| W2-DEPLOY-010.2 | 收集最新 W2 job | Done | zip 内存在 `job.json`、`report.json`、`programs/<id>/*.json`。 |
| W2-DEPLOY-010.3 | 收集截图和 Word 文档 | Done | zip 内存在 2 张截图和 2 份 Word 文档。 |
| W2-DEPLOY-040.1 | 浏览器人工验证 | Done | 远程首页、虚拟控制器入口、报告、截图和程序清单均可打开。 |
| W2-DEPLOY-050.1 | curl 自动 smoke test | Done | 关键 URL 返回 200，report fail=0。 |
| W2-DEPLOY-050.2 | 逐帧轨迹远程抽查 | Done | `W2_30_MotionAllTypes`、`W2_60_IOWaitPulse`、`W2_99_FullSpecExample` 的远程 `trajectory.json` 均返回 frames、joints 和 TCP。 |
