---
name: zsc-run-task
description: 执行任务的技能：实现 TODO、更新任务文件、标记完成。当用户想“运行任务”“做这个任务”“实现 TODO”或“完成任务”时使用。任务的创建与设计由 zsc-create-task 负责。回复请使用中文。
---

# zsc-run-task

**职责范围：执行并推进任务。** 本技能针对已有任务（`.agents/tasks/task_{no}_{feat_name}/`），按 TODO_LIST 逐步执行、更新任务文件，并在全部完成后执行“任务完成”步骤。任务的**创建与设计**（闭环描述、TODO_LIST 设计）由 **zsc-create-task** 负责；本技能只负责“跑”任务。

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

**只要使用了本技能，无论用户提示词是什么：**
- **可以**：仅针对**用户选定的一个**任务：读取该任务的闭环描述与 TODO_LIST 及项目代码；编辑该任务在 `.agents/tasks/` 下的 `.md`（如勾选 TODO、填写完成记录）；为实现 TODO 而按需修改项目代码（如 `src/`、`tests/`）。
- **不可以**：在 `.agents/tasks` 下创建新任务或新任务目录（应使用 **zsc-create-task**）。不得修改其他任务的设计（闭环描述 / TODO_LIST 结构）；仅执行所选任务并更新该任务文件与项目代码。

## 何时使用

- 用户想“运行”“执行”或“做”某个任务。
- 用户想实现某任务的 TODO（如“做 task_02 的 TODO”）。
- 用户想推进或完成某个具体任务。
- 用户明确要在某个任务上动手做完工作。

仅创建新任务或只设计/编辑 TODO 而不动手做时，请用 **zsc-create-task**，不要用本技能。

## 任务文件位置

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

## 工作流

### 1. 确定要执行的任务

- 若用户指定了任务（如“task_02”“zsc_task_cli”），打开该任务目录及其任务文件：`{task_dir_name}.md`（如 `task_02_foo.md`），或若存在则用旧版 `task.md`。
- 若未指定，可先列出任务（如建议执行 `zsc task list`）并询问要执行哪一个，或选最相关的进行中任务。

### 2. 阅读闭环描述与 TODO_LIST

- 阅读闭环描述，理解目标资源与生命周期。
- 阅读 TODO_LIST，只处理未勾选的 `- [ ]` 项。

### 3. 逐项实现 TODO

- 取第一个（或下一个）未勾选的 `- [ ]` 项。
- 动手完成：写代码、加测试、改文档等，按该项要求做。
- 完成一项后：
  - 在任务文件中标记完成：将该条 `- [ ]` 改为 `- [x]`，或按项目习惯删除已完成的项并保持列表更新。
  - 可简短记录或建议提交。
- 再处理下一项未勾选项。必要时在关键步骤后与用户确认。

### 4. 任务完成（当本轮所有 TODO 都做完时）

当**没有剩余的未勾选 `- [ ]` 项**时：

1. **整段重写 `## TODO_LIST`**（不要只勾选复选框）。
2. **保留**维护说明那一行：
   - `> 只维护最新版本；完成后清空 TODO，仅保留"完成记录 + 日期"。`
3. 保留一行表示本轮完成，例如：
   - `- （本轮已完成，TODO 清空）`
4. 增加**一行完成记录与日期**，例如：
   - `- 2026-02-24：用一句话总结本轮完成的工作。`
5. **删除**所有以往的 `- [ ]` / `- [x]` 项，只保留维护说明与新的完成记录。
6. 若 `task_records/log` 中仅为中间文件，清空其内容（保留目录）。
7. 若本轮后生命周期有变化，**更新闭环描述**，使其反映当前行为。

## 说明

- **zsc-run-task** = 执行并完成任务。**zsc-create-task** = 创建与设计任务（不执行）。
- 建议每次跑一到几个 TODO，除非用户要求一口气做完整个任务。
- 不确定时，先完成一个 TODO、更新文件，再继续。
- `zsc` 的全称是 **zig slice code**。
