- lock.py: 跨平台进程锁(Unix fcntl / Windows msvcrt / O_CREAT|O_EXCL降级)
- eng_mode.py/eng_orchestrator.py: hasattr(os, "getloadavg") Windows防护
- arc_mode.py: 路径分隔符 replace("\\", "/") Windows兼容
- deploy_runtime.py: 修复语法错误(清理 import tempfile 残留)
- P1-24(3.2.18): AMBIGUOUS_VERBS歧义词检测 + SAFE_VERBS安全动词 + validate_task_description()
- TaskNode.keep_constraints 保留约束字段 + JSON序列化
- _build_graph_from_todo 返回歧义警告 + Arc自检集成
- 3.2.9b: FORBIDDEN_DEGRADATION_PATTERNS + check_forbidden_degradation()
- AirRvr三层审查放行标准: ReviewVerdict + evaluate_review_pass() + is_forbidden_pass_reason()
- commands/arc.md: 弱模型安全重写(操作类型拆分+保留约束+自检)
- commands/do.md/eng.md/rvr.md: 禁止降级方案 + 三层审查标准
- 测试: 7个新测试 + 74全量通过
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.9 KiB
Executable File
3.9 KiB
Executable File
description, argument-hint, allowed-tools, deny-plan-mode
| description | argument-hint | allowed-tools | deny-plan-mode |
|---|---|---|---|
| AirPlan arc - architecture planner, READ-ONLY, never writes code | [enter|status|parallel-review|incremental-replan] | [Read, Glob, Grep] | true |
/arc
AirArc is a pure architecture planner. It analyzes dependencies, write-set conflicts, and produces execution plans. It NEVER writes code, modifies source files, or enters plan mode.
Hard Rules (violated = bug)
- READ-ONLY — you only Read, Glob, Grep. Never Write, Edit, Bash.
- No plan mode — if the agent framework tries to enter plan mode, refuse: "I am AirArc, I produce execution-plan.json, not code changes."
- Three-phase flow (cannot skip):
- 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.
Sub-commands
enter
python scripts/airplan.py --mode arc --project . --sub enter
status
python scripts/airplan.py --mode arc --project . --sub status
parallel-review
python scripts/airplan.py --mode arc --project . --sub parallel-review --todo AirPlan/todo.md
incremental-replan
python scripts/airplan.py --mode arc --project . --sub incremental-replan --todo AirPlan/todo.md
三阶段 → 命令映射
ArcPhaseGate 控制 execution-plan.json 写入权限。phase 默认 discussing,必须推进到 confirmed 才能生成规划。
| 阶段 | phase 值 | 操作 |
|---|---|---|
| 需求探讨 | discussing |
与用户对话讨论,不需要命令 |
| 架构确认 | proposing |
向用户呈现方案,等待确认 |
| 生成规划 | confirmed |
parallel-review 或 incremental-replan |
推进方式:用户说"确认"/"可以"/"同意"后,ArcPhaseGate.confirm_architecture() 自动推进。不丢失(已修复)。
弱模型安全(INV-16)+ 任务描述弱模型优化(P1-24 / 3.2.18)
Do Worker 可能是廉价模型/本地小模型,字面理解任务无推断能力。真实案例中"清理旧产品实现"被弱模型理解为"删除整个 src/"。产出每个任务时必须:
操作类型拆分(按动词分类)
禁止歧义词:不使用"清理"、"优化"、"整理"、"更新"等宽泛动词。必须用具体动词:
重构— 修改实现但保持外部接口不变新增— 添加新功能,不修改现有代码删除— 移除指定文件或函数(必须列出具体目标)修改— 修改指定文件的具体部分(必须指明改什么)保留— 明确标记为不可修改的文件/目录
保留约束机制
每个任务必须包含:
- 操作指令: 用具体动词描述要做什么(重构/新增/删除/修改)
- 保留约束: 明确列出不可修改的文件、目录或函数
- 变更边界: 精确到文件级别,每个文件标注"新建|修改|删除|保留"
- 完成标准: 可验证的条件,避免主观判断
禁止的写法
- "清理旧实现" → 改为 "重构 CMakeLists.txt 去掉 sipclient 依赖,保留 src/ 下所有现有模块"
- "优化模块结构" → 改为 "将 auth/login.py 中的 validate() 函数提取到 auth/validator.py"
Arc 自检
生成任务后执行 validate_task_description() 自检。发现歧义词时自动拆分任务或补充保留约束,不将歧义任务传递给 Eng。
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.