feat: P0-11 AirArc流水线交接强制 — denied_tools扩展 + 流水线交接指令

- YAML frontmatter 新增 denied-tools: [Write, Edit, Bash, NotebookEdit, Task, Skill, Agent]
- 新增 Hard Rule 4: Pipeline handoff — 规划产出后立即停止,禁止调用执行类工具
- 新增"流水线交接强制"章节:生成execution-plan.json后工作立即结束,调度由AirEng接管
- 设计文档同步:P0-11+T-1.24

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
AirPlan
2026-06-15 15:06:52 +08:00
parent be9b77e8f6
commit 52af11c66c
2 changed files with 37 additions and 1 deletions

View File

@@ -33,6 +33,7 @@ V2 的核心命题:**V1 证明了制品驱动 + 上下文隔离 + 波次并行
| P0-8 | AirDo 不调用专家插件Dbg/XDB/NDB/SDB/Rvr | AirDo SKILL.md / `worker.py` `finish_worker()` | 执行器遇到问题或验收时几乎不触发任何专家插件:不调 AirDbg 调试、不调 AirXDB 截图、不调 AirNDB 抓包、不调 AirSDB 静态分析、不调 AirRvr 审查,直接报 blocked 或 false-done | 自动路由为建议性而非强制Worker 倾向于跳过所有专家插件直接返回 |
| P0-9 | 安装器脚本路径错误 | 安装脚本 / 插件注册逻辑 | 安装后插件无法识别AI 修复后可识别但脚本执行失败,路径不正确 | 安装器未正确解析插件脚本的绝对路径,注册的命令路径与实际文件位置不匹配 |
| P0-10 | AirEng 偏离调度亲自写代码 | AirEng SKILL.md / 命令文件 | 调度引擎频繁偏离调度职责自己编写代码,破坏隔离架构。极端情况(子代理循环阻塞需接手合并)允许少量修改,但日常调度中不应发生 | SKILL.md 未明确区分"仅调度"与"极端接管"的边界,无工具限制约束 |
| P0-11 | AirArc 跳过 AirEng 直接执行 | AirArc SKILL.md / 命令文件 | 架构器生成规划后不交给 Eng 调度,直接跳到 Do 执行任务,破坏 Arc→Eng→Do 流水线 | SKILL.md 未强制"规划产出后必须交给 Eng"Arc 的 allowed_tools 未限制执行类工具 |
#### P1 — 限制可靠性与可维护性
@@ -117,6 +118,7 @@ V2 的核心命题:**V1 证明了制品驱动 + 上下文隔离 + 波次并行
| AirArc 跳过需求探讨直接生成规划 | 每次启动 | P1-16 |
| AirDbg 不取证就猜测修复污染代码 | 频繁 | P1-17 |
| AirEng 偏离调度亲自写代码 | 频繁 | P0-10 |
| AirArc 跳过 AirEng 直接执行 | 频繁 | P0-11 |
| 项目代码缺乏标准化日志体系 | 所有项目 | P1-18 |
| 边界无测试 + 终审缺高风险检查 | 所有项目 | P1-19 |
| 界面设计缺乏专业 Skill 支撑 | UI 任务 | P1-20 |
@@ -467,11 +469,28 @@ V1 中 AirArc 频繁被 Agent 内置 plan mode 劫持,导致架构器偏离规
```json
{
"allowed_tools": ["Read", "Glob", "Grep"],
"denied_tools": ["Write", "Edit", "Bash", "NotebookEdit"],
"denied_tools": ["Write", "Edit", "Bash", "NotebookEdit", "Task", "Skill", "Agent"],
"deny_plan_mode": true
}
```
**流水线交接强制P0-11**
Arc 生成 `execution-plan.json` 后,必须交给 Eng 调度,禁止直接调用 AirDo 或自行执行任务。
```markdown
# AirArc SKILL.md V2 流水线交接指令
## 规划产出后的唯一动作
- 生成 execution-plan.json 后,你的工作**立即结束**
- **禁止**调用 AirDo、Skill、Agent 或任何执行类工具
- **禁止**自行派发 Worker 或执行任务
- 调度由 AirEng 接管,你不参与执行
## 违规判定
如果你在生成 execution-plan.json 后执行了任何非读取类操作,视为违规。
```
#### 3.2.7 AirEng 自主决策与中文锁定
V1 中 AirEng 反复用英文询问用户确认中断调度流程。V2 在 SKILL.md 中强制自主决策和中文输出:
@@ -1999,6 +2018,7 @@ air_runtime/
| T-1.21 | AirArc 任务描述弱模型优化(歧义词检测 + 保留约束 + 自检) | P1-24 | 1d |
| T-1.22 | Dispatch → Worker 桥接spawn_workers + 指令操作化 + 工具白名单对齐) | P1-22, P1-23 | 1d |
| T-1.23 | Merge → TaskGraph 状态同步merge 后更新 task-graph.json 节点 status | P1-25 | 0.5d |
| T-1.24 | AirArc 流水线交接强制denied_tools 扩展 + SKILL.md 交接指令) | P0-11 | 0.5d |
**验证标准**所有现有项目DecodePlayer 系列)的 state.json 在 V2 引擎下不损坏AirXDB 假阳性率降至 0。
@@ -2149,6 +2169,7 @@ V2 应追踪以下 KPI 以验证改进效果:
| AGENTS.md 大小 | 持续膨胀 | 自动去重/压缩 |
| 平均任务合并耗时 | 未量化 | 量化基线 + 优化 |
| AirArc plan 模式劫持 | 频繁发生 | 0 次 |
| AirArc 跳过 Eng 直接执行 | 频繁发生 | 0 次denied_tools 硬阻断 + 交接指令) |
| AirArc 跳过需求探讨直接生成规划 | 每次启动 | 0 次(三阶段门控强制) |
| AirEng 非中文输出 | 频繁发生 | 0 次 |
| AirEng 轮询遗忘 | 频繁发生 | 0 次 |

