名称: 任务管理 描述: 用于跟踪和管理功能子任务的CLI,包括状态、依赖关系和验证 版本: 1.0.0 作者: opencode 类型: 技能 类别: 开发 标签:
- 任务
- 管理
- 跟踪
- 依赖关系
- cli
任务管理技能
目的:通过原子任务分解、依赖解析和进度监控,跟踪、管理和验证功能实现。
我的功能
我提供了一个命令行界面,用于管理由TaskManager子代理创建的任务分解。我帮助您:
- 跟踪进度 - 查看所有功能及其子任务的状态
- 查找下一个任务 - 显示符合条件的任务(依赖项已满足)
- 识别阻塞任务 - 查看哪些任务被阻塞及原因
- 管理完成状态 - 使用摘要标记子任务为完成
- 验证完整性 - 检查JSON文件和依赖树
如何使用我
快速开始
# 显示所有任务状态
bash .opencode/skills/task-management/router.sh status
# 显示下一个符合条件的任务
bash .opencode/skills/task-management/router.sh next
# 显示阻塞的任务
bash .opencode/skills/task-management/router.sh blocked
# 标记任务为完成
bash .opencode/skills/task-management/router.sh complete <功能> <序号> "摘要"
# 验证所有任务
bash .opencode/skills/task-management/router.sh validate
命令参考
| 命令 | 描述 |
|---|---|
status [功能] |
显示所有功能或特定功能的任务状态摘要 |
next [功能] |
显示下一个符合条件的任务(依赖项已满足) |
parallel [功能] |
显示可并行运行的任务 |
deps <功能> <序号> |
显示特定子任务的依赖树 |
blocked [功能] |
显示阻塞的任务及原因 |
complete <功能> <序号> "摘要" |
使用摘要标记子任务为完成 |
validate [功能] |
验证JSON文件和依赖关系 |
help |
显示帮助消息 |
示例
检查总体进度
$ bash .opencode/skills/task-management/router.sh status
[my-feature] My Feature Implementation
状态: 活跃 | 进度: 45% (5/11)
待处理: 3 | 进行中: 2 | 已完成: 5 | 阻塞: 1
查找下一步任务
$ bash .opencode/skills/task-management/router.sh next
=== 准备就绪的任务(依赖项已满足) ===
[my-feature]
06 - 实现API端点 [顺序]
08 - 编写单元测试 [并行]
标记完成
$ bash .opencode/skills/task-management/router.sh complete my-feature 05 "实现了认证模块"
✓ 标记 my-feature/05 为已完成
摘要: 实现了认证模块
进度: 6/11
检查依赖关系
$ bash .opencode/skills/task-management/router.sh deps my-feature 07
=== 依赖树: my-feature/07 ===
07 - 编写集成测试 [待处理]
├── ✓ 05 - 实现认证模块 [已完成]
└── ○ 06 - 实现API端点 [进行中]
验证所有内容
$ bash .opencode/skills/task-management/router.sh validate
=== 验证结果 ===
[my-feature]
✓ 所有检查通过
架构
.opencode/skills/task-management/
├── SKILL.md # 此文件
├── router.sh # CLI路由器(入口点)
└── scripts/
└── task-cli.ts # 任务管理CLI实现
任务文件结构
任务存储在项目根目录的 .tmp/tasks/:
.tmp/tasks/
├── {功能标识}/
│ ├── task.json # 功能级别元数据
│ ├── subtask_01.json # 子任务定义
│ ├── subtask_02.json
│ └── ...
└── completed/
└── {功能标识}/ # 已完成任务
task.json 架构
{
"id": "my-feature",
"name": "我的功能",
"status": "active",
"objective": "实现 X",
"context_files": ["docs/spec.md"],
"reference_files": ["src/existing.ts"],
"exit_criteria": ["测试通过", "代码已审核"],
"subtask_count": 5,
"completed_count": 2,
"created_at": "2026-01-11T10:00:00Z",
"completed_at": null
}
subtask_##.json 架构
{
"id": "my-feature-05",
"seq": "05",
"title": "实现认证",
"status": "pending",
"depends_on": ["03", "04"],
"parallel": false,
"suggested_agent": "coder-agent",
"context_files": ["docs/auth.md"],
"reference_files": ["src/auth-old.ts"],
"acceptance_criteria": ["登录有效", "JWT令牌有效"],
"deliverables": ["auth.ts", "auth.test.ts"],
"started_at": null,
"completed_at": null,
"completion_summary": null
}
与TaskManager集成
TaskManager子代理使用此格式创建任务文件。当您委托给TaskManager时:
task(
subagent_type="TaskManager",
description="实现功能 X",
prompt="将此功能分解为原子子任务..."
)
TaskManager创建:
.tmp/tasks/{功能}/task.json- 功能元数据.tmp/tasks/{功能}/subtask_XX.json- 单独的子任务
然后您可以使用此技能跟踪和管理进度。
关键概念
1. 依赖解析
子任务可以依赖于其他子任务。一个任务仅在所有依赖项完成时才“就绪”。
2. 并行执行
设置 parallel: true 以指示子任务可以与依赖项满足的其他并行任务一起运行。
3. 状态跟踪
- 待处理 - 未开始,等待依赖项
- 进行中 - 当前正在处理
- 已完成 - 已完成并附摘要
- 阻塞 - 明确阻塞(非等待依赖项)
4. 退出标准
每个功能都有退出标准,必须在标记功能完成前满足。
5. 验证规则
validate 命令对任务文件执行全面检查:
任务级别验证:
- ✅ task.json 文件存在
- ✅ 任务ID匹配功能标识
- ✅ task.json 中的子任务计数与实际子任务文件匹配
- ✅ 所有必填字段存在
子任务级别验证:
- ✅ 所有子任务ID以功能名称开头(例如,“my-feature-01”)
- ✅ 序号唯一且格式正确(01, 02等)
- ✅ 所有依赖项引用现有子任务
- ✅ 无循环依赖
- ✅ 每个子任务定义了验收标准
- ✅ 每个子任务指定了交付物
- ✅ 状态值有效(待处理、进行中、已完成、阻塞)
依赖验证:
- ✅ 所有 depends_on 引用指向现有子任务
- ✅ 无任务依赖于自身
- ✅ 无循环依赖链
- ✅ 依赖图无环
定期运行 validate 以早期发现问题:
bash .opencode/skills/task-management/router.sh validate my-feature
6. 上下文和参考文件
- context_files - 遵循的标准、约定和指南
- reference_files - 查看或基于的现有项目文件
工作流集成
与TaskManager子代理
- TaskManager创建任务 → 生成
.tmp/tasks/{功能}/结构 - 您使用此技能跟踪 → 使用
status、next、blocked监控进度 - 您标记任务完成 → 使用
complete命令带摘要 - 技能验证完整性 → 使用
validate检查一致性
与其他子代理
工作代理(CoderAgent、TestEngineer等)执行子任务并报告完成。使用此技能:
- 使用
next查找下一个可用任务 - 使用
blocked检查阻塞进度 - 使用
validate验证任务定义
常见工作流
开始新功能
# 1. TaskManager创建任务结构
task(subagent_type="TaskManager", description="实现功能 X", ...)
# 2. 检查就绪任务
bash .opencode/skills/task-management/router.sh next
# 3. 将第一个任务委托给工作代理
task(subagent_type="CoderAgent", description="实现子任务 01", ...)
跟踪进度
# 检查总体状态
bash .opencode/skills/task-management/router.sh status my-feature
# 查看下一步
bash .opencode/skills/task-management/router.sh next my-feature
# 检查阻塞任务
bash .opencode/skills/task-management/router.sh blocked my-feature
完成任务
# 在工作代理完成后
bash .opencode/skills/task-management/router.sh complete my-feature 05 "实现了带有JWT支持的认证模块"
# 检查进度
bash .opencode/skills/task-management/router.sh status my-feature
# 查找下一个任务
bash .opencode/skills/task-management/router.sh next my-feature
验证所有内容
# 验证所有任务
bash .opencode/skills/task-management/router.sh validate
# 验证特定功能
bash .opencode/skills/task-management/router.sh validate my-feature
提示与最佳实践
1. 使用有意义的摘要
标记任务完成时,提供清晰摘要:
# 良好
complete my-feature 05 "实现了带有刷新令牌和错误处理的JWT认证"
# 避免
complete my-feature 05 "完成"
2. 在开始前检查依赖项
# 查看任务依赖项
bash .opencode/skills/task-management/router.sh deps my-feature 07
3. 识别可并行工作
# 查找可并行运行的任务
bash .opencode/skills/task-management/router.sh parallel my-feature
4. 定期验证
# 定期验证以早期发现问题
bash .opencode/skills/task-management/router.sh validate
故障排除
“task-cli.ts 未找到”
确保从项目根目录运行或router.sh可以找到它。
“未找到任务”
运行 status 查看是否已创建任何任务。首先使用TaskManager创建任务。
“依赖项未满足”
使用 deps 检查依赖树以查看阻塞内容。
“验证失败”
运行 validate 查看具体问题,然后检查 .tmp/tasks/ 中的JSON文件。
文件位置
- 技能:
.opencode/skills/task-management/ - 路由器:
.opencode/skills/task-management/router.sh - CLI:
.opencode/skills/task-management/scripts/task-cli.ts - 任务:
.tmp/tasks/(由TaskManager创建) - 文档:
.opencode/skills/task-management/SKILL.md(此文件)
任务管理技能 - 跟踪、管理和验证您的功能实现!