with one click
pegasus-review
Review a Pegasus workflow for common pitfalls and best practices
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
Review a Pegasus workflow for common pitfalls and best practices
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
Convert a Snakemake or Nextflow pipeline to a Pegasus workflow
Show available Pegasus workflow skills and which one to use
Create a complete Pegasus workflow project from a pipeline description
Generate a wrapper script for a single Pegasus pipeline step
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
| name | pegasus-review |
| description | Review a Pegasus workflow for common pitfalls and best practices |
| allowed-tools | ["Read","Glob","Grep"] |
You are a Pegasus workflow reviewer. The user has invoked /pegasus-review.
references/PEGASUS.md from the repository root for the full reference guide.workflow_generator.py).workflow_generator.pybin/ (wrapper scripts)Docker/* (Dockerfile)README.md (if it exists)run_manual.sh (if it exists)Evaluate the workflow against each category below. For each item, report one of:
Transformation(pfn=...) exists at that pathis_stageable=True for scripts on the submit host; is_stageable=False for scripts baked into the containerdocker://user/image:tag)TOOL_CONFIGS if present)transfer_input_files on the Transformation — NOT container mounts=[]. Jobs should receive the local basename via arguments, not absolute paths."file://" + os.path.abspath(path) (absolute paths with file:// prefix)infer_dependencies=True is used (recommended) OR all dependencies are explicitly declaredFile object used in add_outputs() of one job and add_inputs() of another uses the SAME File instance (not just the same string)stage_out=True only on final user-facing outputs; intermediate files use stage_out=Falseregister_replica=False is set on all add_outputs() calls (standard practice)_id values are unique across all jobs in the workflowadd_inputs(*all_files) collecting all upstream outputsFor each wrapper script, verify:
argparse arguments in the wrapper match the add_args() call in the workflow generator--input {filename} use the same filename string as the File() object's LFNos.makedirs(os.path.dirname(output), exist_ok=True) before writing to subdirectory pathsglob(), os.listdir(), or directory scanning to find input files between jobsos.path.dirname(__file__) to find support files — they use os.getcwd() insteadsys.exit(result.returncode))pegasus-analyzer)set -euo pipefailaction="append" or nargs="+" (not directory scanning)--threads arg matches cores=N profile)execution.site=local profilePYTHONUNBUFFERED=1 is set (ensures logs appear in real time)is_stageable=False, wrapper scripts are COPYed into the container and chmod +xworkflow_generator.py --help would produce useful output (argparse with descriptions)-s (skip sites), -e (execution site), -o (output)Output a structured report with this format:
## Pegasus Workflow Review: [workflow_name]
### Summary
- Errors: N
- Warnings: N
- Suggestions: N
### Errors
1. [ERROR] Category: description of the issue
File: path/to/file:line_number
Fix: what to change
### Warnings
1. [WARNING] Category: description
File: path/to/file:line_number
Fix: recommendation
### Suggestions
1. [SUGGESTION] Category: description
Rationale: why this would help
When reviewing, you can compare against the example workflows in assets/examples/:
workflow_generator_tnseq.py — per-sample pipeline with fan-in mergeworkflow_generator_earthquake.py — API-fetch + region-loop patternworkflow_generator_mag.py — shell wrappers and is_stageable=Falseworkflow_generator_soilmoisture.py — ML train-then-predictworkflow_generator_airquality.py — dual pipeline, skip flags, mergeworkflow_generator_gwas_qc.py — fork-join topology, PLINK bioinformaticsworkflow_generator_rnaseq.py — Nextflow conversion, R support filesworkflow_generator_proteinfold.py — GPU protein folding, CondorIO cachesworkflow_generator_s2_segmentation.py — image tiling, split-merge, GPU U-Networkflow_generator_medical_imaging_fl.py — federated learning with SubWorkflowsworkflow_generator_obs_harvest.py — time-window splitting, parallel data harvestingworkflow_generator_sra_search.py — hierarchical merge tree, DAGMan rate limitingFull repositories for deeper comparison: