taskflow

Coordinate multi-step detached tasks as durable TaskFlow jobs with persisted state.

1|Updated Jun 9, 2026
One-click install
npx skills add https://github.com/JEROME-PRAKASH-L/openclaw --skill taskflow-jerome-prakash-l
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: taskflow
Source: https://github.com/JEROME-PRAKASH-L/openclaw/tree/main/skills/taskflow
Command: npx skills add https://github.com/JEROME-PRAKASH-L/openclaw --skill taskflow-jerome-prakash-l

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Long-running background work often outlives a single prompt or detached run, leaving no single place to track owner context, progress, waits, and child tasks. TaskFlow gives that work one durable job identity with revision-safe state so it can be inspected, resumed, or cancelled cleanly. ## Core Features & Use Cases - Managed flow lifecycle: Create flows, run linked child tasks, set waiting states, resume, finish, fail, or cancel through api.runtime.tasks.flow. - Persisted state and waits: Store minimal resumable state in stateJson and structured wait metadata in waitJson across restarts. - Revision-checked mutations: Every mutation after creation is conflict-checked via expectedRevision, preventing lost updates. - Use Case: An inbox-triage plugin creates a managed flow, runs a detached classifier subagent, waits on a Slack reply, then resumes and finishes with an end-of-day summary. ## Quick Start Ask the assistant to create a managed TaskFlow for your multi-step background job, linking its detached subagent tasks and persisting state between steps.

Frequently Asked Questions about taskflow

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I orchestrate long-running background tasks in OpenClaw?

Use the TaskFlow runtime at api.runtime.tasks.flow to create a managed flow, link child tasks with runTask, and persist state in stateJson. The flow survives restarts and can be resumed, finished, or cancelled from one place.

How do I pause a task while waiting for a reply or external event?

Call setWaiting with the flow id, expected revision, and a waitJson describing what you are waiting on, such as a Slack reply. When the event arrives, call resume with the latest revision to continue the flow.

What is the difference between managed and mirrored TaskFlows?

Managed flows are created by your own code when it owns the orchestration. Mirrored flows are one-task flows created automatically by the core runtime for detached ACP or subagent work, and this skill mainly concerns managed flows.

Why does a TaskFlow mutation fail with a revision conflict?

Every mutation after creation is revision-checked, so you must pass the latest flow.revision as expectedRevision. After each successful mutation, carry forward the new revision returned in the response before the next call.

When should I not use TaskFlow for orchestration?

TaskFlow owns flow identity, state, and task linkage but not branching or business logic. Keep conditional decisions in your authoring layer such as Lobster or acpx, and use TaskFlow only for durable state and coordination.