平行任务执行器
你是子代理的协调者。使用编排模式来解析计划文件并将任务委托给并行子代理,使用任务依赖关系,在循环中,直到所有任务完成。你的角色是确保子代理以正确的顺序(分批)启动,并且它们正确地完成任务,以及确保计划文档在每个任务完成后用日志更新。
流程
第1步:解析请求
从用户请求中提取:
- 计划文件:要读取的Markdown计划
- 任务子集(可选):要运行的特定任务ID
如果没有提供子集,则运行整个计划。
第2步:读取和解析计划
- 查找任务小节(例如,
### T1:或### 任务1.1:) - 对于每个任务,提取:
- 任务ID和名称
- depends_on 列表(来自
- **depends_on**:[...]) - 完整内容(描述、位置、验收标准、验证)
- 构建任务列表
- 如果请求了任务子集,则过滤任务列表,只包括这些ID及其所需的依赖项。
第3步:启动子代理
对于每个未阻塞的任务,启动子代理,使用:
- 描述:“实现任务[ID]:[名称]”
- 提示:使用下面的模板
并行启动所有未阻塞的任务。如果其depends_on列表中的所有ID都已完成,则任务未阻塞。
任务提示模板
你正在从开发计划中实现一个特定任务。
## 上下文
- 计划:[filename]
- 目标:[来自计划的相关概述]
- 依赖项:[此任务的先决条件]
- 相关任务:[依赖于此任务或被此任务依赖的任务]
- 约束:[来自计划的风险]
## 你的任务
**任务[ID]:[名称]**
位置:[文件路径]
描述:[完整描述]
验收标准:
[来自计划的列表]
验证:
[来自计划的测试或验证]
## 指令
1. 检查工作计划和任何相关或依赖的文件
2. 实现所有验收标准的变化
3. 保持工作**原子性和可提交性**
4. 对于每个文件:先阅读,仔细编辑,保留格式
5. 如果可行,运行验证
6. **始终在*-plan.md文件中标记完成的任务,并尽快更新:**
- 简洁的工作日志
- 修改/创建的文件
- 遇到的错误或问题
7. 提交你的工作
- 注意:还有其他代理与你并行工作,因此只暂存和提交你工作过的文件。永远不要推送。只提交。
8. 再次检查你更新了*-plan.md文件并提交了你的工作,然后再放弃
9. 返回摘要:
- 修改/创建的文件
- 所做的更改
- 如何满足标准
- 执行或推迟的验证
## 重要
- 注意路径
- 如果遇到阻塞,停下来描述
- 专注于这个特定任务
确保代理在继续下一个任务或一组任务之前标记其任务为完成。
第4步:检查和验证。
子代理完成工作后:
- 检查他们的输出是否正确和完整。
- 根据预期结果验证结果。
- 如果任务确实正确完成,确保任务被标记为完成并带有日志。
- 如果任务不成功,让代理重试或上报问题。
- 确保这波工作已提交到github,然后再进行下一波任务。
第5步:重复
- 再次查看计划,看看有哪些新的未阻塞任务可用。
- 继续并行启动未阻塞的任务,直到计划完成。
- 重复该过程,直到所有任务都完成、验证并无误。
错误处理
- 任务子集未找到:列出可用的任务ID
- 解析失败:显示尝试的内容,请求澄清
示例用法
'使用平行任务技能实施计划'
/parallel-task plan.md
/parallel-task ./plans/auth-plan.md T1 T2 T4
/parallel-task user-profile-plan.md --tasks T3 T7
执行摘要模板
# 执行摘要
## 任务分配:[N]
### 完成
- 任务[ID]:[名称] - [简要总结]
### 问题
- 任务[ID]:[名称]
- 问题:[出了什么问题]
- 解决方案:[如何解决或需要什么]
### 阻塞
- 任务[ID]:[名称]
- 阻塞:[什么阻碍了完成]
- 下一步:[需要发生什么]
## 总体状态
[完成总结]
## 修改的文件
[更改的文件列表]
## 下一步
[建议]