🏛 架构平台 Arch.Platform

熔断器 session-lifetime → task-lifetime 改造

65f1d3c5
✏️ 编辑
优先级 P1
类型 重构
状态 草稿
负责人

📝 描述

把 circuit-breaker skill 从 session-lifetime 计时改为 task-lifetime 计时。task = 预算单元,TaskCreate 触发 reset,task 内仍熔断,无 task 时软引导不计时。component 未绑(circuit-breaker skill 暂未登记到 arch 平台)。 IN-SCOPE: 改 init.sh / 改 check.sh → 重命名为 circuit-breaker.sh(合并 TaskCreate/TaskUpdate 检测 + 熔断) / 改 $HOME/.claude/settings.json 注册 hook / 加 env var / 跨 session 验证(按 §2 CONTRACT 4 条断言)。 OUT-OF-SCOPE: 改 Q4 为强制 AI 用 TaskCreate(留 REQ-future-strict-mode);改回 session-lifetime;新建独立 task-track.sh(避免双 hook 竞争)。 详见 $HOME/.claude/specs/circuit-breaker-task-scope.md (v2, cross-model review 修订)。

👤 用户故事

As an AI assistant, I want task-level budget tracking (task is the budget atomic unit, TaskCreate triggers reset), so that long sessions with multiple tasks do not get blocked by a single 30-min session-level budget.

✅ 验收标准 (4 项)

  1. Given circuit-breaker.sh 文件存在
    When Claude Code 启动
    Then hooks.PreToolUse matcher 含 circuit-breaker.sh 路径
  2. Given AI 调用 TaskCreate
    When circuit-breaker.sh PreToolUse 拦截
    Then task_start=now, current_task_id=<id>, push history
  3. Given AI 调用 TaskUpdate status=completed
    When circuit-breaker.sh 拦截
    Then task_start=null, current_task_id=null
  4. Given 跑 2 task
    When 新 session
    Then (a) task1 35 分钟触发提醒;(b) task_history 长度=2;(c) task2 completed 后 task_start=null

🏷️ 标签

circuit-breaker refactor task-scope 熔断器 review-revised

🔄 推进状态

新状态
负责人
描述(rejected/cancelled 必填)

创建于 2026-06-28 20:12