Capture actionable user requests as persistent tasks, update task status as work progresses, and keep a shared task store in sync. Use when a user asks an agent to do work, check progress, block a task, complete a task, or manage the Kanban board.
Use this skill for task capture and task lifecycle updates.
{
"activation": {
"anyPhrases": [
"add a task",
"create a task",
"track this task",
"task status",
"mark this done",
"block this task",
"what tasks do we have"
]
},
"movement": {
"target": "desk",
"skipIfAlreadyThere": true
}
}
Also use this skill even when those exact phrases are absent if the latest user message is an actionable work request. If the user asks the agent to do something, that request must become a task before the agent proceeds.
The authoritative task file is:
${OPENCLAW_STATE_DIR}/claw3d/task-manager/tasks.json when OPENCLAW_STATE_DIR is set.~/.openclaw/claw3d/task-manager/tasks.json otherwise.Always treat that file as the shared source of truth for the Kanban board.
todo or move it to in_progress.blocked and record a short reason in notes.done.review.externalThreadId when the request comes from a stable thread or conversation.Each task must include:
idtitledescriptionstatussourcesourceEventIdassignedAgentIdcreatedAtupdatedAtplaybookJobIdrunIdchannelexternalThreadIdlastActivityAtnotesisArchivedisInferredhistorytodo unless work has already begun.in_progress when the agent is actively working.blocked when progress depends on missing input, credentials, approvals, or failures.review when the work is ready for inspection or handoff.done only when the requested work is complete.{
"schemaVersion": 1,
"updatedAt": "2026-03-30T00:00:00.000Z",
"tasks": [
{
"id": "research-mtulsa-com",
"title": "Research mtulsa.com",
"description": "Review mtulsa.com and summarize the site, positioning, and improvement opportunities.",
"status": "in_progress",
"source": "claw3d_manual",
"sourceEventId": null,
"assignedAgentId": "main",
"createdAt": "2026-03-30T00:00:00.000Z",
"updatedAt": "2026-03-30T00:10:00.000Z",
"playbookJobId": null,
"runId": null,
"channel": "telegram",
"externalThreadId": "telegram:direct:6866695577",
"lastActivityAt": "2026-03-30T00:10:00.000Z",
"notes": [],
"isArchived": false,
"isInferred": false,
"history": [
{
"at": "2026-03-30T00:00:00.000Z",
"type": "created",
"note": "Task created.",
"fromStatus": null,
"toStatus": "todo"
},
{
"at": "2026-03-30T00:10:00.000Z",
"type": "status_changed",
"note": null,
"fromStatus": "todo",
"toStatus": "in_progress"
}
]
}
]
}