BioBlend and Planemo expertise for Galaxy workflow automation. Galaxy API usage, workflow invocation, status checking, error handling, batch processing, and dataset management. Essential for any Galaxy automation project.
npx claudepluginhub joshuarweaver/cascade-ai-ml-engineering --plugin delphine-l-claude-globalThis skill uses the workspace's default tool permissions.
This skill provides expert knowledge for automating Galaxy workflows using **BioBlend** (Python Galaxy API library) and **Planemo** (Galaxy workflow testing and execution tool).
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
This skill provides expert knowledge for automating Galaxy workflows using BioBlend (Python Galaxy API library) and Planemo (Galaxy workflow testing and execution tool).
Use this skill when:
This skill is NOT project-specific - it's useful for ANY Galaxy automation project.
Detailed reference material is split into separate files:
Store in environment variables:
import os
api_key = os.environ.get('GALAXY_API_KEY')
if not api_key:
raise ValueError("GALAXY_API_KEY environment variable not set")
gi = GalaxyInstance(url, api_key)
Mask in logs:
def mask_api_key(key):
"""Mask API key for display"""
if len(key) <= 8:
return '*' * len(key)
return f"{key[:4]}{'*' * (len(key) - 8)}{key[-4:]}"
masked_key = mask_api_key(api_key)
print(f"Using API key: {masked_key}")
Always quote paths in shell commands:
# Good - handles spaces
command = f'planemo run "{workflow_path}" "{job_yaml}"'
# Bad - breaks with spaces
command = f'planemo run {workflow_path} {job_yaml}'
Planemo failures vs Galaxy failures
Concurrent uploads
--simultaneous_uploads vs sequentialDataset state checking
History name conflicts
Return code interpretation
os.system() shifts exit codes (exit 1 -> return 256)return_code >> 8 to get actual exit codeInvocation ID recovery
--test_output_json with planemoWhen using the Galaxy MCP tools (mcp__Galaxy__*), connect at the start of each session.
MCP tools cannot read shell environment variables directly. Resolve them via Bash first:
# Resolve env vars
echo "$GXYVGP" # Galaxy instance URL
echo "$MAINKEY" # API key
Then pass the resolved values:
mcp__Galaxy__connect(url="<resolved_url>", api_key="<resolved_key>")
| Env Var | Instance | Notes |
|---|---|---|
$GXYVGP | https://vgp.usegalaxy.org | VGP production, user: delphinel (admin) |
$MAINKEY | API key for VGP instance | Used with $GXYVGP |