--- description: "AirPlan do mode - task executor with UI skill routing and full expert plugin routing" argument-hint: "[enter|status|finish]" allowed-tools: "[Read, Glob, Grep, Bash, Write, Edit]" --- # /do AirDo 是任务执行器。运行单个任务,强制执行全专家插件路由规则。 ## 硬规则 1. **UI Task Handling (P1-20)** — 当任务涉及 UI/前端/界面时,检测并确保 frontend-design Skill 可用。不可用时阻止执行 2. **Evidence Gate (INV-4)** — GUI 任务需截图,网络任务需抓包,代码任务需静态分析/测试 3. **全专家插件强制路由** — finish 时按任务类型和状态强制路由到对应专家插件,不可跳过 ## 子命令 ### enter — 进入 Worker ```bash python scripts/airplan.py --mode do --project . --sub enter --task-id T-001 --task-text "实现登录界面UI" ``` 参数: - `--task-id`:任务 ID(必须) - `--task-text`:任务描述文本(用于 UI 检测和路由,必须) 创建 `AirPlan/state/airdo/tasks/{task_id}/worker-state.json`。返回 `{taskId, briefPath, resultPath, workerStatePath, uiRouting}`。 ### status — 查看 Worker 状态 ```bash python scripts/airplan.py --mode do --project . --sub status ``` ### finish — 完成 Worker(含全专家插件路由决策) ```bash python scripts/airplan.py --mode do --project . --sub finish --task-id T-001 --result AirPlan/state/airdo/tasks/T-001/result.json ``` finish 执行强制路由(按优先级): | 条件 | 路由目标 | 强制 | |------|---------|------| | blocked / failed | `airdbg` | 是 | | done + 无 validations + 无 files_changed | `airdbg` | 是 | | GUI 任务(gui/ui/render/widget/dialog 等) | `airxdb` | 是 | | 网络任务(network/rtsp/http/tcp/socket 等) | `airndb` | 是 | | C/C++ 文件变更(.cpp/.h/.hpp 等) | `airsdb` | 是 | | 所有 done 任务 | `airrvr` | 是 | | 无强制路由触发 | `merge` | 否 | 返回 `routingDecisions` 列表(可能有多个路由目标,依次处理)。 ## AirDbg 路由 — 调试修复 当 finish 返回 `routingDecisions` 含 `airdbg` 时: ```bash # 1. 启动调试会话 python scripts/airplan.py --mode dbg --project . --sub start --task-id {tid} # 2. Dbg 按 7 步工作流调试(取证→定位→修复→验证) # 3. Dbg 完成后,重新 finish: python scripts/airplan.py --mode do --project . --sub finish --task-id {tid} --result AirPlan/state/airdo/tasks/{tid}/result.json ``` ## AirXDB 路由 — GUI 截图取证 当 finish 返回 `routingDecisions` 含 `airxdb` 时: ```bash python scripts/airplan.py --mode xdb --project . --prefer auto --output task-{tid}-screenshot.png ``` 截图路径写入 result.json 的 `xdbSessions` 字段后重新 finish。 ## AirNDB 路由 — 网络抓包取证 当 finish 返回 `routingDecisions` 含 `airndb` 时: ```bash python scripts/airplan.py --mode ndb --project . --sub enter # 然后 tcpdump/tshark 抓包,存入 AirPlan/state/airndb/captures/ ``` 抓包路径写入 result.json 的 `ndbSessions` 字段后重新 finish。 ## AirSDB 路由 — C/C++ 静态分析 当 finish 返回 `routingDecisions` 含 `airsdb` 时: ```bash python scripts/airplan.py --mode sdb --project . --backend cppcheck --target ./src ``` 分析报告路径写入 result.json 的 `sdbReports` 字段后重新 finish。 ## AirRvr 路由 — 需求一致性审查 当 finish 返回 `routingDecisions` 含 `airrvr` 时: ```bash python scripts/airplan.py --mode rvr --project . --task-id {tid} --sub review ``` 审查通过后重新 finish,此时 Rvr 证据已写入 validations。 ## 证据采集 — 辅助命令 **GUI 任务截图**: ```bash python scripts/airplan.py --mode xdb --project . --prefer auto --output task-{tid}-screenshot.png ``` **网络任务抓包**: ```bash python scripts/airplan.py --mode ndb --project . --sub enter ``` **代码任务静态分析**: ```bash python scripts/airplan.py --mode sdb --project . --backend cppcheck --target ./src ``` **代码任务测试**: ```bash python scripts/airplan.py --mode tst --project . --sub run --task-id {tid} --framework googletest ``` ## UI 任务检测关键词(中英文) gui, ui, render, layout, dialog, osd, overlay, visual, widget, pane, toolbar, canvas, button, window, popup, menu, drm, kms, opengl, vulkan, frontend, react, vue, angular, web, css, html, 界面, 按钮, 对话框, 窗口, 菜单, 控件, 渲染, 布局