/install durable-task-runner
Use this skill to run long work with durable state and deliberate recovery, not like a goldfish.
Core stance
Act as the planner and verifier. Do not rely on conversational memory for active long-running work. Persist the working state to disk early and keep it updated.
Prefer this skill when any of these are true:
- duration will likely exceed a few minutes
- the task has multiple milestones or checkpoints
- the user wants progress reporting without repeated permission prompts
- interruption or reset would be costly
- work may need pause / stop / steer controls
- verification matters before calling the task done
Do not use it for trivial one-shot tasks.
Required baseline
Before substantial execution:
- create a task snapshot with
scripts/task_ctl.py create - record milestones, done criteria, constraints, execution priority, and next step
- keep updates flowing through the helper scripts instead of hand-editing state where practical
Durable task files live under:
state/tasks/\x3Ctask-id>.jsonstate/tasks/\x3Ctask-id>.events.jsonlstate/tasks/\x3Ctask-id>.progress.log
Required behavior
1. Plan first
Create the durable task before real work starts. At minimum capture:
- goal
- done criteria
- constraints
- desired state
- execution priority (
timeortokens) - phase
- milestones
- next step
- reporting cadence
2. Work in bounded slices
Prefer:
- scan -> checkpoint
- extract -> checkpoint
- execute -> checkpoint
- verify -> checkpoint
Each meaningful slice should end with a progress/event update.
3. Report progress without permission theater
For active long work, send informational progress updates:
- on milestone completion
- on phase change
- on blocker/retry/pause/stop/completion
- periodically for longer runs
Do not ask for permission to keep going unless the next action is risky, destructive, external, or ambiguous.
4. Respect control state
If the user pauses, stops, or steers the task:
- record it in durable state/event history
- checkpoint safely
- resume only when the durable state says to
5. Resume deliberately
After interruption or reset:
- prefer the explicit user-facing recovery move: "continue this"
- use
scripts/task_continue.pyto select the most relevant durable task and resume it intelligently - review recent events and verify the last concrete step before any non-trivial follow-through
- use
scripts/task_resume_bootstrap.pyfor restart analysis when you need to inspect the decision surface directly - use
scripts/task_resume_apply.pyonly for clearly low-risk follow-through
The intended model is smart resume after reset, not endless ambient scheduler theater. By default, bootstrap should prefer asking whether to continue after reset/interruption; explicit user intent like "continue this" is what should flip the task back into active execution.
6. Verify before completion
Before marking a task complete:
- verify outputs or milestone results
- record a verification event
- then update
desired_state=completed
Worker-lane model
Use worker lanes only when parallelism is worth the added control surface.
Default roles:
- main agent = planner/verifier
- worker lanes = bounded workers
When using worker lanes:
- keep each worker scope narrow
- avoid overlapping write targets unless coordination is explicit
- require structured worker returns
- run dropped-line checks before ending the turn
Read references/subagent-return-protocol.md when using worker lanes.
What to read next
Read only what the current task needs:
references/quickstart.md— minimal end-to-end usage patternreferences/task-schema.md— snapshot/event structurereferences/control-levels.md— how much process the task earnsreferences/subagent-return-protocol.md— worker return rules
Key scripts
Use these directly:
scripts/task_ctl.py— create/update/show/progress/event/control durable tasksscripts/task_continue.py— smart user-facing "continue this" recovery after reset/interruptionscripts/task_resume_bootstrap.py— analyze resumability after interruptionscripts/task_resume_apply.py— apply low-risk resume follow-throughscripts/task_reconcile.py— reconcile pending/idempotent action statescripts/task_subagent_ctl.py— manage worker-line state and structured returnsscripts/task_subagent_run.py— prepare a ready-to-use worker payloadscripts/task_report.py/scripts/task_ticker.py— render compact statusscripts/task_tick_all.py— run optional due status delivery across eligible running tasksscripts/task_install_tick_cron.sh— optional helper to print/install a current-user cron entry for recurring ticks
Attribution discipline
Keep attribution explicit when ideas or adapted structures come from other skills.
If you borrow more than general inspiration, update ATTRIBUTION.md and note it near the relevant file.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install durable-task-runner - 安装完成后,直接呼叫该 Skill 的名称或使用
/durable-task-runner触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
durable-task-runner 是什么?
Run long-running, multi-step work in OpenClaw without losing it to resets: durable state, progress updates, smart 'continue this' recovery, verification befo... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 326 次。
如何安装 durable-task-runner?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install durable-task-runner」即可一键安装,无需额外配置。
durable-task-runner 是免费的吗?
是的,durable-task-runner 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
durable-task-runner 支持哪些平台?
durable-task-runner 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 durable-task-runner?
由 wonko6x9(@wonko6x9)开发并维护,当前版本 v0.1.6。