Skip to main content
← Back to list
01Issue
BugShippedSwamp CLI
Assigneesstack72

Relationships

#1460 docs: working-with-data tutorial uses removed depends_on step key, blocking the tutorial

Opened by jasonbarnett · 7/29/2026· Shipped 7/29/2026

Page: https://swamp-club.com/manual/tutorials/working-with-data Section: "replace its contents with..." under swamp workflow edit info-pipeline swamp version: 20260727.193526.0-sha.03dabbb5 (verified against main @ d62b42b1)

The workflow YAML the tutorial tells the reader to paste cannot be loaded by current swamp, so the tutorial dead-ends at swamp workflow validate info-pipeline / swamp workflow run info-pipeline. There are two separate problems in the summarise step, and they surface one at a time, so a reader fixing the first one immediately hits the second.

1. depends_on is not a valid step key

The tutorial uses the old snake_case key:

      - name: summarise
        depends_on:
          - gather

Current schema rejects it outright (unknown-key rejection, swamp-club#1240):

Unknown key 'depends_on' on step 'summarise'. Did you mean 'dependsOn'?
Valid step keys: name, description, task, forEach, dependsOn, weight,
concurrency, dataOutputOverrides, allowFailure, target, labels, platform,
queueTimeout, guard

2. Even as dependsOn, a list of bare step names is rejected

Renaming the key alone is not enough — dependency entries must be objects, and condition is required (not defaulted):

dependsOn entries must be objects, not strings.

Replace:
  dependsOn:
    - gather

With:
  dependsOn:
    - step: gather
      condition:
        type: succeeded

Supplying - step: gather without a condition also fails:

jobs[0].steps[1].dependsOn[0].condition: Invalid input: expected object, received undefined

Working YAML

This is the smallest edit to the tutorial snippet that parses:

id: <keep the id from the generated file>
name: info-pipeline
description: Gather system info and summarise it
jobs:
  - name: main
    description: Run both models in sequence
    steps:
      - name: gather
        description: Collect system information
        task:
          type: model_method
          modelIdOrName: system-info
          methodName: execute
      - name: summarise
        description: Summarise the gathered data
        dependsOn:
          - step: gather
            condition:
              type: succeeded
        task:
          type: model_method
          modelIdOrName: summariser
          methodName: execute

Also needs updating

The prose immediately after the snippet refers to "the depends_on: [gather] clause on the summarise step" — same rename, and the inline-list form is no longer valid either.

How this was verified

Each variant above was parsed against WorkflowSchema from src/domain/workflows/workflow.ts (via StepSchema / StepDependencyFieldSchema in src/domain/workflows/step.ts) on main @ d62b42b1. Only the "Working YAML" variant parses; the error strings quoted above are verbatim schema output.

The rest of the tutorial checks out — swamp workflow create does emit a file containing a UUID id (so "keep the id from the generated file" is correct), and methodName: execute is right for command/shell models.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 3 MOREPR_MERGED+ 1 MORECONTRIBUTOR_NOTIFIED

Shipped

7/29/2026, 8:42:43 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack727/29/2026, 8:04:41 PM
Editable. Press Enter to edit.

stack72 commented 7/29/2026, 8:42:51 PM

Thanks @jasonbarnett for reporting this! The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.