View File

@@ -2,6 +2,7 @@
description: "AirPlan arc - architecture planner, READ-ONLY, never writes code"
argument-hint: "[enter|status|parallel-review|incremental-replan]"
allowed-tools: "[Read, Glob, Grep]"
denied-tools: "[Write, Edit, Bash, NotebookEdit, Task, Skill, Agent]"
deny-plan-mode: true
---
@@ -17,6 +18,10 @@ AirArc is a pure architecture planner. It analyzes dependencies, write-set confl
- Phase 1 (discussing): Discuss requirements with user, clarify ambiguities, analyze codebase structure, propose architecture alternatives. **Forbidden to write execution-plan.json.**
- Phase 2 (proposing): Present recommended architecture (modules, dependencies, tech choices). Wait for user confirmation: "Confirm this architecture before I generate the plan." User objections return to Phase 1. **Forbidden to write execution-plan.json.**
- Phase 3 (confirmed): Only after user explicit confirmation, generate execution-plan.json and task-graph.json.
4. **Pipeline handoff** (P0-11) — after generating execution-plan.json, your work STOPS immediately.
NEVER call AirDo, Skill, Agent, or any execution tool.
NEVER dispatch Workers or execute tasks yourself.
Scheduling is AirEng's job. You do not participate in execution.
## Sub-commands
@@ -86,6 +91,16 @@ Do Worker 可能是廉价模型/本地小模型,字面理解任务无推断能
生成任务后执行 `validate_task_description()` 自检。发现歧义词时自动拆分任务或补充保留约束,不将歧义任务传递给 Eng。
## 流水线交接强制P0-11
生成 execution-plan.json 后,你的工作**立即结束**。
- **禁止**调用 AirDo、Skill、Agent 或任何执行类工具
- **禁止**自行派发 Worker 或执行任务
- 调度由 AirEng 接管,你不参与执行
### 违规判定
如果你在生成 execution-plan.json 后执行了任何非读取类操作,视为违规。
## Logging Standard
When planning C++ projects, the first task MUST be "integrate spdlog" if not already present. All generated code must use spdlog, not std::cout/qDebug/printf.