---
name: zsc-task-list
description: 列出与浏览 .agents/tasks 下任务的技能。由 `zsc init` 安装；对应 `zsc task list`。当用户想查看所有任务、按名称或编号查找任务，或区分进行中与已完成时使用。回复请使用中文。
---

# zsc-task-list

帮助列出与浏览 `.agents/tasks` 下的项目任务。本技能由 `zsc init` 安装，与 CLI 命令 `zsc task list` 对应，其中 `zsc` 的全称是 **zig slice code**。**回复请使用中文。**  
当任务数量很多时，本技能应优先**调用一次 `zsc task list`，再让大模型基于输出做任务关联与分组**，而不是逐个打开任务文件。

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

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

- 你**只能**在 `.agents/tasks` 下**列出或浏览**任务（例如运行 `zsc task list`，或在少数场景下读取特定任务文件以展示详情）。
- **不得**在 `.agents/tasks` 下创建、编辑或删除任何文件。
- **不得**修改 `.agents/tasks` 以外的项目代码或文件。
- 为了性能，请**不要为构建列表而逐个打开所有任务文件**；优先使用**单次 `zsc task list` 调用**并对其文本输出做分析。

## 何时使用

- 用户要求列出任务、展示任务列表或查看有哪些任务。
- 用户想按编号（如 task_02）或功能名查找任务。
- 用户想区分哪些任务进行中、哪些已完成。

## 命令行为：如何获取任务列表

`zsc task list [path]`：

- 扫描 `.agents/tasks` 下名为 `task_*` 的目录。
- 对每个目录，通过以下规则解析任务 markdown 文件：
  - 规范命名：`task_{no}_{feat}.md`（与目录同名，如 `task_03_init_lang_prompt.md`），便于在 AI 工具中用唯一路径引用。
  - 兼容旧版：若存在 `task.md` 且无同名 md，则作为回退读取。
- 为每个任务推断一个粗粒度 **status**：
  - **completed（已完成）**：任务文件中含有完成标记「（本轮已完成，TODO 清空）」且没有未勾选的 `- [ ]` 项。
  - **open（进行中）**：任务文件中至少有一个未勾选的 `- [ ]` TODO。
  - **unknown（未知）**：无任务文件，或无法推断状态。
- 输出简明列表，例如：
  - `[zsc] Tasks under /path/to/.agents/tasks:`
  - `  - task_01_zsc_cli           [open]      Task 01: zsc_cli`
  - `  - task_02_zsc_task_cli      [completed] Task 02: zsc_task_cli`

## 大任务量场景：分组与分析（LLM 行为）

当任务很多时，本技能的目标是基于**一次 `zsc task list` 调用**构建一张按关联分组的「任务地图」：

1. **只调用一次命令**
   - 优先在项目根目录执行：`zsc task list .`（或根据实际路径调整）。
   - 捕获完整的命令输出文本。

2. **解析列表输出**
   - 忽略类似 `[zsc] Tasks under ...` 的头部提示行。
   - 对每一行任务条目，提取：
     - `task_id`：任务目录名（如 `task_04_zsc_task_list_grouping`）。
     - `status`：方括号中的状态（`open` / `completed` / `unknown`）。
     - `title`：状态之后的标题文本，通常以 `Task NN:` 开头。

3. **按关联形成分组**
   - 优先构造对用户有帮助的分组，例如：
     - 按**功能/模块**：ID 或标题中包含相同 slug 的任务（如 `zsc_cli`、`zsc_task_cli`、`init_lang_prompt`）。
     - 按**生命周期/流程**：明显属于同一工作流步骤的任务（如「CLI 基础」「任务管理」「更新流程」）。
     - 当任务非常多时，可在每个功能组内部再按 `status` 拆分为「进行中 / 已完成」小组。
   - 控制顶层分组数量在一个合理的区间（例如 3–7 组），对非常小或非常相近的组进行合并。

4. **以分组方式输出**
   - 对每个分组输出：
     - 一行**分组标题** + 一句**简要说明**（这组任务大致在做什么）。
     - 若干条任务列表，例如：
       - `- task_02_zsc_task_cli [open]    Task 02: zsc_task_cli`
   - 每个分组内优先展示 **open（进行中）** 任务，其次再列出 completed / unknown。
   - 如果总任务量极大，可以：
     - 只列出每个分组中的进行中任务 + 已完成任务数量统计，或
     - 对低优先级分组做摘要，而非逐条列出。

5. **可选回退方案**
   - 若当前环境下无法执行 `zsc` 命令，请明确说明原因。
   - 此时只在用户明确点名的前提下，读取**少量**任务文件，而不要自行全量扫描所有任务。

## 对 AI 的建议

- 要得到实际列表，**应始终优先**建议或代为执行：`zsc task list`（或在项目根目录 `zsc task list .`）。
- 将命令输出视为任务 ID、标题与状态的**单一事实来源**，在此基础上按照上文步骤做分组与分析。
- 讨论任务时，优先使用任务目录名（如 `task_01_zsc_cli`、`task_02_zsc_task_cli`）以及从列表输出推断的状态（open / completed / unknown）。
