Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
},
"category": "Developer Tools"
},
{
"name": "galaxy-dev-skills",
"source": {
"source": "local",
"path": "./plugins/galaxy-dev-skills"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Developer Tools"
},
{
"name": "foundry-skills",
"source": {
Expand Down
18 changes: 16 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,27 @@
{
"name": "galaxy-skills",
"source": "./plugins/galaxy-skills",
"description": "Curated Galaxy skills (tool development, Nextflow conversion, collections, hub posts, ...) mirrored from galaxyproject/galaxy-skills.",
"description": "Curated Galaxy skills for running analyses -- connection, MCP tool surface, collections, user-defined tools, reports, reproducibility. Mirrors the skills/ tree of galaxyproject/galaxy-skills.",
"version": "2026.9.16",
"category": "development",
"keywords": [
"galaxy",
"bioinformatics",
"skills"
"skills",
"analysis"
]
},
{
"name": "galaxy-dev-skills",
"source": "./plugins/galaxy-dev-skills",
"description": "Galaxy development skills -- tool wrappers, Nextflow conversion, ToolShed revisions, track hubs, Hub posts. Mirrors the dev-skills/ tree of galaxyproject/galaxy-skills.",
"version": "2026.9.16",
"category": "development",
"keywords": [
"galaxy",
"bioinformatics",
"skills",
"tool-development"
]
},
{
Expand Down
16 changes: 15 additions & 1 deletion .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
{
"name": "galaxy-skills",
"source": "plugins/galaxy-skills",
"description": "Curated Galaxy developer skills mirrored from galaxyproject/galaxy-skills.",
"description": "Curated Galaxy skills for running analyses -- connection, MCP tool surface, collections, user-defined tools, reports, reproducibility. Mirrors the skills/ tree of galaxyproject/galaxy-skills.",
"version": "2026.9.16",
"category": "Developer Tools",
"keywords": [
Expand All @@ -33,6 +33,20 @@
],
"logo": "assets/logo.svg"
},
{
"name": "galaxy-dev-skills",
"source": "plugins/galaxy-dev-skills",
"description": "Galaxy development skills -- tool wrappers, Nextflow conversion, ToolShed revisions, track hubs, Hub posts. Mirrors the dev-skills/ tree of galaxyproject/galaxy-skills.",
"version": "2026.9.16",
"category": "Developer Tools",
"keywords": [
"galaxy",
"bioinformatics",
"skills",
"tool-development"
],
"logo": "assets/logo.svg"
},
{
"name": "foundry-skills",
"source": "plugins/foundry-skills",
Expand Down
2 changes: 1 addition & 1 deletion .github/ci-tools/check-pi-skills.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ for (const dir of pkg.pi.skills) {
}
}
console.log(`${seen.size} skills loaded by Pi from ${pkg.pi.skills.length} roots`);
for (const must of ["galaxy-connect", "tool-dev", "nf-process-to-galaxy-tool", "jupyterlite-galaxy", "discover-shed-tool"]) {
for (const must of ["galaxy-connect", "collection-manipulation", "udt-authoring", "tool-dev", "nf-process-to-galaxy-tool", "jupyterlite-galaxy", "discover-shed-tool"]) {
if (!seen.has(must)) { console.log(`MISSING expected skill ${must}`); problems++; }
}
if (seen.size < MIN_SKILLS) { console.log(`too few skills (${seen.size} < ${MIN_SKILLS})`); problems++; }
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,18 @@ jobs:
with:
python-version: "3.12"
- run: npm install -g @openai/codex && codex --version
- name: Codex plugin-creator validator (galaxy-mcp, foundry-skills)
- name: Codex plugin-creator validator (all plugins)
run: |
pip install pyyaml
base=https://raw.githubusercontent.com/openai/codex/main/codex-rs/skills/src/assets/samples/plugin-creator/scripts
mkdir -p /tmp/codex-validator
for f in validate_plugin.py identifier_validation.py; do curl -fsSL -o /tmp/codex-validator/$f "$base/$f"; done
python3 /tmp/codex-validator/validate_plugin.py plugins/galaxy-mcp
python3 /tmp/codex-validator/validate_plugin.py plugins/foundry-skills
# galaxy-skills fails only on an upstream frontmatter bug (galaxyproject/galaxy-skills#36); report, don't fail
python3 /tmp/codex-validator/validate_plugin.py plugins/galaxy-skills || echo "::warning::galaxy-skills: Codex validator reports upstream frontmatter issue"
for p in plugins/*/; do python3 /tmp/codex-validator/validate_plugin.py "$p"; done
- name: Install from this checkout as a local marketplace
run: |
mkdir -p "$CODEX_HOME"
codex plugin marketplace add "$GITHUB_WORKSPACE"
for p in galaxy-mcp galaxy-skills foundry-skills; do codex plugin add "$p@galaxyproject"; done
for p in galaxy-mcp galaxy-skills galaxy-dev-skills foundry-skills; do codex plugin add "$p@galaxyproject"; done
- name: MCP server registered with forwarded env
run: |
codex mcp list | tee /tmp/mcp.txt
Expand All @@ -72,10 +69,10 @@ jobs:
run: |
git init -q /tmp/ws && cd /tmp/ws
codex debug prompt-input "hello" > /tmp/prompt.json
n=$(grep -oE '(galaxy-skills|foundry-skills|galaxy-mcp):[a-z0-9-]+' /tmp/prompt.json | sort -u | wc -l)
n=$(grep -oE '(galaxy-skills|galaxy-dev-skills|foundry-skills|galaxy-mcp):[a-z0-9-]+' /tmp/prompt.json | sort -u | wc -l)
echo "skills in prompt: $n"
test "$n" -ge 70
for s in galaxy-mcp:galaxy-connect galaxy-skills:tool-dev galaxy-skills:nf-process-to-galaxy-tool foundry-skills:discover-shed-tool; do
for s in galaxy-mcp:galaxy-connect galaxy-skills:udt-authoring galaxy-skills:collection-manipulation galaxy-dev-skills:tool-dev galaxy-dev-skills:nf-process-to-galaxy-tool foundry-skills:discover-shed-tool; do
grep -q "$s" /tmp/prompt.json || { echo "missing $s"; exit 1; }
done

Expand Down
27 changes: 17 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ Plugins and setup guides that connect AI coding agents to

1. **A Galaxy connection** through the [galaxy-mcp](https://github.com/galaxyproject/galaxy-mcp)
MCP server, authenticated with your Galaxy API key.
2. **Curated Galaxy skills** from [galaxyproject/galaxy-skills](https://github.com/galaxyproject/galaxy-skills)
(tool development, user-defined tools, Nextflow conversion, collections,
workflow reports, track hubs, hub posts, MCP usage).
2. **Curated Galaxy skills** from [galaxyproject/galaxy-skills](https://github.com/galaxyproject/galaxy-skills),
split the way upstream splits them: skills for *using* Galaxy (MCP tool
surface, collections, user-defined tools, workflow reports,
reproducibility) and, separately, skills for *building* it (tool wrappers,
Nextflow conversion, ToolShed revisions, track hubs, hub posts).
3. **Galaxy Workflow Foundry skills** from [galaxyproject/foundry](https://github.com/galaxyproject/foundry)
(papers, Nextflow and CWL to validated Galaxy workflows).

Expand All @@ -26,7 +28,7 @@ Every guide starts with [getting a Galaxy API key](docs/galaxy-api-key.md).

## What is in the box

Three plugins live under `plugins/`. Each directory is simultaneously a Claude
Four plugins live under `plugins/`. Each directory is simultaneously a Claude
Code plugin (`.claude-plugin/plugin.json`), a Codex plugin
(`.codex-plugin/plugin.json`), a Cursor plugin (`.cursor-plugin/plugin.json`)
and an Antigravity plugin (`plugin.json`); the root `package.json` exposes the
Expand All @@ -36,12 +38,14 @@ one-click installer for Claude Desktop (MCP server only).
| Plugin | Contents | Origin |
|--------|----------|--------|
| `galaxy-mcp` | MCP server config for `uvx galaxy-mcp` (`mcp/claude.json`, `mcp/pi.json`, `mcp.json` for Cursor, `mcp_config.json` for Antigravity, inline in the Codex manifest) and the `galaxy-connect` skill: set up, verify and troubleshoot the connection | this repo |
| `galaxy-skills` | 16 skills: `tool-dev`, `udt-authoring`, `nf-to-galaxy` (+3 sub-skills), `collection-manipulation`, `galaxy-integration` (+2 sub-skills), `reproduciblify`, `workflow-reports`, `trackhubs`, `update-usegalaxy-tool`, `hub-news-posts`, `tool-selection-diagram` | mirror of galaxyproject/galaxy-skills |
| `galaxy-skills` | 7 skills for *using* Galaxy: `galaxy-integration` (+`jupyterlite`), `galaxy-mcp-reference`, `collection-manipulation`, `udt-authoring`, `workflow-reports`, `reproduciblify` | mirror of galaxyproject/galaxy-skills `skills/` |
| `galaxy-dev-skills` | 9 skills for *building* Galaxy: `tool-dev` (+`tool-selection-diagram`), `nf-to-galaxy` (+3 sub-skills), `update-usegalaxy-tool`, `trackhubs`, `hub-news-posts` | mirror of galaxyproject/galaxy-skills `dev-skills/` |
| `foundry-skills` | 59 cast skills, e.g. `pipeline-nextflow-to-galaxy`, `discover-shed-tool`, `validate-galaxy-workflow`, `author-galaxy-tool-wrapper` | mirror of galaxyproject/foundry `casts/claude/skills` |

Install only the plugins you need. The two skill plugins add many skill
descriptions to the agent's context; `foundry-skills` in particular is only
worth it if you build Galaxy workflows.
Install only the plugins you need. Every skill plugin adds its descriptions to
the agent's context on every session: `galaxy-skills` is the one an analyst
wants, `galaxy-dev-skills` is for people who write tool wrappers, and
`foundry-skills` is only worth it if you build Galaxy workflows.

### How credentials reach the MCP server

Expand All @@ -67,7 +71,8 @@ is why the plugin ships one MCP file per harness:
package.json Pi package manifest (pi.skills, pi.mcp)
plugins/
galaxy-mcp/ MCP config + galaxy-connect skill (hand-written)
galaxy-skills/ vendored copy of galaxyproject/galaxy-skills
galaxy-skills/ vendored copy of galaxy-skills skills/ (using Galaxy)
galaxy-dev-skills/ vendored copy of galaxy-skills dev-skills/ (building Galaxy)
foundry-skills/ vendored copy of galaxyproject/foundry casts/claude/skills
bundles/claude-desktop/ Claude Desktop .mcpb source (uv runtime, no bundled code)
docs/ per-harness guides (source for the Galaxy Hub pages)
Expand All @@ -92,7 +97,9 @@ them is documented to follow git submodules (Pi runs a plain `git clone`),
Claude Code discovers plugin skills only one level deep, Pi stops recursing at a skill root, and Pi can
only install packages that carry a manifest. Vendoring a plain copy is the one
layout that works everywhere; `scripts/gen-manifests.py` lists nested skills
explicitly where a harness needs it. The Antigravity `plugin.json` at each
explicitly where a harness needs it. Each upstream tree is vendored into its own
plugin rather than copying the repo root, which keeps upstream's using-vs-building
split intact instead of registering both trees as one bundle. The Antigravity `plugin.json` at each
plugin root must never carry an agent-plugins.org `$schema`: Codex and Cursor
would then read it as an Agent Plugins manifest instead of their own
(`validate.py` enforces this). The pinned upstream commit is recorded in
Expand Down
6 changes: 3 additions & 3 deletions docs/antigravity.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ diagnosing the connection.
## Use the skills

Run `/skills` to list them, or type `/` followed by the skill name, for example
`/tool-dev`, `/udt-authoring`, `/nf-to-galaxy`, `/galaxy-transform-collection`,
`/galaxy-integration`, `/reproduciblify`, `/pipeline-nextflow-to-galaxy`,
`/discover-shed-tool`. The agent also picks skills up on its own from your
`/galaxy-integration`, `/galaxy-mcp-reference`, `/collection-manipulation`,
`/udt-authoring`, `/reproduciblify`, `/tool-dev`, `/nf-to-galaxy`,
`/pipeline-nextflow-to-galaxy`, `/discover-shed-tool`. The agent also picks skills up on its own from your
request.

Antigravity lists only top-level skills. The `nf-to-galaxy` and
Expand Down
17 changes: 9 additions & 8 deletions docs/claude-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,16 +58,17 @@ Type `/` to see them. Plugin skills are namespaced, for example:
| Invocation | What it does |
|------------|--------------|
| `/galaxy-mcp:galaxy-connect` | Set up / verify / troubleshoot the Galaxy connection |
| `/galaxy-skills:tool-dev` | Create, test and update Galaxy tool wrappers |
| `/galaxy-skills:udt-authoring` | Author user-defined tools (`GalaxyUserTool` YAML) |
| `/galaxy-skills:nf-to-galaxy` | Convert Nextflow processes and workflows |
| `/galaxy-skills:galaxy-integration` | Connect to an instance and choose how to drive it |
| `/galaxy-skills:galaxy-mcp-reference` | The Galaxy MCP tool surface and its pitfalls |
| `/galaxy-skills:collection-manipulation` | Filter, sort and restructure dataset collections |
| `/galaxy-skills:galaxy-integration` | Use the Galaxy MCP tools, JupyterLite and BioBlend well |
| `/galaxy-skills:reproduciblify` | Rebuild a messy history as a clean, extractable analysis |
| `/galaxy-skills:udt-authoring` | Author user-defined tools (`GalaxyUserTool` YAML) |
| `/galaxy-skills:workflow-reports` | Draft workflow report templates |
| `/galaxy-skills:trackhubs` | Publish UCSC track hubs and assembly hubs |
| `/galaxy-skills:update-usegalaxy-tool` | Add or bump ToolShed revisions in usegalaxy-tools |
| `/galaxy-skills:hub-news-posts` | Write Galaxy Hub news posts |
| `/galaxy-skills:reproduciblify` | Rebuild a messy history as a clean, extractable analysis |
| `/galaxy-dev-skills:tool-dev` | Create, test and update Galaxy tool wrappers |
| `/galaxy-dev-skills:nf-to-galaxy` | Convert Nextflow processes and workflows |
| `/galaxy-dev-skills:update-usegalaxy-tool` | Add or bump ToolShed revisions in usegalaxy-tools |
| `/galaxy-dev-skills:trackhubs` | Publish UCSC track hubs and assembly hubs |
| `/galaxy-dev-skills:hub-news-posts` | Write Galaxy Hub news posts |
| `/foundry-skills:pipeline-nextflow-to-galaxy` | End-to-end Nextflow to Galaxy workflow conversion |
| `/foundry-skills:discover-shed-tool` | Find and pin a Tool Shed wrapper |

Expand Down
9 changes: 4 additions & 5 deletions docs/codex.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,10 @@ have Codex diagnose the connection.

## Use the skills

Type `$` or run `/skills` to pick a skill, for example `$tool-dev`,
`$udt-authoring`, `$nf-to-galaxy`, `$collection-manipulation`,
`$galaxy-integration`, `$reproduciblify`, `$pipeline-nextflow-to-galaxy`,
`$discover-shed-tool`. Codex also selects skills implicitly from their
descriptions.
Type `$` or run `/skills` to pick a skill, for example `$galaxy-integration`,
`$galaxy-mcp-reference`, `$collection-manipulation`, `$udt-authoring`,
`$reproduciblify`, and, if you installed `galaxy-dev-skills`, `$tool-dev` and
`$nf-to-galaxy`. Codex also selects skills implicitly from their descriptions.

Codex scans plugin skill directories recursively, so the sub-skills nested
under `nf-to-galaxy` and `galaxy-integration` (for example
Expand Down
8 changes: 4 additions & 4 deletions docs/cursor.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@ the agent through diagnosing the connection.

## Use the skills

Type `/` in Agent chat and pick a skill, for example `/tool-dev`,
`/udt-authoring`, `/nf-to-galaxy`, `/galaxy-transform-collection`,
`/galaxy-integration`, `/reproduciblify`, `/pipeline-nextflow-to-galaxy`,
`/discover-shed-tool`. The agent also applies skills on its own when a request
Type `/` in Agent chat and pick a skill, for example `/galaxy-integration`,
`/galaxy-mcp-reference`, `/collection-manipulation`, `/udt-authoring`,
`/reproduciblify`, `/tool-dev`, `/nf-to-galaxy`,
`/pipeline-nextflow-to-galaxy`, `/discover-shed-tool`. The agent also applies skills on its own when a request
matches a description. Installed skills are listed under **Customize > Skills**.

## Skills without the plugins
Expand Down
7 changes: 4 additions & 3 deletions docs/pi.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,10 @@ through diagnosing the connection.

## Use the skills

Skills register as `/skill:<name>` commands, for example `/skill:tool-dev`,
`/skill:udt-authoring`, `/skill:nf-to-galaxy`, `/skill:collection-manipulation`,
`/skill:galaxy-integration`, `/skill:reproduciblify`,
Skills register as `/skill:<name>` commands, for example
`/skill:galaxy-integration`, `/skill:galaxy-mcp-reference`,
`/skill:collection-manipulation`, `/skill:udt-authoring`,
`/skill:reproduciblify`, `/skill:tool-dev`, `/skill:nf-to-galaxy`,
`/skill:pipeline-nextflow-to-galaxy`, `/skill:discover-shed-tool`. The agent
also loads skills on its own when a request matches a description.

Expand Down
10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@
"./plugins/galaxy-mcp/skills",
"./plugins/galaxy-skills/skills",
"./plugins/galaxy-skills/skills/galaxy-integration/jupyterlite",
"./plugins/galaxy-skills/skills/galaxy-integration/mcp-reference",
"./plugins/galaxy-skills/skills/nf-to-galaxy/nf-pipeline-to-galaxy-workflow",
"./plugins/galaxy-skills/skills/nf-to-galaxy/nf-process-to-galaxy-tool",
"./plugins/galaxy-skills/skills/nf-to-galaxy/nf-subworkflow-to-galaxy-workflow",
"./plugins/galaxy-skills/skills/tool-dev/tool-selection-diagram",
"./plugins/galaxy-dev-skills/skills",
"./plugins/galaxy-dev-skills/skills/nf-to-galaxy/nf-pipeline-to-galaxy-workflow",
"./plugins/galaxy-dev-skills/skills/nf-to-galaxy/nf-process-to-galaxy-tool",
"./plugins/galaxy-dev-skills/skills/nf-to-galaxy/nf-subworkflow-to-galaxy-workflow",
"./plugins/galaxy-dev-skills/skills/tool-dev/tool-selection-diagram",
"./plugins/foundry-skills/skills"
],
"mcp": "./plugins/galaxy-mcp/mcp/pi.json"
Expand Down
25 changes: 25 additions & 0 deletions plugins/galaxy-dev-skills/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "galaxy-dev-skills",
"version": "2026.9.16",
"description": "Galaxy development skills: tool XML wrappers, Nextflow-to-Galaxy conversion, ToolShed revisions in usegalaxy-tools, UCSC track hubs and Galaxy Hub news posts. Mirror of galaxyproject/galaxy-skills (dev-skills/).",
"author": {
"name": "The Galaxy Project",
"url": "https://galaxyproject.org"
},
"homepage": "https://github.com/galaxyproject/galaxy-skills",
"repository": "https://github.com/galaxyproject/agentic-plugins",
"license": "MIT",
"keywords": [
"galaxy",
"bioinformatics",
"skills",
"tool-development",
"nextflow"
],
"skills": [
"./skills/nf-to-galaxy/nf-pipeline-to-galaxy-workflow",
"./skills/nf-to-galaxy/nf-process-to-galaxy-tool",
"./skills/nf-to-galaxy/nf-subworkflow-to-galaxy-workflow",
"./skills/tool-dev/tool-selection-diagram"
]
}
37 changes: 37 additions & 0 deletions plugins/galaxy-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"name": "galaxy-dev-skills",
"version": "2026.9.16",
"description": "Galaxy development skills: tool XML wrappers, Nextflow-to-Galaxy conversion, ToolShed revisions in usegalaxy-tools, UCSC track hubs and Galaxy Hub news posts. Mirror of galaxyproject/galaxy-skills (dev-skills/).",
"author": {
"name": "The Galaxy Project",
"url": "https://galaxyproject.org"
},
"homepage": "https://github.com/galaxyproject/galaxy-skills",
"repository": "https://github.com/galaxyproject/agentic-plugins",
"license": "MIT",
"keywords": [
"galaxy",
"bioinformatics",
"skills",
"tool-development",
"nextflow"
],
"skills": "./skills/",
"interface": {
"displayName": "Galaxy Dev Skills",
"shortDescription": "Skills for building Galaxy tools and workflows",
"longDescription": "Skills for the work that produces Galaxy itself rather than an analysis: writing and testing tool XML wrappers, converting Nextflow processes and pipelines, adding ToolShed revisions to usegalaxy-tools, publishing UCSC track hubs and writing Galaxy Hub news posts. Mirrored from galaxyproject/galaxy-skills.",
"developerName": "The Galaxy Project",
"category": "Developer Tools",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://galaxyproject.org/",
"defaultPrompt": [
"Update the ncbi-datasets Galaxy tool to the latest version.",
"Convert this Nextflow process to a Galaxy tool.",
"Add a ToolShed revision for this tool to usegalaxy-tools."
]
}
}
Loading
Loading