---
name: zsc-run-task-to-complete
description: 高自动化执行任务的技能：在安全前提下尽可能一口气跑完整个任务的 TODO，减少人工交互。任务的创建与设计由 zsc-create-task 负责；交互式逐步执行由 zsc-run-task 负责。回复请使用中文。
---

# zsc-run-task-to-complete

**职责范围：高自动化执行任务。** 本技能针对已有任务（`.agents/tasks/task_{no}_{feat_name}/`），在安全可控的前提下，尽量在**一次会话内连续执行尽可能多的 TODO**，减少与用户的频繁交互。它与 **zsc-run-task** 基于相同的任务体系，但更偏向「一键尽量跑完」；**任务的创建与设计**（闭环描述、TODO_LIST 设计）仍由 **zsc-create-task** 负责，常规的交互式推进仍推荐使用 **zsc-run-task**。其中 **zsc** 的全称是 **zig slice code**。

> ⚠ **安全提示**：这是一个偏「高级 / 高自动化」的技能，可能在一次会话中进行多处代码/文档修改与命令执行。建议优先在个人分支 / Feature 分支 / 非生产环境中使用，并在结束后审阅 diff 再决定是否提交或发布。

## 操作边界（强制，最高优先级）

**只要使用了本技能，无论用户提示词说什么：**

- **可以**：
  - 仅针对**用户选定的一个任务**：读取该任务的闭环描述与 TODO_LIST 及项目代码。
  - 编辑该任务在 `.agents/tasks/` 下的 `.md`（如勾选 TODO、记录执行备注、在完成时重写 TODO_LIST）。
  - 为实现 TODO 按需修改项目代码、测试、配置或文档。
  - 在 TODO 明确需要或为校验变更时，运行本地命令或测试（如 `pytest`、`uv pip install`、lint 等）。
- **不可以**：
  - 在 `.agents/tasks` 下创建新任务或新任务目录（应使用 **zsc-create-task**）。
  - 修改**其他任务**的设计（闭环描述 / TODO_LIST 结构）。
  - 在未得到明确授权的情况下执行不可逆、危险或超出任务范围的操作（例如破坏性数据操作、生产发布等）。

如对某个潜在危险操作拿不准，**优先在任务文件中写入「建议 / 后续 TODO」而不是直接自动执行**。

## 何时使用

优先使用 **zsc-run-task-to-complete** 的场景：

- 用户希望「尽可能一口气跑完这个任务」或「把这个 task 能做的都做了」。
- TODO_LIST 相对清晰、顺序性强，整体风险为低到中等。
- 用户当前处于可回滚的工作环境（个人分支 / Feature 分支 / 非生产环境），且接受批量修改。

更适合使用 **zsc-run-task** 的场景：

- TODO 需要大量产品/架构决策或存在多种不确定方案。
- 用户希望「一步一步来」、经常人工确认与调整。

## 任务文件位置

- 任务目录：`.agents/tasks/task_{no}_{feat_name}/`
- 任务文件：规范命名为与目录同名，如 `task_01_scan_plugin/task_01_scan_plugin.md`（便于在 AI 对话框用 @ 唯一引用）；读取时也支持旧版 `task.md`。

## 执行循环（高层流程）

使用本技能时，应采用**循环式执行**思路：

1. **解析任务与 TODO 队列**
   - 阅读任务的闭环描述与 `## TODO_LIST`。
   - 抽取当前轮次未勾选的 `- [ ]` TODO，按顺序构建待执行队列。
   - 跳过已归档或已标记完成的项。
2. **连续执行 TODO**
   - 依次取出下一个 TODO，推导出需要的具体动作（改动哪些代码/配置/文档、是否需要运行测试或命令等）。
   - 在仓库中应用这些改动（代码 / 文档 / 配置）。
   - 在合适且可行时运行相关检查或测试，验证本次变更是否正常。
   - 更新任务文件：
     - 将该 TODO 标记为完成（如 `- [ ]` 改为 `- [x]`），或
     - 用简短执行记录替换该行，并标明已完成。
   - 在**不需要人工决策**的前提下，直接继续下一个 TODO，**不必每一步都等待用户确认**，除非：
     - 该动作明显存在较大风险，或
     - TODO 文本明确要求用户做出选择。
3. **处理错误与阻塞点**
   - 若命令/测试失败，或发现某个 TODO 无法自动完成：
     - 收集关键错误信息，在该 TODO 下或单独的「阻塞说明」中记录原因。
     - 根据自动化策略决定：
       - 适度调整后自动重试，或
       - 将该 TODO 标记为「blocked」，并停止本轮进一步自动执行。
   - 若会话或工具链中断，应确保任务文件能反映当前进度，以便下次能从合理位置继续。
4. **收口与重写 TODO_LIST**
   - 当本轮已不存在未勾选的 `- [ ]` TODO（包括已明确标记为暂不可完成的项）时，按 **zsc-run-task** 的完成规范收口：
     - 重写 `## TODO_LIST`。
     - **保留**维护说明：
       - `> 只维护最新版本；完成后清空 TODO，仅保留"完成记录 + 日期"。`
     - 保留一行表示本轮 TODO 已清空，例如：
       - `- （本轮已完成，TODO 清空）`
     - 增加一行带日期的完成记录，简要说明本次自动化执行的结果，例如：
       - `- 2026-02-26：通过 zsc-run-task-to-complete 自动执行 N 个 TODO，其中 M 个完成，K 个因原因 X/Y 标记为阻塞。`

## 与 zsc-run-task 的协同关系

- **zsc-run-task**：
  - 偏向**交互式、逐步执行**。
  - 适合需要大量人工判断、频繁调整方案的任务。
  - 建议在关键步骤后多与用户同步。
- **zsc-run-task-to-complete**：
  - 偏向**高自动化、尽量一次跑完**。
  - 适合 TODO_LIST 语义清晰、主要动作较机械/低风险的任务。
  - 期望在一次会话中跨多个 TODO 连续推进，仅在「不清楚 / 高风险」时暂停或求助用户。

两者在 `## TODO_LIST` 收口规范上**保持一致**（保留维护说明、完成标记与带日期的完成记录）。在向用户推荐使用哪个技能时，可遵循：

- 需要「精细控制、随时调整」时用 **zsc-run-task**。
- 需要「在安全环境中尽可能一口气跑完」时用 **zsc-run-task-to-complete**。

