FlowForge Workflow Engine
by @kagura-agent
Run structured multi-step workflows via FlowForge engine. Use when user requests step-by-step execution, structured workflows, or when a task needs enforced...
clawhub install agent-flowforgeπ About This Skill
name: flowforge description: "Run structured multi-step workflows via FlowForge engine. Use when user requests step-by-step execution, structured workflows, or when a task needs enforced ordering (e.g., 'follow the workflow', 'use flowforge', 'step by step process'). Helps AI agents execute multi-step tasks without skipping critical steps."
FlowForge Workflow Runner
Execute multi-step workflows defined in YAML files using the FlowForge state machine engine.
Prerequisites
FlowForge CLI must be installed. Check with:
flowforge --version
If the command fails or is not found, run the setup flow in setup.md before proceeding.
My Workflows
| Intent | Workflow | |--------|----------| | *(add your mappings here as you use FlowForge)* | |
Core Loop
1. Start or Resume
# Check for active instances
flowforge activeResume if exists
flowforge statusOr start new
flowforge start
2. Get Action
flowforge run
Returns JSON: { action: { type, node, task, branches, ... } }
3. Execute by Action Type
type: 'spawn' β Node has executor: subagent. MUST spawn a sub-agent:
sessions_spawn(
task: action.task,
mode: "run",
label: "flowforge--"
)
Wait for sub-agent to complete. Collect its output.
β οΈ NEVER execute spawn tasks yourself in the main session. The whole point of subagent nodes is delegation β they run in parallel, unblock the main session, and use the best tool for the job. If you do it yourself, you're blocking the main session and defeating the purpose.
type: 'prompt' β Node needs your direct judgment. Execute the task yourself in the main session. Use this for decision-making, lightweight checks, and coordination β not heavy implementation work.
type: 'complete' β Workflow finished. Report results to the user.
4. Advance
After getting the result (from sub-agent output or your own work):
echo "" | flowforge advance
Or:
flowforge advance --result ""
If the node had branches, include Branch: N in the result so the engine knows which path to take.
5. Repeat
Go back to step 2. Loop until type: 'complete'.
Rules
spawn, use sessions_spawn. Not exec, not a coding CLI, not doing it yourself in the main session.flowforge active to resume.Manual Mode
If you prefer step-by-step control instead of the run/advance JSON loop:
flowforge status # See current task
... execute task ...
flowforge next # Advance (linear node)
flowforge next --branch N # Advance (branching node)
The same spawn rules apply: if the current node has executor: subagent, spawn a sub-agent.
Creating New Workflows
See references/yaml-format.md for the full YAML spec.
name: my-workflow
description: What this workflow does
start: first-nodenodes:
first-node:
task: What to do (detailed instructions for the executor)
executor: subagent # spawn a sub-agent for this node
next: second-node
second-node:
task: Make a decision based on results
# executor defaults to 'inline' β agent does it directly
branches:
- condition: success
next: done
- condition: retry
next: first-node
done:
task: Report results
terminal: true
Node Fields
task (required): Natural language instruction for what to doexecutor: 'subagent' (spawn) or 'inline' (default, do it yourself)next: Single next node for linear flowbranches: Array of {condition, next} for branchingterminal: true for end nodesTroubleshooting
flowforge start flowforge list to see available workflowsflowforge reset to restartβοΈ Configuration
FlowForge CLI must be installed. Check with:
flowforge --version
If the command fails or is not found, run the setup flow in setup.md before proceeding.
π Tips & Best Practices
flowforge start flowforge list to see available workflowsflowforge reset to restartπ Constraints
spawn, use sessions_spawn. Not exec, not a coding CLI, not doing it yourself in the main session.flowforge active to resume.