PRD to Kandev Tasks
Use this when a PRD, spec, roadmap item, or feature brief must become actionable Kandev tasks. Your job is to create a task graph that assigned agents can execute without needing your hidden context.
Preconditions
- You have the PRD text, file path, or task description that contains the requested product work.
- You can inspect the current project folder before creating tasks.
- You have either Kandev MCP tools or
$KANDEV_CLI. Prefer MCP when available because it supports rich task descriptions, repositories, workflow IDs, blockers, and auto-start controls.
Workflow
- Discover the project from the folder.
- Extract requirements and risks from the PRD.
- Draft a task graph before creating anything.
- Validate every task brief against the quality gates.
- Submit with MCP or CLI using the rules below.
- Leave a concise handoff comment or plan summary with created task IDs and unresolved questions.
Step 1: Discover the project
Inspect enough local evidence to make task briefs self-contained:
- Read project instructions first:
AGENTS.md, CLAUDE.md, .agents/, .opencode/, or equivalent.
- Read high-signal docs:
README*, docs/specs/INDEX.md, nearby specs, ADRs, and existing plans.
- Identify stack and commands from manifests:
package.json, pnpm-workspace.yaml, go.mod, Cargo.toml, pyproject.toml, Makefile, mise.toml, CI files.
- Check current repo state with
git status --short; do not plan tasks that overwrite unrelated local changes.
- Use Kandev discovery when available: list workspaces, workflows, workflow steps, repositories, agents, executor profiles, and related tasks.
Stop discovery when you can answer: what repo is being changed, what stack is used, what tests verify it, what conventions apply, and which agents should own each slice.
Step 2: Extract the PRD
Create a concise working summary with:
- Goal and user-visible outcome.
- Non-goals and explicit exclusions.
- Users, roles, permissions, and affected surfaces.
- Acceptance criteria and success metrics.
- Technical constraints: APIs, schemas, migrations, background jobs, security, performance, compatibility, rollout.
- Dependencies and sequencing constraints.
- Open questions that truly block execution.
Ask at most one bundled clarifying question only when the answer affects external interfaces, persisted data, migrations, destructive actions, legal/security policy, or an irreversible product decision. For routine implementation choices, choose a reasonable default and document it in the relevant task.
Step 3: Build A Task Graph
Do not create a flat checklist. Create tasks with explicit relationships:
- Discovery or spike tasks only when implementation cannot be scoped from existing evidence.
- Implementation tasks sized for one coherent agent session and one reviewable diff.
- Migration or data tasks separated from UI/API work when rollback or ordering matters.
- Test, QA, review, documentation, and release tasks when they are real deliverables.
- Human decision tasks only for genuine blockers.
- Dependency edges through
blocked_by or sequential child ordering for work that must not run in parallel.
Prefer fewer, stronger tasks over many vague microtasks. Split when two tasks need different repositories, different owners, different verification commands, or one can run independently while the other waits.
Step 4: Write Each Task Brief
Use references/task-blueprint.md for the required brief format. Every task description must include:
- Context the assigned agent will not otherwise know.
- Goal and concrete deliverables.
- Likely files or code areas to inspect.
- Constraints and decisions already made.
- Step-by-step execution guidance.
- Acceptance criteria.
- Verification commands.
- Dependencies, blockers, and expected handoff output.
The description is the sub-agent's launch prompt in MCP-created tasks. Never rely on your private reasoning, current chat history, or a title-only task.
Step 5: Validate Before Creating
Reject and revise the task graph if any gate fails:
- No task lacks acceptance criteria.
- No auto-started task has an empty or generic description.
- No task says only "implement this PRD", "fix bugs", "add tests", or "update docs".
- No task spans unrelated deliverables just to reduce task count.
- No dependency is implicit when parallel execution could conflict.
- No task requires a repo, workflow, agent, or executor ID you have not resolved or intentionally omitted.
- No task asks an agent to make a human/product decision that you could have asked once up front.
- No task depends on local uncommitted changes unless the brief explicitly identifies that risk.
Submit With MCP
Use MCP when create_task_kandev is available.
- In task mode, use
parent_id: "self" for decomposition of the current task.
- For external top-level task creation, omit
parent_id and provide repository_id, repository_url, or local_path.
- Resolve ambiguous
workspace_id, workflow_id, workflow_step_id, repositories, agent profiles, and executor profiles before creating tasks.
- Pass the full task brief as
description.
- Use
start_agent: false for backlog/staged tasks or when human approval is needed first.
- Use
blocked_by for dependency edges when creating tasks with known blockers.
- Use
default_child_ordering: "sequential" for ordered sibling phases and "parallel" only when tasks are safe to run concurrently.
- Use explicit repository or branch fields for cross-repo work; otherwise let subtasks inherit parent repository context.
Common MCP creation shape:
{
"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"
}
Submit With CLI
Use CLI when running as a Kandev office agent and MCP mutation tools are unavailable.
$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 caveat: the current singular task create command supports title, parent, assignee, priority, and blocked-by. If your CLI does not support rich descriptions, do not create auto-started title-only implementation work. Prefer MCP, a native office runtime action, or create a planning/comment handoff and explicitly note that rich task creation is blocked by the CLI surface.
Always post progress before status changes:
$KANDEV_CLI kandev comment add --body "Created PRD task graph: <task IDs and sequencing>. Remaining question: <none or one blocker>."
Blocker Policy
- Front-load discovery to avoid delegating uncertainty.
- Make routine technical decisions yourself and write them into task briefs.
- Bundle product/API/schema questions into one human decision task only when required.
- If a task is blocked by another task, encode it with
blocked_by or sequential child ordering before agents start.
- If you discover that the submission surface cannot carry enough context, stop and report that as the blocker instead of launching vague tasks.
Examples
See references/examples.md for:
- Happy-path PRD decomposition.
- Guarded sequencing with a human decision task.
- Vague-task anti-patterns and corrected task briefs.
Final Output
Report:
- Task graph created, including task IDs, owners, and dependencies.
- Submission method used: MCP, CLI, or blocked fallback.
- Verification or review tasks created.
- Any open question, why it blocks, and who owns the answer.
1---2name: prd-to-kandev-tasks3description: Break PRDs, specs, or feature briefs into Kandev task graphs and submit them through MCP or agentctl. Use when asked to decompose product work, create Kandev tasks, slice PRDs into agent-ready work, or submit task graphs without blocking assigned agents.4license: MIT5---67# PRD to Kandev Tasks89Use this when a PRD, spec, roadmap item, or feature brief must become actionable Kandev tasks. Your job is to create a task graph that assigned agents can execute without needing your hidden context.1011## Preconditions1213- You have the PRD text, file path, or task description that contains the requested product work.14- You can inspect the current project folder before creating tasks.15- You have either Kandev MCP tools or `$KANDEV_CLI`. Prefer MCP when available because it supports rich task descriptions, repositories, workflow IDs, blockers, and auto-start controls.1617## Workflow18191. Discover the project from the folder.202. Extract requirements and risks from the PRD.213. Draft a task graph before creating anything.224. Validate every task brief against the quality gates.235. Submit with MCP or CLI using the rules below.246. Leave a concise handoff comment or plan summary with created task IDs and unresolved questions.2526## Step 1: Discover the project2728Inspect enough local evidence to make task briefs self-contained:2930- Read project instructions first: `AGENTS.md`, `CLAUDE.md`, `.agents/`, `.opencode/`, or equivalent.31- Read high-signal docs: `README*`, `docs/specs/INDEX.md`, nearby specs, ADRs, and existing plans.32- Identify stack and commands from manifests: `package.json`, `pnpm-workspace.yaml`, `go.mod`, `Cargo.toml`, `pyproject.toml`, `Makefile`, `mise.toml`, CI files.33- Check current repo state with `git status --short`; do not plan tasks that overwrite unrelated local changes.34- Use Kandev discovery when available: list workspaces, workflows, workflow steps, repositories, agents, executor profiles, and related tasks.3536Stop discovery when you can answer: what repo is being changed, what stack is used, what tests verify it, what conventions apply, and which agents should own each slice.3738## Step 2: Extract the PRD3940Create a concise working summary with:4142- Goal and user-visible outcome.43- Non-goals and explicit exclusions.44- Users, roles, permissions, and affected surfaces.45- Acceptance criteria and success metrics.46- Technical constraints: APIs, schemas, migrations, background jobs, security, performance, compatibility, rollout.47- Dependencies and sequencing constraints.48- Open questions that truly block execution.4950Ask at most one bundled clarifying question only when the answer affects external interfaces, persisted data, migrations, destructive actions, legal/security policy, or an irreversible product decision. For routine implementation choices, choose a reasonable default and document it in the relevant task.5152## Step 3: Build A Task Graph5354Do not create a flat checklist. Create tasks with explicit relationships:5556- Discovery or spike tasks only when implementation cannot be scoped from existing evidence.57- Implementation tasks sized for one coherent agent session and one reviewable diff.58- Migration or data tasks separated from UI/API work when rollback or ordering matters.59- Test, QA, review, documentation, and release tasks when they are real deliverables.60- Human decision tasks only for genuine blockers.61- Dependency edges through `blocked_by` or sequential child ordering for work that must not run in parallel.6263Prefer fewer, stronger tasks over many vague microtasks. Split when two tasks need different repositories, different owners, different verification commands, or one can run independently while the other waits.6465## Step 4: Write Each Task Brief6667Use `references/task-blueprint.md` for the required brief format. Every task description must include:6869- Context the assigned agent will not otherwise know.70- Goal and concrete deliverables.71- Likely files or code areas to inspect.72- Constraints and decisions already made.73- Step-by-step execution guidance.74- Acceptance criteria.75- Verification commands.76- Dependencies, blockers, and expected handoff output.7778The description is the sub-agent's launch prompt in MCP-created tasks. Never rely on your private reasoning, current chat history, or a title-only task.7980## Step 5: Validate Before Creating8182Reject and revise the task graph if any gate fails:8384- No task lacks acceptance criteria.85- No auto-started task has an empty or generic description.86- No task says only "implement this PRD", "fix bugs", "add tests", or "update docs".87- No task spans unrelated deliverables just to reduce task count.88- No dependency is implicit when parallel execution could conflict.89- No task requires a repo, workflow, agent, or executor ID you have not resolved or intentionally omitted.90- No task asks an agent to make a human/product decision that you could have asked once up front.91- No task depends on local uncommitted changes unless the brief explicitly identifies that risk.9293## Submit With MCP9495Use MCP when `create_task_kandev` is available.9697- In task mode, use `parent_id: "self"` for decomposition of the current task.98- For external top-level task creation, omit `parent_id` and provide `repository_id`, `repository_url`, or `local_path`.99- Resolve ambiguous `workspace_id`, `workflow_id`, `workflow_step_id`, repositories, agent profiles, and executor profiles before creating tasks.100- Pass the full task brief as `description`.101- Use `start_agent: false` for backlog/staged tasks or when human approval is needed first.102- Use `blocked_by` for dependency edges when creating tasks with known blockers.103- Use `default_child_ordering: "sequential"` for ordered sibling phases and `"parallel"` only when tasks are safe to run concurrently.104- Use explicit repository or branch fields for cross-repo work; otherwise let subtasks inherit parent repository context.105106Common MCP creation shape:107108```json109{110 "parent_id": "self",111 "title": "Implement account invite API",112 "description": "<full task brief from references/task-blueprint.md>",113 "repository_id": "<repo-id-if-needed>",114 "workflow_id": "<workflow-id-if-needed>",115 "workflow_step_id": "<start-step-if-needed>",116 "agent_profile_id": "<worker-or-specialist-profile-if-needed>",117 "executor_profile_id": "<executor-profile-if-needed>",118 "start_agent": true,119 "blocked_by": ["<blocking-task-id>"],120 "default_child_ordering": "sequential"121}122```123124## Submit With CLI125126Use CLI when running as a Kandev office agent and MCP mutation tools are unavailable.127128```bash129$KANDEV_CLI kandev agents list130$KANDEV_CLI kandev task create --title "Implement account invite API" \131 --parent "$KANDEV_TASK_ID" --assignee "<agent-id>" --blocked-by "<task-id>"132```133134CLI caveat: the current singular `task create` command supports title, parent, assignee, priority, and blocked-by. If your CLI does not support rich descriptions, do not create auto-started title-only implementation work. Prefer MCP, a native office runtime action, or create a planning/comment handoff and explicitly note that rich task creation is blocked by the CLI surface.135136Always post progress before status changes:137138```bash139$KANDEV_CLI kandev comment add --body "Created PRD task graph: <task IDs and sequencing>. Remaining question: <none or one blocker>."140```141142## Blocker Policy143144- Front-load discovery to avoid delegating uncertainty.145- Make routine technical decisions yourself and write them into task briefs.146- Bundle product/API/schema questions into one human decision task only when required.147- If a task is blocked by another task, encode it with `blocked_by` or sequential child ordering before agents start.148- If you discover that the submission surface cannot carry enough context, stop and report that as the blocker instead of launching vague tasks.149150## Examples151152See `references/examples.md` for:153154- Happy-path PRD decomposition.155- Guarded sequencing with a human decision task.156- Vague-task anti-patterns and corrected task briefs.157158## Final Output159160Report:161162- Task graph created, including task IDs, owners, and dependencies.163- Submission method used: MCP, CLI, or blocked fallback.164- Verification or review tasks created.165- Any open question, why it blocks, and who owns the answer.