用途
当一份 PRD、规格说明、路线图条目或功能简介需要转化为可执行的 Kandev 任务时使用本技能。目标是创建一张任务图,使被指派的智能体无需了解隐藏上下文即可执行。
前置条件
- 已获得包含所需产品工作的 PRD 文本、文件路径或任务描述。
- 能在创建任务前检查当前项目文件夹。
- 具备 Kandev MCP 工具或 $KANDEV_CLI。优先使用 MCP,因为它支持丰富的任务描述、仓库、工作流 ID、阻塞项和自动启动控制。
工作流程
- 从文件夹中发现项目。
- 从 PRD 中提取需求与风险。
- 在创建任何内容前先草拟任务图。
- 依据质量门槛校验每个任务简介。
- 按规则使用 MCP 或 CLI 提交。
- 留下简洁的交接评论或计划摘要,包含已创建的任务 ID 与未决问题。
第 1 步:发现项目
检查足够的本地证据,使任务简介自包含:
- 先阅读项目说明:AGENTS.md、CLAUDE.md、.agents/、.opencode/ 或等价文件。
- 阅读高信号文档:README*、docs/specs/INDEX.md、附近的规格说明、ADR 和现有计划。
- 从清单文件识别技术栈与命令:package.json、pnpm-workspace.yaml、go.mod、Cargo.toml、pyproject.toml、Makefile、mise.toml、CI 文件。
- 用 git status --short 检查当前仓库状态;不要规划会覆盖无关本地更改的任务。
- 在可用时使用 Kandev 发现能力:列出工作区、工作流、工作流步骤、仓库、智能体、执行器配置和相关任务。
当你能回答以下问题时停止发现:正在更改哪个仓库、使用什么技术栈、用什么测试验证、适用哪些约定、每个切片应由哪些智能体负责。
第 2 步:提取 PRD
创建简洁的工作摘要,包含:
- 目标与用户可见结果。
- 非目标与明确排除项。
- 用户、角色、权限和受影响的界面。
- 验收标准与成功指标。
- 技术约束:API、模式、迁移、后台作业、安全、性能、兼容性、发布。
- 依赖与顺序约束。
- 真正阻塞执行的未决问题。
仅当答案影响外部接口、持久化数据、迁移、破坏性操作、法律/安全策略或不可逆产品决策时,最多提出一个打包的澄清问题。对于常规实现选择,选择合理默认值并记录在相关任务中。
第 3 步:构建任务图
不要创建扁平清单。创建具有明确关系的任务:
- 仅当无法从现有证据界定实现范围时,才创建发现或探针任务。
- 实现任务应适合一个连贯的智能体会话和一次可审查的差异。
- 当回滚或顺序重要时,将迁移或数据任务与 UI/API 工作分开。
- 当测试、QA、审查、文档和发布是真实交付物时,为其创建任务。
- 仅对真正的阻塞项创建人工决策任务。
- 对不得并行运行的工作,通过 blocked_by 或顺序子任务排序建立依赖边。
优先选择更少、更强的任务,而非许多模糊的微任务。当两个任务需要不同仓库、不同负责人、不同验证命令,或一个可独立运行而另一个需等待时,进行拆分。
第 4 步:编写每个任务简介
使用 references/task-blueprint.md 中的必需简介格式。每个任务描述必须包含:
- 被指派智能体否则不会知道的上下文。
- 目标与具体交付物。
- 可能要检查的文件或代码区域。
- 约束与已做出的决策。
- 分步执行指导。
- 验收标准。
- 验证命令。
- 依赖、阻塞项和预期交接输出。
在 MCP 创建的任务中,描述就是子智能体的启动提示。绝不要依赖你的私有推理、当前聊天历史或仅有标题的任务。
第 5 步:创建前校验
若任何门槛失败,拒绝并修订任务图:
- 没有任务缺少验收标准。
- 没有自动启动的任务具有空泛或通用描述。
- 没有任务只说“实现此 PRD”“修复 bug”“添加测试”或“更新文档”。
- 没有任务仅为减少任务数量而跨越无关交付物。
- 当并行执行可能冲突时,没有依赖是隐式的。
- 没有任务需要你尚未解析或有意省略的仓库、工作流、智能体或执行器 ID。
- 没有任务要求智能体做出你本可事先一次性询问的人工/产品决策。
- 没有任务依赖本地未提交更改,除非简介明确标识该风险。
使用 MCP 提交
当 create_task_kandev 可用时使用 MCP。
- 在任务模式下,使用 parent_id: "self" 分解当前任务。
- 对于外部顶层任务创建,省略 parent_id 并提供 repository_id、repository_url 或 local_path。
- 在创建任务前解析模糊的 workspace_id、workflow_id、workflow_step_id、仓库、智能体配置和执行器配置。
- 将完整任务简介作为 description 传入。
- 对积压/暂存任务或需要先人工批准时使用 start_agent: false。
- 创建具有已知阻塞项的任务时,使用 blocked_by 建立依赖边。
- 对有序的兄弟阶段使用 default_child_ordering: "sequential",仅当任务可安全并发运行时使用 "parallel"。
- 对跨仓库工作使用显式 repository 或 branch 字段;否则让子任务继承父仓库上下文。
常见 MCP 创建结构:
{ "parent_id": "self", "title": "Implement account invite API", "description": "<full task brief from references/task-blueprint.md>", "repository_id": "<repo-id-if-needed>", "workflow_id": "<workflow-id-if-needed>", "workflow_step_id": "<start-step-if-needed>", "agent_profile_id": "<worker-or-specialist-profile-if-needed>", "executor_profile_id": "<executor-profile-if-needed>", "start_agent": true, "blocked_by": ["<blocking-task-id>"], "default_child_ordering": "sequential" }
使用 CLI 提交
当作为 Kandev 办公智能体运行且 MCP 变更工具不可用时使用 CLI。
$KANDEV_CLI kandev agents list
$KANDEV_CLI kandev task create --title "Implement account invite API"
--parent "$KANDEV_TASK_ID" --assignee "<agent-id>" --blocked-by "<task-id>"
CLI 注意事项:当前单数 task create 命令支持 title、parent、assignee、priority 和 blocked-by。如果你的 CLI 不支持丰富描述,不要创建自动启动的仅有标题的实现工作。优先使用 MCP、原生办公运行时操作,或创建规划/评论交接并明确说明丰富任务创建被 CLI 界面阻塞。
始终在状态变更前发布进度:
$KANDEV_CLI kandev comment add --body "Created PRD task graph: <task IDs and sequencing>. Remaining question: <none or one blocker>."
阻塞项策略
- 前置发现以避免委托不确定性。
- 自行做出常规技术决策并写入任务简介。
- 仅在需要时,将产品/API/模式问题打包为一个人类决策任务。
- 如果任务被另一任务阻塞,在智能体启动前用 blocked_by 或顺序子任务排序编码。
- 如果发现提交界面无法承载足够上下文,停止并将此报告为阻塞项,而不是启动模糊任务。
示例
参见 references/examples.md,包含:
- 顺利路径的 PRD 分解。
- 带人工决策任务的受控排序。
- 模糊任务反模式与修正后的任务简介。
最终输出
报告:
- 已创建的任务图,包括任务 ID、负责人和依赖。
- 使用的提交方法:MCP、CLI 或阻塞回退。
- 已创建的验证或审查任务。
- 任何未决问题、为何阻塞以及谁负责回答。