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>
This commit is contained in:
AirPlan
2026-06-12 15:56:44 +08:00
commit 6130478c96
73 changed files with 10622 additions and 0 deletions

65
commands/ctx.md Executable file
View File

@@ -0,0 +1,65 @@
---
description: "AirPlan ctx mode - context manager: compression, token estimation, stale lock detection"
argument-hint: "[enter|compress|validate|estimate|status]"
allowed-tools: "[Read, Glob, Grep, Bash, Write, Edit]"
---
# /ctx
AirContext 管理上下文压缩、Token 估算、陈旧锁检测。三级降级压缩策略:重试 → 换模型 → 截断。
## 硬规则
1. **压缩质量校验** — 压缩后必须调用 `--sub validate` 验证关键信息ADR 引用、TODO、文件路径保留率 ≥70%
2. **压缩前备份** — 每次压缩自动备份原文件为 `.bak`
3. **陈旧锁清理** — 检测到锁持有进程已死则自动清理
## 三级降级压缩
1. **RETRY** — 重新压缩(换 prompt
2. **FALLBACK_MODEL** — 换模型压缩
3. **TRUNCATE** — 放弃压缩,保留原始上下文,通知用户
## 子命令
### enter — 初始化上下文管理器
```bash
python scripts/airplan.py --mode ctx --project . --sub enter
```
### compress — 压缩上下文
```bash
python scripts/airplan.py --mode ctx --project . --sub compress
```
读取 `AirPlan/context.md`执行三级降级压缩。emit `context.compacted` 事件。
### validate — 校验压缩质量
```bash
python scripts/airplan.py --mode ctx --project . --sub validate
```
检查压缩是否保留关键模式文件路径、ADR-XXXX、TODO/FIXME、INV-X。返回 `{validation_ok, level, tokens}`
### estimate — Token 估算
```bash
python scripts/airplan.py --mode ctx --project . --sub estimate
```
按内容类型(中文/英文/代码/Markdown分比率估算 token 数。
### status — 查看状态
```bash
python scripts/airplan.py --mode ctx --project . --sub status
```
## 集成路径
**Eng 压缩检查**:每轮 `monitor_engine()` 后可调 `--sub validate` 检查上下文质量。
**Do Worker 压缩**:长任务 Worker 可在执行前调 `--sub compress` 精简上下文。