Commit Graph

17 Commits

Author SHA1 Message Date
AirLongDian
3dcb87f941 feat: INV-16 弱模型安全任务描述 — Arc 危险词检测 + 否定约束强制
问题:Do Worker 可能是廉价模型,字面理解任务。"清理旧产品实现"+src/ = 全删。
根因:Arc 用强模型规划,没考虑 Do Worker 推理能力弱。

修复:
- SKILL.md: 新增 INV-16 — 禁止歧义词、否定约束显式化、文件范围精确化、完成标准可验证
- commands/arc.md: 新增"弱模型安全"章节,4 条硬规则
- arc_mode.py: _audit_task_safety() 代码级扫描危险词和目录级文件范围
  - 危险词: 清理/清除/删除所有/重构整个/重写全部 等
  - 目录级范围(src/)+无否定约束 → 警告
  - 警告写入 execution-plan.json 的 safetyWarnings 字段
  - parallel_review_mode 在写 plan 前自动执行

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-12 09:36:28 +08:00
AirLongDian
759922ceb9 docs: eng monitor — 用 ScheduleWakeup 替代伪代码轮询循环
Claude Code CLI 提供 ScheduleWakeup 工具,每 5 分钟唤醒 Agent 执行一轮 monitor。
后台 Worker 完成时 <task-notification> 自动推送,不需轮询。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 17:53:37 +08:00
AirLongDian
9ad232af38 docs: 全部 12 个命令文件完整化 — 消除 P0/P1 操作歧义
P0: 9 个存根命令文件从 11 行模板扩展为完整操作文档
- dbg: 7 步工作流表格 + 证据类型 + 子命令 + Dbg↔Do 集成路径
- ctx: 三级降级压缩 + 质量校验 + Token 估算 + 陈旧锁清理
- dep: SSH 部署流程 + MD5 校验 + systemd 管理
- tst: 5 种测试框架 + run 命令 + T-TEST 集成
- sec: advisory/blocking 双模式 + 文件/目录/Woker result 三种扫描
- rvr: 审查模式 + highRiskAudit + code-to-design + Eng merge 集成
- sdb: 6 种后端 + diff 模式 + Dbg 取证集成
- ndb: 网络抓包 + Dbg 取证集成
- xdb: kmsgrab/xvfb/fallback 三后端 + Dbg/Do GUI 验证集成

P1: 3 个有内容文件的歧义修复
- do: AirDbg 路由具体命令 + 证据采集(xdb/ndb/sdb/tst)命令
- arc: 三阶段→命令映射表 + phase 推进方式
- eng: monitor 轮询循环伪代码(Agent 无时钟概念,必须循环调 monitor)

全部命令统一使用 `python scripts/airplan.py` 路径(清除旧 $HOME/plugins 引用)

63 项功能测试全通过

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 15:57:12 +08:00
AirLongDian
cda601a73a fix: spawn_workers 返回 Agent 指令(非 Skill)+ run_in_background
根因:Skill 工具只加载指令到当前上下文,不会创建子 Agent。
      Agent 工具默认阻塞调用,Eng 派发后卡住无法进入 monitor。

修复:
- spawn_workers() 返回 Agent 调用参数:{description, subagent_type, prompt, run_in_background}
- run_in_background: true 确保 Eng 不被子 Worker 阻塞
- commands/eng.md 明确标注 Agent 工具 + run_in_background

派发模式:Eng → Agent(run_in_background:true) × N → monitor 轮询 → merge

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 15:24:30 +08:00
AirLongDian
f3f991de2a fix: spawn_workers skill 名称修正 — airplan → airplan-v2:do
skill 目录名是 airplan-v2,不是 airplan。Claude Code 按目录名注册。
正确的 Skill 调用格式为 Skill("airplan-v2:do")。

