Skip to main content
← Back to list
01Issue
FeatureShippedSwamp Club
Assigneesstack72

Relationships

#1446 Docs: document guard and resume --from in workflows reference

Opened by stack72 · 7/28/2026· Shipped 7/28/2026

Summary

The workflows reference at content/manual/reference/workflows.md needs updating for two recently shipped features:

  1. guard field (#1437, shipped in #1993) — CEL expression on workflow steps for idempotent execution. Truthy skips the step, falsy executes. Supports data truthiness, value comparisons, and model.method() calls.

  2. resume --from (#1444) — re-enters a failed workflow's DAG at a specified step. Guards decide which steps re-execute. Targets template names for forEach steps.

What to document

Guard

  • New optional guard field on step definitions
  • Three patterns:
    • Data truthiness: ${{ data.latest("model", "resource").attributes.field }}
    • Value comparison: ${{ data.latest("model", "resource").attributes.batchId == inputs.batchId }}
    • Method call: ${{ model.method("model", "check-method", { key: value }) }}
  • Guard evaluation semantics: truthy = skip, falsy = execute, absent = always execute
  • forEach compatibility: guard can reference self.* for per-iteration checks
  • Completion marker pattern: write a "done" resource as the last operation, guard checks for it
  • The step_skipped event's reason: "guarded" vs reason: "dependency"

Resume --from

  • New --from <step> flag on swamp workflow resume
  • Works with failed runs (not just gate-suspended runs)
  • --from targets step template names as written in the YAML
  • forEach steps: platform re-expands all iterations, guards decide what runs
  • Safety: completed steps are not re-run to avoid repeating irreversible actions
  • Example flow: failure → fix → resume → guards skip completed steps → failed step re-runs

Suggested placement

These are closely related and could be a new section like "Idempotent execution and recovery" in the workflows reference, covering guard, completion markers, and resume --from as a cohesive story.

  • #1437 — guard field (shipped in #1993)
  • #1444 — resume --from
  • #1430 — parent issue (writeResource atomicity design)
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 6 MOREREVIEW+ 3 MOREPR_MERGED+ 1 MORENOTIFICATION_SKIPPED

Shipped

7/28/2026, 6:27:07 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack727/28/2026, 5:47:08 PM

Sign in to post a ripple.