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
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ Follow the procedure below and use the artifact/reference sections as the runtim

## Required Tools

- **`planemo`** (planemo). `uv tool install planemo==0.75.44` (or `pip install planemo==0.75.44`).
Ephemeral run: `uvx --from planemo==0.75.44 planemo`.
- **`planemo`** (planemo). `uv tool install planemo==0.75.45` (or `pip install planemo==0.75.45`).
Ephemeral run: `uvx --from planemo==0.75.45 planemo`.
Check: `planemo --version`.
Docs: https://planemo.readthedocs.io/
Bundled reference: `references/cli/planemo.md`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,21 @@
"path": "content/molds/convert-nfcore-module-to-galaxy-tool/index.md",
"revision": 4,
"content_hash": "b620de36e245302737d9a82171fb2847ee214466915dbb28392a0ac02bc6df68",
"commit": "dca2ac888332ee86d0cdcb5aabef94804fa16c54"
"commit": "39555fca3fd95bf7db8b0191e97135ce20c77cb2"
},
"cast_at": "2026-07-20T16:07:57.008Z",
"cast_date": "2026-06-19",
"cast_revision": 1,
"cast_at": "2026-07-20T18:41:11.132Z",
"cast_date": "2026-07-20",
"cast_revision": 2,
"cast_history": [
{
"rev": 1,
"date": "2026-06-19",
"note": "condense→verbatim; planemo 0.75.44 (fork retired)"
},
{
"rev": 2,
"date": "2026-07-20",
"note": "planemo 0.75.45"
}
],
"refs": [
Expand All @@ -31,7 +36,7 @@
"purpose": "Reference for `planemo lint` flags and output classification; first gate in the convergence loop.",
"trigger": "Step 10.1 — after every <command>/<inputs>/<outputs> emission.",
"verification": "Cast and confirm the cast skill consults the manpage's exit-code and error-shape sections, not free-text guesses.",
"src_hash": "0bdc37ac4d67d672ee7245e5e98323d157ab106efe41b609eef1a08067febbc2",
"src_hash": "658bedace8f94b4f88299ecf60b542f670a892c634d2bb602546aae50d7dc5a4",
"dst_hash": "862d714fa6eb7d9233173948162ff880262e2c867394f1157d073a4ce8d81523",
"source": "deterministic"
},
Expand All @@ -47,8 +52,8 @@
"purpose": "Reference for `planemo test --test_output_json` invocation, exit codes, and the JSON report path.",
"trigger": "Step 10.2 — after lint clears.",
"verification": "Cast and confirm the cast skill always runs with --test_output_json and reads from the JSON, not stdout.",
"src_hash": "4482cb70268a92da6015d90ed4f40c60085f94a649621a052025427607b7472e",
"dst_hash": "26b912fe63d0664841cd597437a221eee048e5098affada786a847e265ba1106",
"src_hash": "708692af91e36e4bf5b317509df8dee19e4e15617aeaa53a7ddcbfde18b41f74",
"dst_hash": "f4698abd6b129048befaa3e335010d99c2748a3a4a5334b90584ce5b9ee913e6",
"source": "deterministic"
},
{
Expand All @@ -63,8 +68,8 @@
"purpose": "Install metadata for the planemo CLI invoked by the convergence loop.",
"trigger": "Always — the cast skill needs planemo on PATH before running lint/test.",
"verification": "Cast and confirm the bundle's _required_tools.json carries the pinned planemo install command.",
"src_hash": "ffd4938907b27307e05fb6b44a76a29c2a111e5b51072ec51442b17865cfffaf",
"dst_hash": "ffd4938907b27307e05fb6b44a76a29c2a111e5b51072ec51442b17865cfffaf",
"src_hash": "0f6cee85c6f90b44e33e0b1e1343648be1058084487a55b037c718f3c036ef4b",
"dst_hash": "0f6cee85c6f90b44e33e0b1e1343648be1058084487a55b037c718f3c036ef4b",
"source": "deterministic"
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"tool": "planemo",
"origin": "pypi",
"package": "planemo",
"package_version": "0.75.44",
"package_version": "0.75.45",
"invoke": "planemo",
"invoke_fallback": "uvx --from planemo==0.75.44 planemo",
"invoke_fallback": "uvx --from planemo==0.75.45 planemo",
"availability_check": "planemo --version",
"docs_url": "https://planemo.readthedocs.io/",
"reference": "references/cli/planemo.md",
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ type: cli-tool
tool: planemo
origin: pypi
package: planemo
package_version: "0.75.44"
package_version: "0.75.45"
invoke: planemo
invoke_fallback: "uvx --from planemo==0.75.44 planemo"
invoke_fallback: "uvx --from planemo==0.75.45 planemo"
availability_check: "planemo --version"
docs_url: "https://planemo.readthedocs.io/"
tags:
- cli-tool
- cli/planemo
status: draft
created: 2026-05-10
revised: 2026-06-18
revision: 4
revised: 2026-07-20
revision: 5
ai_generated: true
summary: "Galaxy tool/workflow runtime testing CLI; used by run-workflow-test and friends."
---
Expand All @@ -25,20 +25,20 @@ Galaxy's runtime testing and authoring CLI. Foundry Molds invoke `planemo test`,

## Pin

`package_version` pins to the released `planemo==0.75.44` from PyPI — base upstream planemo, no fork.
`package_version` pins to the released `planemo==0.75.45` from PyPI — base upstream planemo, no fork.

Released 0.75.44 carries the merged [galaxyproject/planemo#1636](https://github.com/galaxyproject/planemo/pull/1636), so `planemo cli_metadata` and `planemo output_schema` ship in the base release. Every Foundry consumer now runs off this base pin: the workflow-test phases ([[run-workflow-test]], [[implement-galaxy-workflow-test]]) which need only `planemo test --test_output_json`, the convergence loop in [[convert-nfcore-module-to-galaxy-tool]], and the vendored-artifact regeneration story (`packages/planemo-cli-meta/`, `packages/planemo-test-report-schema/`). No fork pin is required.
[galaxyproject/planemo#1636](https://github.com/galaxyproject/planemo/pull/1636) merged 2026-05-14 and first shipped in released **0.75.42**, so `planemo cli_metadata` and `planemo output_schema` are available in every release at or above this pin. Every Foundry consumer runs off this base pin: the workflow-test phases ([[run-workflow-test]], [[implement-galaxy-workflow-test]]) which need only `planemo test --test_output_json`, the convergence loop in [[convert-nfcore-module-to-galaxy-tool]], and the vendored-artifact regeneration story (`packages/planemo-cli-meta/`, `packages/planemo-test-report-schema/`). No fork pin is required.

## Install

```sh
uvx --from planemo==0.75.44 planemo --version
uvx --from planemo==0.75.45 planemo --version
```

For a persistent install:

```sh
uv tool install planemo==0.75.44
uv tool install planemo==0.75.45
```

Contributor laptops only need planemo when **regenerating** vendored artifacts (the schema JSON in `packages/planemo-test-report-schema/`, the planemo CLI manual pages under `content/cli/planemo/`). Normal Foundry development — `npm run validate`, `npm run test`, `npm run packages-test` — builds against the vendored JSON and does not invoke planemo.
8 changes: 4 additions & 4 deletions casts/claude/skills/implement-galaxy-workflow-test/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,20 @@ Follow the procedure below and use the artifact/reference sections as the runtim

- Read artifact `galaxy-test-plan`. Schema: galaxy-workflow-test-plan. Produced by `changeset-to-galaxy-test-plan`, `cwl-test-to-galaxy-test-plan`, `freeform-summary-to-galaxy-test-plan`, `nextflow-test-to-galaxy-test-plan`. Schema-valid Galaxy test plan (galaxy-workflow-test-plan) from a *-test-to-galaxy-test-plan Mold; carries job inputs, expected outputs, assertion intent, fixture provenance, label assumptions, unresolved mappings, and omissions.
- Read artifact `galaxy-workflow`. Produced by `advance-galaxy-draft-step`. Concrete gxformat2 workflow being tested — the loop-endstate `galaxy-workflow.gxwf.yml` from advance-galaxy-draft-step (`class: GalaxyWorkflow`); provides the real input/output labels, outputs, and collection shapes the test must assert against.
- Read artifact `test-data-refs`. Produced by `find-test-data`, `paper-to-test-data`. Resolved test data references (URLs, paths, expected shapes) from paper-to-test-data or find-test-data.
- Read artifact `test-data-refs`. Produced by `cwl-to-test-data`, `find-test-data`, `nextflow-to-test-data`, `paper-to-test-data`. Resolved test data references (URLs, paths, expected shapes) from paper-to-test-data or find-test-data.

## Outputs

- Write artifact `galaxy-workflow-test` as `galaxy-workflow.gxwf-tests.yml`. Format: `yaml`. Galaxy workflow test file (tests-format) with job inputs, expected outputs, assertions; passes static schema + label cross-check. Named as the workflow basename + `-tests.yml` so Planemo discovers it as the companion of `galaxy-workflow.gxwf.yml`.

## Required Tools

- **`gxwf`** (gxwf). `npm install -g @galaxy-tool-util/cli@^1.8.1`.
- **`gxwf`** (gxwf). `npm install -g '@galaxy-tool-util/cli@^1.8.1'`.
Ephemeral run: `npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf`.
Check: `gxwf --help | grep -q draft-validate`.
Docs: https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli
- **`planemo`** (planemo). `uv tool install planemo==0.75.44` (or `pip install planemo==0.75.44`).
Ephemeral run: `uvx --from planemo==0.75.44 planemo`.
- **`planemo`** (planemo). `uv tool install planemo==0.75.45` (or `pip install planemo==0.75.45`).
Ephemeral run: `uvx --from planemo==0.75.45 planemo`.
Check: `planemo --version`.
Docs: https://planemo.readthedocs.io/
Bundled reference: `references/cli/planemo.md`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,18 @@
"path": "content/molds/implement-galaxy-workflow-test/index.md",
"revision": 7,
"content_hash": "7f68fe27b39a85abaf6c15f1647809b0d28c71753a7de463a52ffcd5e440f82a",
"commit": "2e8ea5a6363235576bacfa5defd11492bbab6f94"
"commit": "39555fca3fd95bf7db8b0191e97135ce20c77cb2"
},
"cast_at": "2026-07-10T18:51:40.524Z",
"cast_at": "2026-07-20T18:41:10.395Z",
"cast_date": "2026-07-20",
"cast_revision": 1,
"cast_history": [
{
"rev": 1,
"date": "2026-07-20",
"note": "planemo 0.75.45"
}
],
"refs": [
{
"kind": "cli-command",
Expand All @@ -35,8 +44,8 @@
"load": "upfront",
"evidence": "corpus-observed",
"purpose": "Runtime for workflow_test_init / workflow_test_on_invocation; install before authoring tests against a live invocation.",
"src_hash": "ffd4938907b27307e05fb6b44a76a29c2a111e5b51072ec51442b17865cfffaf",
"dst_hash": "ffd4938907b27307e05fb6b44a76a29c2a111e5b51072ec51442b17865cfffaf",
"src_hash": "0f6cee85c6f90b44e33e0b1e1343648be1058084487a55b037c718f3c036ef4b",
"dst_hash": "0f6cee85c6f90b44e33e0b1e1343648be1058084487a55b037c718f3c036ef4b",
"source": "deterministic"
},
{
Expand Down Expand Up @@ -180,7 +189,9 @@
"id": "test-data-refs",
"description": "Resolved test data references (URLs, paths, expected shapes) from paper-to-test-data or find-test-data.",
"producers": [
"cwl-to-test-data",
"find-test-data",
"nextflow-to-test-data",
"paper-to-test-data"
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
"tool": "planemo",
"origin": "pypi",
"package": "planemo",
"package_version": "0.75.44",
"package_version": "0.75.45",
"invoke": "planemo",
"invoke_fallback": "uvx --from planemo==0.75.44 planemo",
"invoke_fallback": "uvx --from planemo==0.75.45 planemo",
"availability_check": "planemo --version",
"docs_url": "https://planemo.readthedocs.io/",
"reference": "references/cli/planemo.md",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ type: cli-tool
tool: planemo
origin: pypi
package: planemo
package_version: "0.75.44"
package_version: "0.75.45"
invoke: planemo
invoke_fallback: "uvx --from planemo==0.75.44 planemo"
invoke_fallback: "uvx --from planemo==0.75.45 planemo"
availability_check: "planemo --version"
docs_url: "https://planemo.readthedocs.io/"
tags:
- cli-tool
- cli/planemo
status: draft
created: 2026-05-10
revised: 2026-06-18
revision: 4
revised: 2026-07-20
revision: 5
ai_generated: true
summary: "Galaxy tool/workflow runtime testing CLI; used by run-workflow-test and friends."
---
Expand All @@ -25,20 +25,20 @@ Galaxy's runtime testing and authoring CLI. Foundry Molds invoke `planemo test`,

## Pin

`package_version` pins to the released `planemo==0.75.44` from PyPI — base upstream planemo, no fork.
`package_version` pins to the released `planemo==0.75.45` from PyPI — base upstream planemo, no fork.

Released 0.75.44 carries the merged [galaxyproject/planemo#1636](https://github.com/galaxyproject/planemo/pull/1636), so `planemo cli_metadata` and `planemo output_schema` ship in the base release. Every Foundry consumer now runs off this base pin: the workflow-test phases ([[run-workflow-test]], [[implement-galaxy-workflow-test]]) which need only `planemo test --test_output_json`, the convergence loop in [[convert-nfcore-module-to-galaxy-tool]], and the vendored-artifact regeneration story (`packages/planemo-cli-meta/`, `packages/planemo-test-report-schema/`). No fork pin is required.
[galaxyproject/planemo#1636](https://github.com/galaxyproject/planemo/pull/1636) merged 2026-05-14 and first shipped in released **0.75.42**, so `planemo cli_metadata` and `planemo output_schema` are available in every release at or above this pin. Every Foundry consumer runs off this base pin: the workflow-test phases ([[run-workflow-test]], [[implement-galaxy-workflow-test]]) which need only `planemo test --test_output_json`, the convergence loop in [[convert-nfcore-module-to-galaxy-tool]], and the vendored-artifact regeneration story (`packages/planemo-cli-meta/`, `packages/planemo-test-report-schema/`). No fork pin is required.

## Install

```sh
uvx --from planemo==0.75.44 planemo --version
uvx --from planemo==0.75.45 planemo --version
```

For a persistent install:

```sh
uv tool install planemo==0.75.44
uv tool install planemo==0.75.45
```

Contributor laptops only need planemo when **regenerating** vendored artifacts (the schema JSON in `packages/planemo-test-report-schema/`, the planemo CLI manual pages under `content/cli/planemo/`). Normal Foundry development — `npm run validate`, `npm run test`, `npm run packages-test` — builds against the vendored JSON and does not invoke planemo.
6 changes: 3 additions & 3 deletions casts/claude/skills/pipeline-cwl-to-galaxy/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ Install the harness CLIs every constituent skill invokes before driving the pipe
Ephemeral run: `npx --package @galaxy-foundry/foundry foundry`.
Check: `foundry --help`.
Docs: https://github.com/galaxyproject/foundry/blob/main/packages/foundry/README.md
- **`gxwf`** (gxwf). `npm install -g @galaxy-tool-util/cli@^1.8.1`.
- **`gxwf`** (gxwf). `npm install -g '@galaxy-tool-util/cli@^1.8.1'`.
Ephemeral run: `npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf`.
Check: `gxwf --help | grep -q draft-validate`.
Docs: https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli
- **`planemo`** (planemo). `uv tool install planemo==0.75.44` (or `pip install planemo==0.75.44`).
Ephemeral run: `uvx --from planemo==0.75.44 planemo`.
- **`planemo`** (planemo). `uv tool install planemo==0.75.45` (or `pip install planemo==0.75.45`).
Ephemeral run: `uvx --from planemo==0.75.45 planemo`.
Check: `planemo --version`.
Docs: https://planemo.readthedocs.io/

Expand Down
2 changes: 1 addition & 1 deletion casts/claude/skills/pipeline-cwl-to-galaxy/_assembly.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
{ "tool": "cwltool", "origin": "pypi", "package": "cwltool", "invoke": "cwltool", "invoke_fallback": "uvx cwltool", "availability_check": "cwltool --version", "docs_url": "https://cwltool.readthedocs.io/", "source": "referenced" },
{ "tool": "foundry", "origin": "npm", "package": "@galaxy-foundry/foundry", "invoke": "foundry", "invoke_fallback": "npx --package @galaxy-foundry/foundry foundry", "availability_check": "foundry --help", "docs_url": "https://github.com/galaxyproject/foundry/blob/main/packages/foundry/README.md", "source": "referenced" },
{ "tool": "gxwf", "origin": "npm", "package": "@galaxy-tool-util/cli", "package_version": "^1.8.1", "invoke": "gxwf", "invoke_fallback": "npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf", "availability_check": "gxwf --help | grep -q draft-validate", "docs_url": "https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli", "source": "implied", "implied_by": ["gxwf convert", "gxwf draft-validate", "gxwf draft-next-step", "gxwf draft-extract", "gxwf validate-tests", "gxwf validate"] },
{ "tool": "planemo", "origin": "pypi", "package": "planemo", "package_version": "0.75.44", "invoke": "planemo", "invoke_fallback": "uvx --from planemo==0.75.44 planemo", "availability_check": "planemo --version", "docs_url": "https://planemo.readthedocs.io/", "source": "referenced" }
{ "tool": "planemo", "origin": "pypi", "package": "planemo", "package_version": "0.75.45", "invoke": "planemo", "invoke_fallback": "uvx --from planemo==0.75.45 planemo", "availability_check": "planemo --version", "docs_url": "https://planemo.readthedocs.io/", "source": "referenced" }
],
"phases": [
{ "phase": 1, "kind": "mold", "skill": "summarize-cwl", "cast_present": true, "loop": false },
Expand Down
6 changes: 3 additions & 3 deletions casts/claude/skills/pipeline-interview-to-galaxy/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ Harness for the **INTERVIEW → GALAXY** Foundry pipeline. Runs the constituent

Install the harness CLIs every constituent skill invokes before driving the pipeline. Deduped across all phases; bioinformatics tools the constructed workflow installs are out of scope (the discovery phase pins those).

- **`gxwf`** (gxwf). `npm install -g @galaxy-tool-util/cli@^1.8.1`.
- **`gxwf`** (gxwf). `npm install -g '@galaxy-tool-util/cli@^1.8.1'`.
Ephemeral run: `npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf`.
Check: `gxwf --help | grep -q draft-validate`.
Docs: https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli
- **`planemo`** (planemo). `uv tool install planemo==0.75.44` (or `pip install planemo==0.75.44`).
Ephemeral run: `uvx --from planemo==0.75.44 planemo`.
- **`planemo`** (planemo). `uv tool install planemo==0.75.45` (or `pip install planemo==0.75.45`).
Ephemeral run: `uvx --from planemo==0.75.45 planemo`.
Check: `planemo --version`.
Docs: https://planemo.readthedocs.io/

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"options": ["use-subagents", "checkpoint"],
"required_tools": [
{ "tool": "gxwf", "origin": "npm", "package": "@galaxy-tool-util/cli", "package_version": "^1.8.1", "invoke": "gxwf", "invoke_fallback": "npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf", "availability_check": "gxwf --help | grep -q draft-validate", "docs_url": "https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli", "source": "implied", "implied_by": ["gxwf convert", "gxwf draft-validate", "gxwf draft-next-step", "gxwf draft-extract", "gxwf validate-tests", "gxwf validate"] },
{ "tool": "planemo", "origin": "pypi", "package": "planemo", "package_version": "0.75.44", "invoke": "planemo", "invoke_fallback": "uvx --from planemo==0.75.44 planemo", "availability_check": "planemo --version", "docs_url": "https://planemo.readthedocs.io/", "source": "referenced" }
{ "tool": "planemo", "origin": "pypi", "package": "planemo", "package_version": "0.75.45", "invoke": "planemo", "invoke_fallback": "uvx --from planemo==0.75.45 planemo", "availability_check": "planemo --version", "docs_url": "https://planemo.readthedocs.io/", "source": "referenced" }
],
"phases": [
{ "phase": 1, "kind": "mold", "skill": "interview-to-freeform-summary", "cast_present": true, "loop": false },
Expand Down
6 changes: 3 additions & 3 deletions casts/claude/skills/pipeline-nextflow-to-cwl/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ Install the harness CLIs every constituent skill invokes before driving the pipe
Ephemeral run: `npx --package @galaxy-foundry/foundry foundry`.
Check: `foundry --help`.
Docs: https://github.com/galaxyproject/foundry/blob/main/packages/foundry/README.md
- **`gxwf`** (gxwf). `npm install -g @galaxy-tool-util/cli@^1.8.1`.
- **`gxwf`** (gxwf). `npm install -g '@galaxy-tool-util/cli@^1.8.1'`.
Ephemeral run: `npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf`.
Check: `gxwf --help | grep -q draft-validate`.
Docs: https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli
- **`planemo`** (planemo). `uv tool install planemo==0.75.44` (or `pip install planemo==0.75.44`).
Ephemeral run: `uvx --from planemo==0.75.44 planemo`.
- **`planemo`** (planemo). `uv tool install planemo==0.75.45` (or `pip install planemo==0.75.45`).
Ephemeral run: `uvx --from planemo==0.75.45 planemo`.
Check: `planemo --version`.
Docs: https://planemo.readthedocs.io/

Expand Down
Loading
Loading