
galaxy-workflow-development
Expert in Galaxy workflow development, testing, and IWC best practices. Create, validate, and optimize .ga workflows following Intergalactic Workflow Commission standards.
- Installs
- 47
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/delphine-l/claude_global --skill galaxy-workflow-development- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads galaxy-workflow-development automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Galaxy Workflow Development Expert
You are an expert in Galaxy workflow development, testing, and best practices based on the Intergalactic Workflow Commission (IWC) standards.
Core Knowledge
Galaxy Workflow Format (.ga files)
Galaxy workflows are JSON files with .ga extension containing:
Required Top-Level Metadata
{
"a_galaxy_workflow": "true",
"annotation": "Detailed description of workflow purpose and functionality",
"creator": [
{
"class": "Person",
"identifier": "https://orcid.org/0000-0002-xxxx-xxxx",
"name": "Author Name"
},
{
"class": "Organization",
"name": "IWC",
"url": "https://github.com/galaxyproject/iwc"
}
],
"format-version": "0.1",
"license": "MIT",
"release": "0.1.1",
"name": "Human-Readable Workflow Name",
"tags": ["domain-tag", "method-tag"],
"uuid": "unique-identifier",
"version": 1
}
Workflow Steps Structure
Steps are numbered sequentially and define:
-
Input Datasets
type: "data_input"- Single file inputtype: "data_collection_input"- Collection of files- Must have descriptive
annotationandlabel
-
Input Parameters
type: "parameter_input"- Types: text, boolean, integer, float, color
- Used for user-configurable settings
-
Tool Steps
type: "tool"tool_idandcontent_idreference Galaxy ToolShedtool_shed_repositoryincludes owner, name, changeset_revisioninput_connectionslink to previous step outputstool_statecontains parameter values (JSON-encoded)
-
Workflow Outputs
- Marked with
workflow_outputsarray - Each output has a
label(human-readable name) - Can hide intermediate outputs with
hide: true
- Marked with
Advanced Features
- Comments:
type: "text"steps for documentation - Frames: Visual grouping with color-coded boxes
- Reports: Embedded Markdown templates using Galaxy report syntax
- Post-job actions: Rename, tag, or hide outputs
- Conditional execution:
whenfield for conditional steps - Parameter tools:
compose_text_param,map_param_value,pick_value,param_value_from_file
Conditional Logic Limitations
Galaxy parameter tools have limited comparison capabilities:
- Map parameter value: Maps discrete values to other values via lookup table. Cannot do range comparisons (e.g., "if > X").
- Calculate numeric parameter value: Evaluates arithmetic expressions but outputs a numeric value, not a Galaxy boolean for
whenconditionals. - For numeric comparisons (e.g., "is genome size > 10Gb?"): Use an awk step on a parameter file:
awk '{if ($1 >= 10000000000) print "true"; else print "false"}', then feed the text output to amap_param_valueorpick_valueto drive conditional branches. - Empty-or-non-empty as boolean: A
map_param_valuestep with empty mappings andunmapped: {"on_unmapped": "input"}passes the input value through. Foroutput_param_type: boolean, the result isFalsefor empty strings andTruefor any non-empty value — useful as awhengate on optional filter parameters without writing explicit mappings.
Key Rules
Naming Conventions (STRICT)
- Folder/file names: lowercase, dashes only (no underscores, no spaces)
- Workflow name (in .ga): Human-readable, can use spaces and capitalization
- Input/output labels: Human-readable, descriptive, no technical abbreviations
- Compound adjectives: Use singular form (e.g., "short-read sequencing", not "short-reads sequencing")
Workflow Design Principles
- Generic Workflows: No hardcoded sample names; use parameter inputs for user-configurable values
- Clear Naming: Descriptive labels; explain expected format in annotation
- Rich Annotations: Detailed workflow/step/parameter annotations
- Complete Metadata: Creator with ORCID, IWC organization, MIT license, semantic versioning
- Pinned Tool Versions: Exact version +
changeset_revision; document in CHANGELOG
Testing Essentials
- Test file naming:
workflow-name.ga->workflow-name-tests.yml - Minimum one test case per workflow
- Files < 100KB in
test-data/; files >= 100KB on Zenodo with SHA-1 hash - Use strictest possible assertions; prefer exact file comparison
- Always use
workflow_lintfor.gafiles (notlint, which is for tool XML)
Planemo Commands (Quick Reference)
# Lint workflow — argument is the workflow DIRECTORY (planemo walks it for .ga files)
# NOT the .ga filename. Passing a file fails with "ValueError: Directory not found".
planemo workflow_lint --iwc .
# Test on live instance (PREFERRED)
planemo test --fail_fast \
--galaxy_url https://usegalaxy.org \
--galaxy_user_key "$API_KEY" \
workflow.ga
# Test locally (slower, use only when needed)
planemo test workflow.ga
# Re-test against an existing successful invocation (FAST — seconds, not minutes)
# Use this whenever ONLY the test YAML was edited and the workflow itself
# already ran successfully. Skip the full planemo test re-run.
planemo workflow_test_on_invocation \
--galaxy_url https://usegalaxy.org \
--galaxy_user_key "$API_KEY" \
--test_index 1 \
workflow-tests.yml <INVOCATION_ID>
IMPORTANT: Always prefer testing against live Galaxy instances over local Galaxy.
Note: -v/--verbose is a planemo-level flag and must appear before the subcommand: planemo -v test ..., not planemo test -v .... The latter fails with "Invalid value for 'TOOL_PATH'".
Decision rule — which planemo command to use:
- Workflow logic (.ga) changed →
planemo test(full re-run, 10-30+ min) - Only assertions in tests YAML changed AND a recent successful invocation exists →
planemo workflow_test_on_invocation <invocation_id>(re-verifies the test YAML against cached invocation outputs in seconds, no recompute)
Extract the invocation ID from prior planemo test output: look for Invocation <ID> in the progress bar of the top-level invocation panel (the outer panel, not nested subworkflow panels). See testing-guide.md for full workflow_test_on_invocation usage including failure-debugging via MCP.
Common Issues (Quick Reference)
| Issue | Solution |
|---|---|
| Test "output not found" | Check output label matches exactly (case-sensitive) |
| Large test files in repo | Upload to Zenodo, reference by URL with hash |
| Workflow not generic | Replace hardcoded values with parameter inputs |
| Tool update breaks workflow | Pin exact version in changeset_revision |
| Tests pass locally, fail in CI | Check reference data availability on CVMFS |
| Re-exported .ga loses release/annotation/tags | Galaxy's "Download workflow" wipes top-level annotation, release, tags, and sometimes shortens the ORCID identifier. Re-apply IWC metadata after every re-export; consider a script to re-stamp before commit. |
| Planemo test keeps returning old error message | Stale stored workflow on Galaxy. Delete it via DELETE /api/workflows/<id> before re-running. See testing-guide.md Troubleshooting. |
| Lint warnings | Run planemo workflow_lint --iwc . and address each |
Directory not found from workflow_lint | Pass the workflow directory (.), not a .ga filename — the lint command takes a path it walks for workflow files |
| Cannot push to planemo-autoupdate branches | Edit via GitHub web UI, or push to own fork |
| Tool version revert no effect | Disable use_cached_job in Galaxy preferences |
Version Bumping
When updating a workflow:
- Update
releasefield in .ga file - Add entry to CHANGELOG.md
- Update tests if needed
- Commit with descriptive message
Deployment Pipeline
After PR merge: Tests pass -> RO-Crate metadata generated -> Deployed to iwc-workflows -> Registered on Dockstore -> Registered on WorkflowHub -> Auto-installed on usegalaxy.* servers
Export Workflow Construction
Key Rules
-
Workflow output labels cannot use variable interpolation —
${Species Name}only works inRenameDatasetAction, not inworkflow_outputs[].label. Use static text for output labels. -
Optional dataset inputs need a
pick_valueintermediary — Optional inputs cannot be plugged directly into non-optional tool inputs likeexport_remote. Route them through apick_valuestep (pick_style: first) with a fallback dataset, and usewhen: $(inputs.when)on the export step to gate execution. -
Input box positioning controls form order — Galaxy renders inputs upper-left to lower-right. Place inputs requiring manual action (text params, booleans, optional datasets) in the upper-left so they appear first in the form. Tag-filtered auto-populated inputs go further right/down to reduce missed settings.
Export Workflow Structure Pattern
A typical VGP export workflow follows this structure:
- Parameter inputs: Species Name, Assembly ID, Date, Destination (directory_uri)
- Boolean inputs: Conditional flags (e.g., "Upload Annotations?", "Compress files?")
- Data inputs: Tagged datasets from upstream workflows (auto-populated)
- Path creation subworkflow: Builds base paths (root, tracks/, pretextmap/, alignments/, evaluation/)
- Compose text param steps: Build full file paths from subdir + Assembly ID + infix + Date + extension
- Compress steps (conditional): Optional fasta compression via pick_value
- Export remote steps: Grouped by category (main files, evaluation, conditional annotations)
Supporting References
Detailed guidance is split into the following files in this directory:
- iwc-standards.md - IWC repository structure, required files (.dockstore.yml, README, CHANGELOG), workflow categories, review checklist, IWC submission preparation (release numbers, runtime parameter cleanup)
- testing-guide.md - Complete testing reference: test file structure, assertion types/syntax, Planemo lint errors, remote testing, test data organization, synthetic data generation, troubleshooting tool failures, adjusting assertions
- workflow-patterns.md - Common workflow patterns, tool version migration in .ga files, ToolShed API for version discovery, tool update verification, writing methods sections for publications
- galaxy-workflow-viz/ - Generate Galaxy-branded SVG workflow diagrams (bezier connections, node cards, terminal positioning) for documentation, READMEs, and landing pages. See
galaxy-workflow-viz/SKILL.mdandgalaxy-workflow-viz/examples/for style reference.
Related Skills
- galaxy-tool-wrapping - Creating Galaxy tools that can be used in workflows
- galaxy-automation - BioBlend & Planemo foundation for workflow testing
- conda-recipe - Building conda packages for workflow tool dependencies
Applying This Knowledge
When helping with Galaxy workflow development:
- Creating new workflows: Follow IWC structure and naming conventions
- Writing tests: Use appropriate assertions and test data management
- Reviewing workflows: Apply the review checklist systematically
- Debugging: Check lint output and test logs carefully
- Updating workflows: Maintain CHANGELOG and version properly
- Documentation: Write clear, detailed annotations and READMEs
Always prioritize:
- Reproducibility: Pin versions, hash test data
- Usability: Human-readable names, clear documentation
- Quality: Comprehensive tests, generic design
- Standards: Follow IWC conventions strictly
FAQ
What does the galaxy-workflow-development skill do?
Expert in Galaxy workflow development, testing, and IWC best practices. Create, validate, and optimize .ga workflows following Intergalactic Workflow Commission standards.
How do I install galaxy-workflow-development?
Run npx skills add https://github.com/delphine-l/claude_global --skill galaxy-workflow-development in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/galaxy-workflow-development/ (personal) or .claude/skills/galaxy-workflow-development/ (project).
Which AI agents can use galaxy-workflow-development?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is galaxy-workflow-development safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains galaxy-workflow-development?
It is published by delphine-l in delphine-l/claude_global. It has 47 recorded installs.
More from delphine-l/claude_global
token-efficiency
delphine-l/claude_global
Token optimization best practices for cost-effective Claude Code usage. Automatically applies efficient file reading, command execution, and output handling strategies. Includes model selection guidance (Opus for learning, Sonnet for development/debugging). Prefers bash commands over reading files.
bioinformatics-fundamentals
delphine-l/claude_global
Core bioinformatics concepts including SAM/BAM format, AGP genome assembly format, sequencing technologies (Hi-C, HiFi, Illumina), quality metrics, and common data processing patterns. Essential for debugging alignment, filtering, pairing issues, and AGP coordinate validation.
folder-organization
delphine-l/claude_global
Open the skill to read its SKILL.md instructions.
bioinformatics-visualization
delphine-l/claude_global
Open the skill to read its SKILL.md instructions.
obsidian
delphine-l/claude_global
Integration with Obsidian vault for managing notes, tasks, and knowledge when working with Claude. Supports adding notes, creating tasks, and organizing project documentation. Updated with 2025-2026 best practices including MOCs, properties, practical organization patterns, and Obsidian CLI (1.12+).
jupyter-notebook-analysis
delphine-l/claude_global
Best practices for creating comprehensive Jupyter notebook data analyses with statistical rigor, outlier handling, and publication-quality visualizations. Includes Claude API image size helpers.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。