Composable multi-step workflows that chain dobbe commands, conditions, and failure policies into repeatable pipelines.
dobbe workflow <subcommand> [OPTIONS]
| Subcommand | Description |
|---|---|
create |
Create a new workflow definition |
run |
Execute a workflow |
list |
List all saved workflows |
show |
Display a workflow definition |
delete |
Remove a workflow |
logs |
Show execution logs for a workflow |
Create a new workflow definition, optionally from a built-in template.
dobbe workflow create <name> [--from-template <template>] [--description <desc>]
| Argument | Type | Description |
|---|---|---|
name |
str |
Unique name for the workflow |
| Option | Type | Default | Description |
|---|---|---|---|
--from-template / -t |
str |
None |
Use a built-in template (see below) |
--description / -d |
str |
"" |
Workflow description |
| Template | Description | Steps |
|---|---|---|
vuln-scan-and-fix |
Scan for vulnerabilities, then resolve critical ones | scan (command) -> check-scan (condition) -> resolve (command) |
review-digest |
Generate a PR review digest and post summaries | digest (command) -> post (command) |
If --from-template is provided, the workflow is pre-populated with the template’s steps. The --description flag overrides the template’s default description.
Workflows are saved to ~/.dobbe/workflows.toml. If no template is used, the workflow is created with zero steps – edit the TOML file to add steps manually.
Execute a saved workflow. Steps run sequentially; failure handling is governed by the on-failure policy.
dobbe workflow run <name> [--dry-run] [--on-failure <policy>] [--quiet]
| Argument | Type | Description |
|---|---|---|
name |
str |
Name of the workflow to run |
| Option | Type | Default | Description |
|---|---|---|---|
--dry-run |
bool |
False |
Simulate execution without running steps |
--on-failure |
OnFailure |
workflow default | Override the on-failure policy: stop, continue, notify |
--quiet / -q |
bool |
False |
Minimal output (no per-step progress) |
┌──────────────────────────────────────┐
│ dobbe workflow run <name> │
└──────────────────┬───────────────────┘
│
v
┌──────────────────────────────────────┐
│ Load workflow from │
│ ~/.dobbe/workflows.toml │
└──────────────────┬───────────────────┘
│
┌─────┴──────┐
│ Found? │
└─────┬──────┘
yes | | no
v v
│ Exit with error
│
v
┌──────────────────────────────────────┐
│ Apply --on-failure override │
│ (if specified, persists to TOML) │
└──────────────────┬───────────────────┘
│
v
┌──────────────────────────────────────┐
│ For each step in workflow: │
│ │
│ ┌─────────────────────────────┐ │
│ │ COMMAND step: │ │
│ │ Execute dobbe command │ │
│ │ Record duration + result │ │
│ ├─────────────────────────────┤ │
│ │ CONDITION step: │ │
│ │ Evaluate condition expr │ │
│ │ e.g. previous.success │ │
│ └────────────┬────────────────┘ │
│ │ │
│ ┌─────┴──────┐ │
│ │ Success? │ │
│ └─────┬──────┘ │
│ yes | | no │
│ v v │
│ Next step On-failure policy: │
│ ┌───────────────┐ │
│ │ stop: halt│ │
│ │ continue: next│ │
│ │ notify: warn │ │
│ │ then halt │ │
│ └───────────────┘ │
└──────────────────┬───────────────────┘
│
v
┌──────────────────────────────────────┐
│ Print summary: │
│ passed/total steps, duration │
│ Exit 0 on success, 1 on failure │
└──────────────────────────────────────┘
List all saved workflows. Displays name, description, step count, on-failure policy, and creation date.
dobbe workflow list
No options.
Display the full definition of a workflow, including all steps and their configuration.
dobbe workflow show <name>
| Argument | Type | Description |
|---|---|---|
name |
str |
Name of the workflow to display |
Remove a saved workflow from ~/.dobbe/workflows.toml.
dobbe workflow delete <name> [--force]
| Argument | Type | Description |
|---|---|---|
name |
str |
Name of the workflow to delete |
| Option | Type | Default | Description |
|---|---|---|---|
--force / -f |
bool |
False |
Skip confirmation prompt |
Show the execution history for a workflow.
dobbe workflow logs <name> [--last N]
| Argument | Type | Description |
|---|---|---|
name |
str |
Workflow name |
| Option | Type | Default | Description |
|---|---|---|---|
--last / -n |
int |
10 |
Number of recent runs to show |
Output columns: Started, Status, Steps (passed/total), Duration, Error.
Each step in a workflow has a step_type that determines how it is executed.
| Step Type | Value | Description |
|---|---|---|
COMMAND |
command |
Run a dobbe command (e.g. vuln scan, review digest) |
CONDITION |
condition |
Evaluate a condition expression (e.g. previous.success == True) |
Steps also support a per-step on_failure override and a timeout (default 600 seconds).
The on-failure policy controls what happens when a step fails. It can be set at the workflow level (applies to all steps) or overridden per step.
| Policy | Behavior |
|---|---|
stop |
Halt the workflow immediately on failure (default) |
continue |
Log the failure and proceed to the next step |
notify |
Warn about the failure, then halt |
The --on-failure flag on workflow run overrides the workflow-level policy and persists the change to the TOML file.
Workflows are persisted in ~/.dobbe/workflows.toml. Each workflow definition includes:
name – unique identifierdescription – human-readable summarysteps – ordered list of step definitionscreated_at – UTC timestampon_failure – workflow-level failure policyExecution logs are stored separately and retrieved via workflow logs.
dobbe workflow create my-security-pipeline \
--from-template vuln-scan-and-fix \
--description "Nightly vulnerability scan and auto-fix"
dobbe workflow create custom-pipeline --description "My custom pipeline"
# Then edit ~/.dobbe/workflows.toml to add steps
dobbe workflow run my-security-pipeline
dobbe workflow run my-security-pipeline --dry-run
dobbe workflow run my-security-pipeline --on-failure continue
dobbe workflow run my-security-pipeline --quiet
dobbe workflow list
dobbe workflow logs my-security-pipeline --last 20
dobbe workflow delete my-security-pipeline --force