同步更新:
- eng_mode.py spawn_workers() 返回值
- commands/eng.md dispatch 操作步骤
- test_t_121_122.py 测试断言
- 设计文档 3.2.11b spawn_workers 伪代码

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 15:04:13 +08:00
AirLongDian
dd4aa6b345 feat: T-1.21 + T-1.22 + P1-23 — 打通 dispatch→Worker→merge 全链路
T-1.21 (P1-22): Dispatch → Worker 桥接
- eng_mode: spawn_workers() 为每个 ready 任务生成标准 Skill 调用参数
- commands/eng.md: dispatch 段从意图描述改为可执行5步伪代码
  Agent 不再需要猜测工具名、参数格式、task-text 来源

T-1.22 (P1-24): Merge → TaskGraph 状态同步
- merge_worker_result Phase 6.5: 写回 task-graph.json 节点 status
- merge 后节点状态 DONE,ready_tasks() 过滤已完成任务

_select_ready_tasks 修复:
- DAG ready 为空时不再 fallback 到 todo.md(todo.md 状态陈旧时导致重复派发)

P1-23: commands/eng.md dispatch 指令操作化
- 保留 Eng 工具白名单不变(极端接管需要 Write/Edit)
- Arc/Eng 约束非对称性是刻意的设计决策

63+4 项测试全通过,含端到端全链路测试

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 14:58:04 +08:00
AirLongDian
4b8a21aee2 docs: 修正 P1-23 描述 — Arc/Eng 约束非对称性是刻意的
- P1-23 从"指令-代码对齐缺口"改为"Dispatch 指令歧义",纯指令层问题
- 3.2.11b (b) 重写:Arc 硬阻断 vs Eng 保留极端接管不是缺陷,是有意设计
- Eng 保留 Write/Edit 原因:子代理无全局视野,调度层必须保留上升通道处理跨任务阻塞
- KPI 指标更新:Eng 编码越界→新增"(非接管场景)"限定词

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 14:53:53 +08:00
AirLongDian
fd67920274 docs: P1-22~P1-24 补充 — Dispatch 桥接、指令对齐、Merge 同步
新增设计章节 3.2.11b~3.2.11c:
- Dispatch → Worker 启动桥接(spawn_workers + 指令操作化 + 工具白名单对齐)
- Merge → TaskGraph 状态同步(merge 后更新 task-graph.json 节点 status)

新增缺陷记录 P1-22/P1-23/P1-24 + 实施任务 T-1.21/T-1.22 + KPI 指标

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 14:52:18 +08:00
AirLongDian
e7f46097fb fix: 修复实际使用中发现的 4 个 bug
- todo_parser: 支持无方括号的短 ID 提取(G-001/H-000 格式)
  原来只认 [T-xxx] 方括号格式,非方括号行退化为全文当 ID
- arc_mode: parallel_review_mode 保留 arcPhase 字段
  原来写 state 时覆盖为 {enabled, updatedAt, projectRoot},丢失 phase
- airplan.py: 新增 --task-text CLI 参数
  原来 argparse 缺此参数,do 模式无法接收任务描述
- do_mode.main: 透传 task_text 给 enter_worker
  原来调 enter_worker(project_root, tid) 缺第三个参数
  P1-20 is_ui_task() 永远收到空字符串

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 14:42:18 +08:00
AirLongDian
90a0db005f feat: P1-21 补充 — ADRWatcher 自动检测 + PartialReplanner 局部重规划
- 新增 adr_watcher.py: SHA256 hash 监控 ADR 文件变更
  - snapshot() 初始快照, detect_changes() 增量检测
  - 识别 new/modified/superseded/deleted 四种变更类型
  - _parse_status() 解析 ADR Status 字段
- 新增 partial_replanner.py: 局部重规划器
  - replan() 仅生成受影响任务的替代计划
  - _extract_stable_interfaces() 提取未受影响 DONE 任务接口约束
  - 产出 replan-request.json 供 Arc 读取
