| name | task-group-planner |
| description | 任务分组规划器。阅读用户提示词或指定文档,将问题、任务进行智能分组,规划并行/串行执行顺序。适用于复杂任务拆分、批量任务规划、文档分析等场景。 |
Task Group Planner
任务分组规划器,用于将复杂任务拆分为适合 subagent 并行/串行执行的分组。
任务分组
分组规划
拆分任务
分析任务依赖
并行任务规划
核心功能
- 阅读输入内容:读取用户提示词或指定文档
- 智能分组:根据依赖关系和上下文大小进行任务分组
- 规划执行顺序:识别并行和串行任务
- 输出执行计划:生成结构化的分组执行计划
执行流程
步骤 1:读取输入内容
优先读取用户当前提示词,如果用户提供文档路径则读取文档:
cat <文档路径>
步骤 2:分析任务结构
识别以下要素:
| 要素 | 说明 | 示例 |
|---|
| 原子任务 | 不可再分的最小任务单元 | "修复 bug A"、"优化模块 B" |
| 任务组 | 多个原子任务的集合 | "重构数据层"(包含多个文件修改) |
| 依赖关系 | 任务间的先后依赖 | "B 依赖 A 的输出" |
| 上下文规模 | 任务所需的信息量 | 大型重构 ≈ 2000 tokens,小型修改 ≈ 200 tokens |
步骤 3:执行分组决策
分组标准:
| 标准 | 说明 | 阈值参考 |
|---|
| 上下文大小 | 单个 subagent 能处理的 token 上限 | 建议每组 500-2000 tokens |
| 依赖关系 | 无依赖的任务可并行,有依赖的需串行 | A → B 表示 B 依赖 A |
| 语义聚合 | 相关任务放同一组 | 同模块、同功能的任务优先合并 |
分组决策示例:
输入:6 个任务 {A, B, C, D, E, F}
依赖关系:D → B,A → C
上下文估算:A,B,C 各 300 tokens,D,E,F 各 800 tokens
分析:
- D → B(串行),A → C(串行)
- D,E,F 上下文较大,单独成组
- A,B,C 上下文较小,可合并
输出:
Group 1 (串行): [D] → [B]
Group 2 (并行): [A], [C], [E], [F]
步骤 4:写入执行计划
使用预设模板生成执行计划文件。
输出目录
用户指定目录:如果用户提供了输出目录,使用用户指定目录
默认目录:.claude/tmp/group-plan/
mkdir -p .claude/tmp/group-plan/
输出模板
使用 template/group-plan-template.md 作为模板文件。
模板结构:
# Task Group Plan
## 基本信息
- 生成时间: <时间戳>
- 输入来源: <用户提示词 / 文档路径>
- 输出目录: <用户指定目录 / 默认目录>
## 执行摘要
- 总任务数: <N>
- 分组数: <M>
- 并行组数: <X>
- 串行组数: <Y>
## 分组详情
### Group 1: <组名称>
**执行模式**: <并行 / 串行>
**前置依赖**: <依赖的组 / 无>
**任务列表**:
1. <任务 1>
2. <任务 2>
### Group 2: <组名称>
...
## 执行顺序
### 第一阶段(并行)
- [ ] Group 1: <任务描述>
- [ ] Group 2: <任务描述>
### 第二阶段(串行)
- [ ] Group 3: <任务描述> → 依赖 Group 1, 2
模板文件
模板文件位置:.claude/skills/task-group-planner/template/group-plan-template.md
如需自定义模板,可修改该文件内容。
使用示例
示例 1:用户直接输入提示词
用户:帮我重构后端代码,包括:
1. 优化 Repository 层
2. 改进错误处理
3. 添加缓存机制
4. 重写 API 路由
5. 更新数据库 Schema
分析结果:
- 任务 5 (Schema) 可先完成
- 任务 1 (Repository) 依赖 5
- 任务 2 (错误处理) 可并行
- 任务 3 (缓存) 依赖 1
- 任务 4 (API) 依赖 1, 2
示例 2:用户指定文档
用户:分析 docs/refactoring-plan.md 文件,并进行任务分组
边界限制
本 skill 负责:
- ✅ 阅读和分析输入内容
- ✅ 进行智能分组决策
- ✅ 生成结构化执行计划
- ✅ 写入计划文件到指定目录
本 skill 不负责:
- ❌ 执行实际任务(由 subagent 根据生成的计划执行)
- ❌ 验证分组正确性(用户需审核分组结果)
- ❌ 修改输入文档
分组决策指南
何时合并任务(同一组)
| 情况 | 示例 | 原因 |
|---|
| 相同模块 | 多个 Repository 文件修改 | 上下文相关,减少切换 |
| 相同关注点 | 多个错误处理改进 | 思维连贯性 |
| 小任务累积 | 3 个小 bug 修复 | 平衡上下文大小 |
何时拆分任务(不同组)
| 情况 | 示例 | 原因 |
|---|
| 不同模块 | API 层 vs 数据层 | 专业分工 |
| 依赖差异 | 有依赖 vs 无依赖 | 执行顺序不同 |
| 上下文过大 | 大型重构 | 避免 subagent 上下文溢出 |
依赖关系识别
显式依赖(用户明确说明):
- "A 完成后才能做 B"
- "B 依赖 A 的结果"
隐式依赖(合理推断):
- 数据流依赖:A 生产数据,B 消费数据
- 接口依赖:A 定义接口,B 实现接口
- 配置依赖:A 配置参数,B 使用参数
无依赖(可并行):
- 修改不同文件/模块
- 独立的增强功能
- 不相交的关注点