标题(20-200 字符) 描述(背景/上下文) 把 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. 验收标准(JSON,数组,每项 given/when/then) [ { "given": "circuit-breaker.sh 文件存在", "when": "Claude Code 启动", "then": "hooks.PreToolUse matcher 含 circuit-breaker.sh 路径" }, { "given": "AI 调用 TaskCreate", "when": "circuit-breaker.sh PreToolUse 拦截", "then": "task_start=now, current_task_id=<id>, push history" }, { "given": "AI 调用 TaskUpdate status=completed", "when": "circuit-breaker.sh 拦截", "then": "task_start=null, current_task_id=null" }, { "given": "跑 2 task", "when": "新 session", "then": "(a) task1 35 分钟触发提醒;(b) task_history 长度=2;(c) task2 completed 后 task_start=null" } ] 支持 JSON 数组格式。空数组表示无 AC。 非功能需求(JSON 对象,key/value 字符串) {} 优先级 P0 P1 P2 P3 负责人 截止日期 标签(逗号分隔) 保存修改 取消