Skip to content

pm_task

Vanguard

The pm_task tool is the workhorse of the Valdr MCP surface. It covers the full task lifecycle — creation, search, status transitions, checklists, comments, and event history. Every agent session runs against a task, so this is the most-called tool in most workflows.

Most actions look up tasks by taskKey (e.g., "PROJ-123"). plan accepts either taskId or taskKey.

Actions

create, get, plan, get_prompt, update, delete, search, change_status, checklist_toggle, checklist_lookup, event_list, comment_create, comment_list, comment_delete, help


create

Create a new task under a project.

Parameters

FieldTypeRequiredNotes
projectKeystringYesProject this task belongs to (e.g., "PROJ")
titlestringYesShort task title
keystringNoCustom task key — auto-generated if omitted
descriptionstringNoMarkdown description with acceptance criteria
typestringNotask (default), bug, story, epic, or spike
statusstringNobacklog (default), to_do, in_progress, in_review, verified, done
sprintIdstringNoLink to a sprint at creation
pointsnumberNoStory points
prioritynumberNo1–5
assigneestringNoAgent handle
reporterstringNoAgent handle
metadataobjectNo{ tags?, links?, checklists? }

Example

pm_task {
  action: "create",
  projectKey: "MYAPI",
  title: "Add rate limiting to /auth endpoints",
  description: "Implement per-IP rate limiting on signup and login endpoints.",
  type: "task",
  status: "to_do",
  priority: 2,
  assignee: "sigrid"
}

get

Fetch a task by key.

Parameters

FieldTypeRequired
taskKeystringYes

plan

Get the linked plan for a task (if one exists). Plans come from the vmp planner.

Parameters

FieldTypeRequiredNotes
taskIdstringConditionalTask ULID. Required if taskKey is omitted.
taskKeystringConditionalAlternative lookup. Required if taskId is omitted.

get_prompt

Build the task-specific system prompt that agents receive when launched against this task. Includes description, acceptance criteria, linked requirements, and context.

Parameters

FieldTypeRequired
taskKeystringYes

This is useful for agents that want to see what an executor would receive before launching.


update

Update task fields. Pass only the fields you want to change.

Parameters

FieldTypeRequired
taskKeystringYes
descriptionstringNo
assigneestringNo
reporterstringNo
pointsnumber | nullNo
prioritynumber | nullNo
metadataobjectNo

Use change_status to change status. Use pm_sprint.link_task to change sprint membership.


delete

Delete a task permanently. This action is reserved for intentional cleanup, not normal lifecycle movement. Fetch the task first with get and confirm the key, project, sprint, and checklist state before deleting it.

delete is permanent. Use it only after a confirming pm_task { action: "get" } shows you are removing the intended task. To move work through the lifecycle, use change_status instead.

Parameters

FieldTypeRequired
taskKeystringYes

Example

pm_task { action: "get", taskKey: "MYAPI-42" }
pm_task { action: "delete", taskKey: "MYAPI-42" }

search

Search tasks within a project.

Parameters

FieldTypeRequiredNotes
projectKeystringYesScope to a specific project
querystringNoSearch text
statusstringNoFilter by status
sprintIdstringNoFilter by sprint
limitnumberNoResult cap

Example

pm_task {
  action: "search",
  projectKey: "MYAPI",
  status: "in_progress",
  limit: 20
}

change_status

Transition a task through the status lifecycle: backlog → to_do → in_progress → in_review → verified → done.

Parameters

FieldTypeRequiredNotes
taskKeystringYes
tostringYesTarget status
reasonstringNoReason for the change

Example

pm_task {
  action: "change_status",
  taskKey: "MYAPI-42",
  to: "in_review",
  reason: "Implementation complete, ready for code review"
}

checklist_toggle

Toggle an individual checklist item on a task.

Parameters

FieldTypeRequired
taskKeystringYes
checklistIdstringYes
itemIdstringYes
checkedbooleanYes

checklist_lookup

Look up checklist names, items, or templates.

Parameters

FieldTypeRequiredNotes
modestringNonames (default), items, or template
querystringNoSearch query
checklistNamestringConditionalRequired for template mode
limitnumberNoResult cap

Example

pm_task {
  action: "checklist_lookup",
  mode: "template",
  checklistName: "code-review"
}

event_list

Fetch the audit trail of events for a task — status changes, assignee changes, comments, session launches, and more.

Parameters

FieldTypeRequiredNotes
taskKeystringYes
limitnumberNoDefault 25, max 100

comment_create / comment_list / comment_delete

Manage task and task-review comments. Comments can be scoped to a review or assignment for threaded discussion.

comment_create

FieldTypeRequiredNotes
taskKeystringYes
bodystringYes
reviewIdstringNoScope to a specific review
assignmentIdstringNoScope to a reviewer assignment
parentCommentIdstringNoFor threaded replies
actorHandlestringNoWho is commenting

comment_list

FieldTypeRequiredNotes
taskKeystringYes
reviewIdstringNoFilter by review
assignmentIdstringNoFilter by assignment

comment_delete

FieldTypeRequiredNotes
taskKeystringYes
commentIdstringYes
actorHandlestringNoWho is deleting

Deleting a comment also deletes its replies.


help

pm_task { action: "help" }

help returns structured, read-only guidance that agents can inspect before calling task actions.

FieldContents
actionsCurrent accepted action names, including delete, checklist_lookup, comment_delete, and help
whenToUseOne-line guidance for core actions such as get, get_prompt, change_status, checklist_toggle, and comment_create
examplesRepresentative calls, including fetching a task, moving it to review, and toggling a checklist item
cautionsGuardrails such as fetch-before-update, fresh clientRequestId values, and using sprint link/unlink operations instead of task updates
compatibilityStability notes for the additive help payload and MCP error behavior

Use this payload as the live reference when building agents that need to discover the task surface before mutating work.

Related