taskflow

Coordinate multi-step detached tasks as one durable job with persisted state and revision tracking.

Updated Jun 19, 2026
One-click install
npx skills add https://github.com/AmirulAndalib/Vilvona-AI --skill taskflow-amirulandalib
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: taskflow
Source: https://github.com/AmirulAndalib/Vilvona-AI/tree/main/skills/taskflow
Command: npx skills add https://github.com/AmirulAndalib/Vilvona-AI --skill taskflow-amirulandalib

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Long-running background work often spans multiple prompts, detached subagent runs, and external waits, making it hard to keep one owner context, one resumable state, and one place to inspect progress. TaskFlow solves this by giving multi-step jobs a durable identity with persisted state, wait metadata, and conflict-safe mutations. ## Core Features & Use Cases - Managed flow lifecycle: Create, run child tasks, wait, resume, finish, fail, or cancel a flow through api.runtime.tasks.flow with revision-checked mutations. - Persisted state and waits: Store resumable state in stateJson and structured wait reasons in waitJson so jobs survive restarts and external delays. - Child task linkage: Use runTask(...) to attach detached ACP or subagent tasks to a parent flow and inspect them with getTaskSummary(flowId). - Use Case: An inbox-triage plugin classifies messages in a detached task, waits on a Slack reply, then resumes to finalize and finish — all tracked as one flow with one owner session. ## Quick Start Ask the agent to create a managed TaskFlow for your multi-step background job, run its first detached task, and set the flow to waiting until the external reply arrives.

Frequently Asked Questions about taskflow

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

FAQPage Schema
How do I coordinate multi-step background tasks in one durable job?

Create a managed TaskFlow with createManaged, link child work via runTask, and drive the lifecycle with setWaiting, resume, finish, or cancel. The flow keeps one owner session, one stateJson state bag, and revision-checked mutations.

How do I persist state between steps of a long-running agent task?

Store the minimum resumable state in the flow's stateJson field and pass it forward on each mutation. There is no separate output API; stateJson is the single persisted state bag, and every mutation requires the latest flow revision.

What is the difference between managed and mirrored TaskFlows?

Managed flows are created by your own code when it owns the orchestration, using createManaged and the lifecycle methods. Mirrored flows are one-task flows created automatically by the core runtime for detached ACP or subagent work.

How do I handle concurrent updates to a running TaskFlow?

Every mutating method after creation is revision-checked, so you must pass the latest flow.revision as expectedRevision. If a mutation returns applied: false, re-read the flow and retry with the current revision.

When should I not use TaskFlow for background work?

TaskFlow does not own branching or business logic, so keep decisions in your calling code, Lobster, or acpx. For simple one-shot detached tasks that need no persisted state or waits, the core runtime's mirrored flows are sufficient.