The Galaxy Workflow Draft Format

Plan, review, and refine a workflow — one step at a time
Lightning talk · GCC 2026
John Chilton
bit.ly/gcc2026draftworkflows

Make “I don’t know yet” first-class

Concrete now
inputs, outputs, step set, producer → consumer edges, branches, when: guards
Deferred explicitly
TODO_* sentinels for tool IDs, versions, and wrapper-defined ports
Intent carried forward
_plan_* fields tell the next step what the source evidence supports.
class: GalaxyWorkflowDraft
inputs:
  reads:
    type: collection
    collection_type: list:paired
steps:
  align_reads:
    tool_id: TODO_mapper
    tool_version: TODO
    _plan_context: "map paired reads to the reference"
    _plan_in:
      reads: "paired input collection"
      reference: "selected genome"
    in:
      reads: reads
      reference: TODO_reference_port
outputs:
  aligned_bam:
    outputSource: align_reads/TODO_bam_output

Validate the plan at every stage

Topology-complete draft: concrete steps solid, deferred wrapper-tier steps as a planned overlayExtracted concrete subset promoted to class GalaxyWorkflow

gxwf draft-validate checks what’s already concrete against real tool schemas and skips what’s still deferred — so every intermediate plan is valid at the resolution it has reached.

The draft tells you what’s next

Because deferral is typed, the tooling reads the plan and picks the next unresolved step — no hunting through YAML for what’s unfinished.

$ gxwf draft-next-step wf.gxwf.yml

→ step 3  filter significant peaks   [deferred]
    _plan_state: keep rows with padj < 0.05
Resolve it, validate, repeat — the format drives the loop instead of you tracking it.

Validate the known knowns and the known unknowns

A workflow plan anyone can read, review, and refine — one step at a time, whether a person or an agent is filling it in.

a plan you can trust, because you can read it
Donald Rumsfeld 'known knowns, known unknowns, unknown unknowns' quote