← Back to Plugins
Tools

Structured Workflow

tontoko By tontoko 👁 17 views ▲ 0 votes

Task-list driven workflow plugin for OpenClaw, inspired by oh-my-opencode ULW. Built on TaskFlow with decision policies, permission modes, and forced continuation.

GitHub

Install

openclaw plugins install @tontoko/openclaw-structured-workflow

Configuration Example

{
  "plugins": {
    "entries": {
      "structured-workflow": {
        "enabled": true,
        "config": {
          "permissionMode": "bypass",
          "forceContinuation": true,
          "deliberateDefaultAgents": [],
          "deliberateMaxRounds": 3,
          "cancelKeywords": ["/stop", "ใ‚„ใ‚ใฆ", "cancel", "stop"]
        }
      }
    }
  }
}

README

# OpenClaw Structured Workflow Plugin

Task-list driven workflow plugin for [OpenClaw](https://github.com/openclaw/openclaw), inspired by [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode)'s ULW (Ultrawork) mode.

Built on OpenClaw's **TaskFlow** runtime for durability across gateway restarts.

## Features

- **Structured Task Decomposition**: Automatically breaks complex instructions into phased task lists (research โ†’ design โ†’ test โ†’ implement โ†’ test โ†’ verify)
- **Decision Policies**: Each task can have a different decision level:
  - `auto` โ€” Agent proceeds independently
  - `deliberate` โ€” Dispatch discussion to multiple agents (configurable)
  - `confirm` โ€” Requires human approval before proceeding
  - `notify` โ€” Execute then report result
- **Permission Modes** (Claude Code-style):
  - `bypass` โ€” No confirmation needed, full speed ahead
  - `allow-after-first` โ€” Confirm once per operation type, then auto
  - `confirm-each` โ€” Confirm every step
- **Forced Continuation**: Via `before_prompt_build` hook โ€” incomplete tasks trigger continuation instructions. Cancel keywords always take priority.
- **Durable State**: TaskFlow `stateJson` persists task lists, agent assignments, and session links across restarts
- **Task โ†” Agent โ†” Session Tracking**: Each task links to the executing agent and session for full traceability
- **Normal Conversation Friendly**: Flow detection passes simple messages through without creating task flows

## Install

```bash
openclaw plugins install @tontoko/openclaw-structured-workflow
```

## Configuration

Add to your `openclaw.json`:

```json
{
  "plugins": {
    "entries": {
      "structured-workflow": {
        "enabled": true,
        "config": {
          "permissionMode": "bypass",
          "forceContinuation": true,
          "deliberateDefaultAgents": [],
          "deliberateMaxRounds": 3,
          "cancelKeywords": ["/stop", "ใ‚„ใ‚ใฆ", "cancel", "stop"]
        }
      }
    }
  }
}
```

## Architecture

```
User Instruction
  โ†“
before_prompt_build: Flow Detection
  โ”œโ”€ Simple message โ†’ pass through (no flow created)
  โ””โ”€ Complex task โ†’ TaskFlow.createManaged()
       โ†“
  Task List Generation (each task with decisionPolicy)
       โ†“
  Execution Loop:
    โ”œโ”€ auto โ†’ dispatch to target agent โ†’ await completion
    โ”œโ”€ deliberate โ†’ dispatch discussion to multiple agents โ†’ await consensus
    โ”œโ”€ confirm โ†’ setWaiting() โ†’ await human response โ†’ resume()
    โ””โ”€ notify โ†’ execute + send result notification
       โ†“
  Force Continuation Check (before_prompt_build):
    โ”œโ”€ All complete โ†’ finish()
    โ”œโ”€ Incomplete + no cancel keyword โ†’ inject continuation prompt
    โ””โ”€ Cancel keyword detected โ†’ allow stop
```

## CLI

```bash
openclaw tasks flow list          # List active workflows
openclaw tasks flow show <id>     # Inspect a workflow with all tasks and agent links
```

## License

MIT
tools

Comments

Sign in to leave a comment

Loading comments...