with one click
pegasus-wrapper
Generate a wrapper script for a single Pegasus pipeline step
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Generate a wrapper script for a single Pegasus pipeline step
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | pegasus-wrapper |
| description | Generate a wrapper script for a single Pegasus pipeline step |
| allowed-tools | ["Read","Glob","Grep","Write","Edit"] |
You are a Pegasus wrapper script generator. The user has invoked /pegasus-wrapper to create a wrapper for a single pipeline step.
references/PEGASUS.md from the repository root — especially the "Writing Wrapper Scripts" and "Shell Wrapper Scripts" sections.assets/templates/wrapper_template.py" and assets/templates/wrapper_template.sh as starting points.Ask the user (skip questions they've already answered):
samtools sort, bwa mem, a Python library, an API)action="append" or nargs="+")Based on user answers, read the closest existing example:
| Pattern | Reference |
|---|---|
| Subprocess calling a CLI tool | examples/wrapper_python_example.py |
| API fetch (requests) | examples/workflow_generator_earthquake.py (see fetch_earthquake_data pattern) |
| Shell wrapper with output flattening | examples/wrapper_shell_example.sh |
| ML training wrapper | examples/workflow_generator_soilmoisture.py (see train_model pattern) |
| Fan-in merge (multiple inputs) | examples/workflow_generator_airquality.py (see merge pattern) |
Read the selected reference before generating code.
Start from assets/templates/wrapper_template.py and customize:
workflow_generator.py will pass via add_args()os.makedirs: Create output subdirectories before writing (any path with /)subprocess.run() for CLI tools, or call Python libraries directlysys.exit(result.returncode) after subprocesslogging module with logger.info() for inputs, commands, and resultsStart from assets/templates/wrapper_template.sh and customize:
set -euo pipefail: Always includecase statement to extract named argumentsunset DISPLAY, xvfb-run fallbackworkflow_generator.py passes in add_args(). Show the user both sides.glob(), os.listdir(), list.files(), or find to discover input files. Accept them explicitly via arguments.os.getcwd(): If the wrapper needs a support file (R script, JAR), find it with os.path.join(os.getcwd(), "filename") — NOT relative to __file__./ needs os.makedirs(os.path.dirname(output), exist_ok=True).pegasus-analyzer.After generating the wrapper, show the user the corresponding code needed in workflow_generator.py:
Transformation() registration with correct pfn, is_stageable, memory, and coresJob() with add_args(), add_inputs(), add_outputs() that matches the wrapper's argparserc.add_replica() for R scripts, JARs, etc.This ensures the wrapper and workflow generator stay in sync.
For complete wrapper scripts beyond the examples:
Convert a Snakemake or Nextflow pipeline to a Pegasus workflow
Show available Pegasus workflow skills and which one to use
Review a Pegasus workflow for common pitfalls and best practices
Create a complete Pegasus workflow project from a pipeline description
Generate a Kiso experiment.yml configuration file for running Pegasus workflows or shell experiments on cloud/edge/local testbeds. Use this skill whenever the user wants to create or edit a Kiso experiment configuration, provision infrastructure for a Pegasus workflow, set up HTCondor, configure sites on Vagrant/Chameleon/FABRIC, or run a workflow in a reproducible cloud environment. Trigger on: "create experiment.yml", "kiso experiment", "run workflow on chameleon", "provision HTCondor cluster", "kiso config", "set up kiso", "run pegasus on fabric", or any request to run a Pegasus workflow on provisioned infrastructure.
Generate a Dockerfile for a Pegasus workflow's tool stack