Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
openclaw-agent-workflow
A lightweight JIRA-like workflow skill for OpenClaw agents. Prevents the three most common failure modes in multi-step agent tasks:
- Silent disappearance — agent stops responding with no explanation
- Status opacity — user has no idea what the agent is doing or how far along it is
- Lost context on failure — when something breaks, nobody knows what was tried or where it stopped
The Problem
When an OpenClaw agent handles a complex, multi-step task by dispatching sub-agents, things can go wrong silently:
User: "Migrate the database schema and update all dependent services"
Agent: "On it!"
...
[10 minutes of silence]
...
Agent: "Done!" ← Did it actually finish? Was anything skipped?
Or worse:
Agent: "On it!"
...
[silence forever]
...
User: "Hello?"
This skill solves that by giving agents a shared protocol for state transitions, progress reporting, and timeout handling.
How It Works
Every task moves through defined states with evidence requirements:
planned → dispatching → in_progress → reviewing → done
↓
blocked → (resolved) → in_progress
Worker agents report back at key moments (accepted, milestone, blocked, done). If 10 minutes pass without a report, the main agent marks the task as launch_failure and alerts the user.
A live CURRENT_STATE.md file tracks all active, completed, blocked, and failed tasks.
Installation
Copy this skill into your OpenClaw project:
cp -r openclaw-agent-workflow/ ~/.openclaw/skills/
Or reference it directly in your agent's skill path. Then include it in your agent configuration:
{
"skills": ["openclaw-agent-workflow"]
}
Usage
Starting a tracked task
When the main agent receives a multi-step task, it should:
- Create a task entry in
CURRENT_STATE.mdwith stateplanned - Dispatch to a worker agent with the task ID
- Wait for the worker's
acceptedreport before proceeding - Forward
milestoneandblockedreports to the user - Verify the
donereport before marking the task complete
Worker agent behavior
Workers follow the reporting protocol in SKILL.md. Every worker must:
- Send
acceptedwithin 10 minutes of receiving a task - Send
milestoneafter each significant step - Send
blockedimmediately when stuck - Send
donewith a full summary when finished
Example interaction
User: Refactor the auth module and update all callers
[TASK T-001] Dispatched → worker agent
Plan:
- Audit current auth module
- Define new interface
- Rewrite module
- Update callers
- Run tests
[TASK T-001] Progress: Auth module audit complete (12 callers found)
Next: Defining new interface
[TASK T-001] Progress: New interface defined
Next: Rewriting module
[TASK T-001] BLOCKED
Reason: CallerX uses internal auth state not exposed by new interface
Tried: Checked all public methods, reviewed git history
Waiting on: Decision — expose the state or refactor CallerX separately
User: Refactor CallerX separately
[TASK T-001] Progress: Blocker resolved, resuming module rewrite
...
[TASK T-001] DONE
Summary: Auth module refactored, 12 callers updated, CallerX refactored separately
Artifacts: src/auth/index.ts, src/auth/interface.ts, tests/auth.test.ts (+11 files)
Files
| File | Purpose |
|---|---|
SKILL.md |
Full protocol definition — states, evidence rules, timeouts, report formats |
openclaw.plugin.json |
Skill registration metadata |
CURRENT_STATE.md |
Live task state (auto-managed by agents, created on first use) |
examples/task-tracking-example.md |
Complete worked example |
See Also
SKILL.md— full protocol specificationexamples/task-tracking-example.md— end-to-end worked example with all report types