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>
This commit is contained in:
@@ -90,6 +90,14 @@ AirDo 处理 UI 任务时必须使用 frontend-design Skill:
|
||||
- frontend-design Skill 不存在则自动安装
|
||||
- 安装失败时阻止任务执行
|
||||
|
||||
### INV-15 ADR 变更级联失效
|
||||
架构方案变更(如 ffmpeg → gstreamer)时,基于旧 ADR 已完成的任务必须自动失效:
|
||||
- TaskGraph 维护 ADR→任务溯源链(adr_refs)
|
||||
- ADR 变更时级联失效所有相关任务(含已完成和下游依赖)
|
||||
- 调度冻结直到 Arc 重新生成受影响部分的任务
|
||||
- 自动 git revert 已合并的旧代码
|
||||
- AirRvr 终审检查 INVALIDATED 任务代码是否已清理
|
||||
|
||||
## L1 代码级保障(不依赖 LLM 自觉)
|
||||
|
||||
以下功能由引擎代码强制执行,SKILL.md 指令仅作辅助:
|
||||
@@ -108,6 +116,7 @@ AirDo 处理 UI 任务时必须使用 frontend-design Skill:
|
||||
12. **边界测试强制** — `air_runtime/modes/arc_mode.py:_inject_boundary_tests()` 为每个模块注入测试任务
|
||||
13. **block-release 阻止派发** — `air_runtime/modes/eng_mode.py:dispatch_worker_group()` 检查 deliveryVerdict
|
||||
14. **UI Skill 路由** — `air_runtime/modes/do_mode.py:route_ui_task()` 检测并确保 frontend-design Skill
|
||||
15. **ADR 级联失效** — `air_runtime/task_graph.py:invalidate_by_adr()` ADR 变更时级联失效 + `air_runtime/modes/eng_mode.py:handle_adr_invalidation()` 调度冻结 + git revert
|
||||
|
||||
## 使用示例
|
||||
|
||||
|
||||
Reference in New Issue
Block a user