Files
AirPlan-V2/commands/do.md
AirPlan 6130478c96 feat: AirPlan V2 — 全专家插件强制路由 + 事件系统规范化
P0-8 扩大: do_mode.py finish_worker 全专家插件强制路由
- GUI→XDB, network→NDB, C/C++→SDB, done→Rvr, blocked/failed→Dbg
- 证据去重: 已有 xdbSessions/ndbSessions/sdbReports/rvrReviewed 则跳过

P1-GAP17: 事件 emit 规范化
- 新增 7 个事件常量 (TASK_ENTERED, TASK_FINISHED, ENGINE_ENTERED 等)
- 全部 emit 调用替换字符串字面量为常量,零残留
- 30 个事件类型常量全部定义且唯一

P1-GAP18: 事件日志原子轮转
- emit 计数器每 128 次检查轮转,避免每次 emit 读文件
- 清除未使用的 _emit_with_completion/_pending_merge_complete
- 原子轮转: tempfile+os.replace 保证不损坏

eng 极端接管: 强制调用全部专家插件 (Dbg/XDB/NDB/SDB/Rvr)
commands/do.md: 更新为全专家插件路由文档

全量测试: 69 通过, 0 失败

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 15:56:44 +08:00

132 lines
4.3 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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, 界面, 按钮, 对话框, 窗口, 菜单, 控件, 渲染, 布局