- Eng monitor_engine 集成 ADR 检测: 每轮轮询调用 _detect_adr_changes()
- Eng handle_adr_invalidation 集成 PartialReplanner 输出
- events.py 新增 ADR 变更相关事件常量
- task_graph.py apply_full_replace 保留 DISPATCHED, 不保留 INVALIDATED
- 10 项补充测试全通过,含完整 ADR 流程场景

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 11:30:31 +08:00
AirLongDian
a8988f372d fix: P1-21 code-to-design 审计修复 — pending 分组 + apply_full_replace
- invalidate_by_adr 新增 pending 分组:ADR 直接关联的 TODO 任务也标记 INVALIDATED
- apply_full_replace 保留 DISPATCHED 状态,不再保留 INVALIDATED(全量替换时重置)
- 新增 2 项测试:apply_full_replace 状态保留 + 真实 git revert
- 测试从 11→13 项,全部通过

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 11:22:52 +08:00
AirLongDian
f2f49d0094 feat: P1-21 ADR 变更级联失效 — 架构变更自动失效已完成任务
- TaskNode 新增 adr_refs 字段(ADR→任务溯源链)
- 新增 INVALIDATED 状态,允许覆盖 DONE/DISPATCHED
- TaskGraph.invalidate_by_adr() 级联失效 + BFS 下游传播
- PlanDelta 新增 rollback_ref(回滚快照引用)
- CascadeReport 数据结构(失效统计 + 任务ID列表)
- Eng dispatch_frozen 冻结调度,ready_tasks() 返回空
- handle_adr_invalidation() 10步处理流程(含 git revert)
- unfreeze_after_replan() Arc 重新规划后解冻
- AirRvr check_invalidated_cleanup() 检查旧代码残留
- INV-15 + L1 保障项 15 写入 SKILL.md
- 11 项功能测试全通过,含 ffmpeg→gstreamer 完整场景

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 11:13:53 +08:00
AirLongDian
19a4550830 test: 全模式功能测试覆盖 (12模式 33项测试)
新增 arc/eng/do/dbg/ctx/xdb/sdb/ndb/dep/tst/sec/rvr 全模式功能测试;
fix do_mode UI 检测中文关键词补全;scripts/install.sh 同步更新。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 10:10:57 +08:00
AirLongDian
211d50de49 test: 添加安装脚本测试 + 验证 JSON 文件
- scripts/test_install.sh: 模拟安装脚本测试
- 验证 marketplace.json 和 plugin.json 格式正确

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 17:35:49 +08:00
AirLongDian
dafd62cc24 feat: 添加插件市场文件 - README + marketplace.json + install.sh
- README.md: 完整的使用说明和功能特性
- marketplace.json: Claude Code 插件市场元数据
- scripts/install.sh: 自动安装脚本

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 17:32:46 +08:00
AirLongDian
e0e1d31cb1 fix: P1-20 UI 任务检测添加中文关键词
中文关键词: 界面, UI, 界面设计, 前端, 界面开发, 按钮, 对话框, 窗口, 菜单, 控件, 渲染, 布局, 登录界面, 界面组件

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 17:16:15 +08:00
AirLongDian
e73a4da354 feat: P1-19 P1-20 实现 - 边界测试强制 + 高风险审计 + UI Skill 路由
P1-19.1: Arc 边界测试强制
- TaskNode 新增 test_required 字段
- _inject_boundary_tests() 为每个模块注入接口测试和单元测试任务
- Done When 验证必须包含"测试通过"

P1-19.2: AirRvr 高风险审计
- 新增 HighRiskAudit, HighRiskFinding 数据类
- ReviewReport 新增 highRiskAudit 字段,含 lifecycle/nullPointer/danglingPointer/exceptionSafety/concurrency + overallRisk + deliveryVerdict
- 序列化/反序列化支持

P1-19.3: block-release 集成
- dispatch_worker_group() 派发前扫描最新审查报告
- deliveryVerdict=block-release 时阻止所有后续派发
- 记录 eng.blocked 事件

P1-20: frontend-design Skill 集成
- is_ui_task() UI 任务检测
- ensure_frontend_design_skill() 自动安装 Skill
- route_ui_task() UI 任务路由决策
- enter_worker() 集成 UI 检测,skill 不可用时阻止执行
- commands/do.md 更新 UI 处理说明
- SKILL.md 新增 INV-12/INV-13/INV-14

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 17:06:48 +08:00