wdl-task-starter
Use this skill to author and run a minimal WDL task and workflow with miniwdl. Do not use it for Cromwell-specific backends or large imported workflow graphs.
SKILL.mdskills/reproducible-workflows/wdl-task-starter/SKILL.md
GitHubPurpose
Run a local WDL task end to end and use it as a starter for task and workflow authoring.
When to use
- You need a verified OpenWDL-style local example.
- You want a small WDL task or workflow starter with JSON inputs.
When not to use
- You need cloud backends or Cromwell execution.
- You need advanced imports or large workflow graphs.
Inputs
- A WDL document
- A Cromwell-style JSON input object
- Optional run directory and summary path
Outputs
- A JSON run summary with the output JSON emitted by
miniwdl - The rendered
greeting.txtfile inside the run directory
Requirements
slurm/envs/workflow-languagesminiwdludockerinside the same prefix for daemonless local execution
Procedure
- Run
python3 skills/reproducible-workflows/wdl-task-starter/scripts/run_wdl_hello.py --name Ada --workspace scratch/wdl/workspace --summary-out scratch/wdl/summary.json. - Inspect the WDL outputs JSON and the materialized
greeting.txt; the wrapper configures a daemonless localminiwdlexecution path for this toy task. - Use
examples/hello.wdlandexamples/hello-inputs.jsonas the base for new tasks or workflows.
Validation
miniwdl runexits successfully.- The output JSON includes greeting text and a file output.
Failure modes and fixes
- Missing runtime: verify
slurm/envs/workflow-languagesexists andpython -m WDL --versionworks. - Missing daemonless backend: verify
slurm/envs/workflow-languages/bin/udocker --versionworks. - Input mismatch: run
miniwdl run --jsonto inspect the required input object shape.
Safety and limits
- This skill runs a local toy workflow only.
- Extend runtime blocks carefully before using external containers or large file inputs.