Skip to main content

Task Tools

Tools for creating, claiming, and managing the task lifecycle.

Task States

backlog ──► todo ──► in_progress ──► in_review ──► completed
▲ │ │
│ ▼ ▼
├─── failed ◄┘ todo (bounce)
├─── blocked
├─── cancelled
└─── skipped

Priorities: urgent | high | medium | low | none


core_create_task

Create a new task. Returns the created task including its assigned task_id.

ParameterTypeRequiredDescription
project_keystringProject identifier
run_idUUIDRun that created this task
agent_idUUIDCreating agent
titlestringTask title (max 512 chars)
task_idUUIDExplicit task ID (generated if omitted)
parent_idUUIDParent task for hierarchical grouping
depends_onUUID[]Task IDs this task depends on (max 256)
detailstringFull markdown description (max 8000 chars)
statusstringInitial status (default: backlog)
prioritystringurgent, high, medium, low, or none (default)
order_indexnumberSort order within a list
assigned_toUUIDAgent to assign immediately
meta_jsonobjectArbitrary metadata

core_get_task

Retrieve a task by ID including current status, lock state, and metadata.

ParameterTypeRequiredDescription
task_idUUIDTask UUID

core_claim_task

Acquire an advisory lock on a task. Safe to call concurrently — only one agent wins. Does not change task status.

ParameterTypeRequiredDescription
task_idUUIDTask to claim
agent_idUUIDClaiming agent
notestringOptional claim note (max 4000)

Returns { claimed: true } on success, { claimed: false } if already locked by another agent.


core_claim_and_start_task

Atomic claim + advisory lock + transition to in_progress. Preferred over separate core_claim_task + core_transition_task calls.

ParameterTypeRequiredDescription
task_idUUIDTask to claim and start
agent_idUUIDClaiming agent
claim_notestringNote for the claim event (max 4000)
start_notestringNote for the status transition (max 4000)

core_transition_task

Move a task to a new lifecycle state. Enforces the state machine — invalid transitions are rejected.

ParameterTypeRequiredDescription
task_idUUIDTask to transition
agent_idUUIDAgent performing the transition
to_statusstringTarget status (see state machine above)
expected_from_statusstringGuard: fail if current status differs
notestringTransition note appended to history (max 4000)
release_lockbooleanRelease advisory lock alongside transition (default: false)

Valid transitions by source state:

FromAllowed transitions
backlogtodo, cancelled, skipped
todoin_progress, blocked, cancelled, skipped
in_progressin_review, todo, failed, blocked, cancelled
in_reviewcompleted, todo, in_review, failed, cancelled
completedtodo
failedtodo, backlog, cancelled
blockedtodo, backlog, cancelled
cancelledbacklog, todo
skippedbacklog, todo

core_update_task

Update task metadata, priority, assignment, or order. Does not change status (use core_transition_task for that).

ParameterTypeRequiredDescription
task_idUUIDTask to update
agent_idUUIDAgent making the update
assigned_toUUID/nullReassign or unassign (null to unassign)
prioritystringNew priority
order_indexnumber/nullNew sort position
meta_jsonobjectMetadata to merge or replace
merge_metabooleanMerge meta_json into existing (default: true). False replaces.
notestringUpdate note (max 4000)

core_list_tasks

Query tasks with filtering and full-text title search.

ParameterTypeRequiredDescription
project_keystringProject identifier
statusstring[]Filter to one or more statuses
prioritystring[]Filter to one or more priorities
assigned_toUUIDFilter by assignee
title_searchstringSubstring search on task title (max 256)
limitnumberMaximum results (default: 20, max: 1000)

core_release_task_lock

Release an advisory lock on a task. Use when an agent finishes or yields without transitioning state.

ParameterTypeRequiredDescription
task_idUUIDTask to unlock
agent_idUUIDAgent releasing the lock
notestringRelease note (max 4000)

core_recover_task

Force a stuck task into a recoverable state. Used for tasks that failed, timed out, or have orphaned locks. Bypasses normal transition guards.

ParameterTypeRequiredDescription
task_idUUIDTask to recover
agent_idUUIDAgent performing recovery
to_statusstringRecovery target: todo, failed, or in_review
notestringRecovery reason (required, max 4000)

post_task_message

Append a message to a task's thread. Used for inter-agent communication, inline notes, and structured log entries.

ParameterTypeRequiredDescription
project_keystringProject identifier
task_idUUIDTarget task
agent_idUUIDPosting agent
bodystringMessage content (max 8000 chars)
kindstringmessage (default), note, or log
tagsstring[]Searchable tags (max 32)
metaobjectArbitrary metadata

list_task_messages

List messages on a task thread in chronological order.

ParameterTypeRequiredDescription
project_keystringProject identifier
task_idUUIDTarget task
limitnumberMaximum results (default: 50, max: 200)