@galaxyproject/orbit 0.0.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +123 -0
- package/LICENSE +21 -0
- package/README.md +760 -5
- package/bin/legacy-mcp-config.js +363 -0
- package/bin/orbit.js +810 -0
- package/bin/pi-extension-path.d.ts +4 -0
- package/bin/pi-extension-path.js +44 -0
- package/bin/provider-auth.d.ts +22 -0
- package/bin/provider-auth.js +77 -0
- package/bin/thinking-pref.js +38 -0
- package/bin/update-check.d.ts +15 -0
- package/bin/update-check.js +137 -0
- package/extensions/cli-update/index.ts +32 -0
- package/extensions/orbit/activity-hooks.ts +141 -0
- package/extensions/orbit/activity.ts +116 -0
- package/extensions/orbit/agent-dir.ts +11 -0
- package/extensions/orbit/auto-resume.ts +352 -0
- package/extensions/orbit/config.ts +3 -0
- package/extensions/orbit/confusables.ts +1 -0
- package/extensions/orbit/context.ts +957 -0
- package/extensions/orbit/dashboard-commands.ts +191 -0
- package/extensions/orbit/dashboard-store.ts +473 -0
- package/extensions/orbit/dashboard-tools.ts +1185 -0
- package/extensions/orbit/empty-completion.ts +99 -0
- package/extensions/orbit/evidence-gate.ts +1276 -0
- package/extensions/orbit/evidence-override-command.ts +294 -0
- package/extensions/orbit/exec-guard/bash-risk.ts +1408 -0
- package/extensions/orbit/exec-guard/gate.ts +181 -0
- package/extensions/orbit/exec-guard/guardian-config.ts +54 -0
- package/extensions/orbit/exec-guard/index.ts +1 -0
- package/extensions/orbit/exec-guard/model-tier.ts +36 -0
- package/extensions/orbit/exec-guard/path-jail.ts +54 -0
- package/extensions/orbit/exec-guard/policy.ts +342 -0
- package/extensions/orbit/exec-guard/runtime-state.ts +15 -0
- package/extensions/orbit/exec-guard/sensitive-read.ts +525 -0
- package/extensions/orbit/exec-guard/types.ts +42 -0
- package/extensions/orbit/execution-commands.ts +134 -0
- package/extensions/orbit/feedback-command.ts +81 -0
- package/extensions/orbit/feedback.ts +96 -0
- package/extensions/orbit/galaxy-api.test.ts +122 -0
- package/extensions/orbit/galaxy-api.ts +606 -0
- package/extensions/orbit/galaxy-artifact-link-guidance.ts +5 -0
- package/extensions/orbit/galaxy-destructive-gate.ts +113 -0
- package/extensions/orbit/galaxy-enrich.ts +1108 -0
- package/extensions/orbit/galaxy-failure.ts +101 -0
- package/extensions/orbit/galaxy-fixture.ts +126 -0
- package/extensions/orbit/galaxy-history-guard.ts +233 -0
- package/extensions/orbit/galaxy-job-block.ts +347 -0
- package/extensions/orbit/galaxy-job-ops.ts +288 -0
- package/extensions/orbit/galaxy-live-source.ts +929 -0
- package/extensions/orbit/galaxy-markdown-adapter.ts +248 -0
- package/extensions/orbit/galaxy-op-policy.ts +332 -0
- package/extensions/orbit/galaxy-ops-tools.ts +326 -0
- package/extensions/orbit/galaxy-output-store.ts +80 -0
- package/extensions/orbit/galaxy-output.ts +346 -0
- package/extensions/orbit/galaxy-page-binding.ts +222 -0
- package/extensions/orbit/galaxy-page-markdown-guidance.ts +15 -0
- package/extensions/orbit/galaxy-page-ops.ts +159 -0
- package/extensions/orbit/galaxy-page-sync.test.ts +417 -0
- package/extensions/orbit/galaxy-page-sync.ts +318 -0
- package/extensions/orbit/galaxy-pages-api.ts +203 -0
- package/extensions/orbit/galaxy-pages-sync.ts +409 -0
- package/extensions/orbit/galaxy-poll-guard.ts +189 -0
- package/extensions/orbit/galaxy-poller.ts +706 -0
- package/extensions/orbit/galaxy-provenance.ts +623 -0
- package/extensions/orbit/galaxy-reconcile.ts +956 -0
- package/extensions/orbit/galaxy-recovery.ts +176 -0
- package/extensions/orbit/galaxy-repeat-guard.ts +55 -0
- package/extensions/orbit/galaxy-submission-capture.ts +707 -0
- package/extensions/orbit/galaxy-submission.ts +502 -0
- package/extensions/orbit/galaxy-tool-source.ts +78 -0
- package/extensions/orbit/galaxy-tool-wrap.ts +234 -0
- package/extensions/orbit/galaxy-udt-block.ts +127 -0
- package/extensions/orbit/galaxy-upload-tus.ts +334 -0
- package/extensions/orbit/galaxy-upload.ts +300 -0
- package/extensions/orbit/galaxy-version-capture.ts +65 -0
- package/extensions/orbit/git.ts +173 -0
- package/extensions/orbit/harness-block-fields.ts +597 -0
- package/extensions/orbit/index.ts +593 -0
- package/extensions/orbit/init-gate.ts +284 -0
- package/extensions/orbit/instructions-command.ts +136 -0
- package/extensions/orbit/invocation-failure-hint.ts +57 -0
- package/extensions/orbit/iwc-plan-check.ts +94 -0
- package/extensions/orbit/lesson-command.ts +303 -0
- package/extensions/orbit/lesson-hint.ts +245 -0
- package/extensions/orbit/lesson-nudge.ts +106 -0
- package/extensions/orbit/lessons/compose.ts +177 -0
- package/extensions/orbit/lessons/counters.ts +120 -0
- package/extensions/orbit/lessons/enabled.ts +116 -0
- package/extensions/orbit/lessons/matcher.ts +346 -0
- package/extensions/orbit/lessons/paths.ts +286 -0
- package/extensions/orbit/lessons/pi-event-contract.ts +105 -0
- package/extensions/orbit/lessons/propose-replay.ts +103 -0
- package/extensions/orbit/lessons/propose-tool.ts +222 -0
- package/extensions/orbit/lessons/propose.ts +502 -0
- package/extensions/orbit/lessons/replay.ts +89 -0
- package/extensions/orbit/lessons/reproduction-index.ts +83 -0
- package/extensions/orbit/lessons/search-tool.ts +99 -0
- package/extensions/orbit/lessons/search.ts +136 -0
- package/extensions/orbit/lessons/store.ts +415 -0
- package/extensions/orbit/lessons/text.ts +36 -0
- package/extensions/orbit/lessons/types.ts +69 -0
- package/extensions/orbit/lessons/user-dir.ts +24 -0
- package/extensions/orbit/lessons/user-lesson.ts +88 -0
- package/extensions/orbit/lessons/wrapper.ts +61 -0
- package/extensions/orbit/lessons-command.ts +147 -0
- package/extensions/orbit/local-exec.ts +39 -0
- package/extensions/orbit/mcp-output.ts +179 -0
- package/extensions/orbit/mcp-servers.test.ts +24 -0
- package/extensions/orbit/mcp-servers.ts +25 -0
- package/extensions/orbit/model-script.ts +351 -0
- package/extensions/orbit/notebook-anchors.ts +342 -0
- package/extensions/orbit/notebook-writer.ts +863 -0
- package/extensions/orbit/observation-allowlists.ts +1109 -0
- package/extensions/orbit/observation-replay.ts +148 -0
- package/extensions/orbit/observation-triggers.ts +563 -0
- package/extensions/orbit/observation-ui.ts +175 -0
- package/extensions/orbit/observations-command.ts +421 -0
- package/extensions/orbit/observations-config.ts +200 -0
- package/extensions/orbit/observations.ts +1381 -0
- package/extensions/orbit/profiles.ts +270 -0
- package/extensions/orbit/progress-updates.ts +95 -0
- package/extensions/orbit/proposal-commands.ts +882 -0
- package/extensions/orbit/provenance-fs-file.ts +59 -0
- package/extensions/orbit/provenance-fs.ts +32 -0
- package/extensions/orbit/provenance-memory-fs.ts +59 -0
- package/extensions/orbit/record-store-file.ts +177 -0
- package/extensions/orbit/record-store-page.ts +77 -0
- package/extensions/orbit/record-store-seam.ts +47 -0
- package/extensions/orbit/record-store.ts +149 -0
- package/extensions/orbit/registry-carrier.ts +107 -0
- package/extensions/orbit/registry-eligibility.ts +95 -0
- package/extensions/orbit/registry-evaluation.ts +403 -0
- package/extensions/orbit/registry-evaluator.ts +519 -0
- package/extensions/orbit/registry-import.ts +91 -0
- package/extensions/orbit/registry-lock.ts +221 -0
- package/extensions/orbit/registry-memory-fs.ts +42 -0
- package/extensions/orbit/registry-page-carrier.ts +103 -0
- package/extensions/orbit/registry-proposal.ts +1348 -0
- package/extensions/orbit/registry-runtime.ts +234 -0
- package/extensions/orbit/registry-schema.ts +735 -0
- package/extensions/orbit/registry-submitter.ts +59 -0
- package/extensions/orbit/registry-templates.ts +346 -0
- package/extensions/orbit/registry.ts +476 -0
- package/extensions/orbit/sandbox/index.ts +120 -0
- package/extensions/orbit/sandbox/sandbox-bash.ts +93 -0
- package/extensions/orbit/sandbox/sandbox-config.ts +87 -0
- package/extensions/orbit/sandbox/sandbox-init-message.ts +28 -0
- package/extensions/orbit/secret-redaction.ts +247 -0
- package/extensions/orbit/session-index/cwd.ts +18 -0
- package/extensions/orbit/session-index/db.ts +56 -0
- package/extensions/orbit/session-index/indexer.ts +154 -0
- package/extensions/orbit/session-index/is-enabled.ts +17 -0
- package/extensions/orbit/session-index/parse.ts +254 -0
- package/extensions/orbit/session-index/query.ts +209 -0
- package/extensions/orbit/session-index/schema.ts +72 -0
- package/extensions/orbit/session-index/tools.ts +152 -0
- package/extensions/orbit/session-lifecycle.ts +321 -0
- package/extensions/orbit/skill-triggers.ts +159 -0
- package/extensions/orbit/skills-command.ts +48 -0
- package/extensions/orbit/skills-discovery.ts +435 -0
- package/extensions/orbit/skills.ts +84 -0
- package/extensions/orbit/sra-import-gate.ts +77 -0
- package/extensions/orbit/state.ts +265 -0
- package/extensions/orbit/submission-replay.ts +147 -0
- package/extensions/orbit/sync-command.ts +157 -0
- package/extensions/orbit/teams/critic-parser.ts +93 -0
- package/extensions/orbit/teams/dispatcher.ts +210 -0
- package/extensions/orbit/teams/is-enabled.ts +22 -0
- package/extensions/orbit/teams/tool.ts +187 -0
- package/extensions/orbit/teams/types.ts +57 -0
- package/extensions/orbit/teams/validate.ts +42 -0
- package/extensions/orbit/tester-id-command.ts +133 -0
- package/extensions/orbit/tools-sync.ts +279 -0
- package/extensions/orbit/tools.ts +1300 -0
- package/extensions/orbit/types.ts +41 -0
- package/extensions/orbit/ui-bridge.ts +55 -0
- package/extensions/orbit/ulid.ts +60 -0
- package/extensions/orbit/user-instructions.ts +388 -0
- package/extensions/orbit/vendor/skills/_catalog.json +68 -0
- package/extensions/orbit/vendor/skills/_manifest.json +1106 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/SKILL.md +112 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_provenance.json +218 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_required_tools.json +33 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/add.json +50 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-extract.json +51 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-next-step.json +42 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/draft-validate.json +140 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/cli/list.json +32 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/galaxy-tool-job-failure-reference.md +137 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-tool-summary.schema.json +175 -0
- package/extensions/orbit/vendor/skills/advance-galaxy-draft-step/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/SKILL.md +82 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_provenance.json +133 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/cli/draft-validate.json +140 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/galaxy-workflow-draft-format.md +135 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/apply-galaxy-workflow-changeset/references/schemas/galaxy-workflow-draft.schema.json +2727 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/SKILL.md +84 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_provenance.json +166 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/_verify.json +29 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/changeset-to-galaxy-test-plan/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/SKILL.md +127 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_provenance.json +198 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/cli/convert.json +123 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/galaxy-data-flow-draft-contract.md +129 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/compare-against-iwc-exemplar/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/SKILL.md +73 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_provenance.json +160 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.md +43 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-collection-semantics.yml +1250 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-tool-job-failure-reference.md +137 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/nextflow-operators-to-galaxy-collection-recipes.md +98 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/debug-galaxy-workflow-output/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/SKILL.md +174 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_provenance.json +130 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_required_tools.json +18 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-revisions.json +48 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-search.json +95 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/cli/tool-versions.json +39 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/notes/component-tool-shed-search.md +230 -0
- package/extensions/orbit/vendor/skills/discover-shed-tool/references/schemas/galaxy-tool-discovery.schema.json +231 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/SKILL.md +93 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_provenance.json +201 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/planemo.md +44 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/cli/validate-tests.json +40 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-shortcuts-anti-patterns.md +357 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/iwc-test-data-conventions.md +308 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/galaxy-workflow-test-plan.schema.json +552 -0
- package/extensions/orbit/vendor/skills/implement-galaxy-workflow-test/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/SKILL.md +81 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_provenance.json +93 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/notes/open-requirements-ledger.md +173 -0
- package/extensions/orbit/vendor/skills/interview-to-galaxy-workflow-changeset/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/SKILL.md +81 -0
- package/extensions/orbit/vendor/skills/pipeline-update-interview-to-galaxy/_assembly.json +23 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/SKILL.md +79 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_provenance.json +125 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/planemo.md +44 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/cli/validate-tests.json +40 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-asserts-idioms.md +246 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/notes/planemo-workflow-test-architecture.md +151 -0
- package/extensions/orbit/vendor/skills/run-workflow-test/references/schemas/tests-format.schema.json +7328 -0
- package/extensions/orbit/vendor/skills/skills/LICENSE +21 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/README.md +39 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/SKILL.md +892 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/api-patterns.md +927 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/apply-rules.md +1482 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/test-patterns.md +996 -0
- package/extensions/orbit/vendor/skills/skills/collection-manipulation/references/tools.md +609 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-data-libraries/SKILL.md +170 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/README.md +162 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/SKILL.md +99 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/README.md +119 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/tool-checking.md +419 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/examples/workflow-testing.md +617 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/galaxy-integration.md +614 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/SKILL.md +144 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/average_col3.ipynb +68 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/extract_sample_metadata.ipynb +190 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/variant_annotation.ipynb +816 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/jupyterlite/examples/vcp_variant_map.ipynb +443 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/README.md +165 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-integration/scripts/galaxy_tool_checker.py +521 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/SKILL.md +128 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/gotchas.md +135 -0
- package/extensions/orbit/vendor/skills/skills/galaxy-mcp-reference/history-access.md +132 -0
- package/extensions/orbit/vendor/skills/skills/reproduciblify/SKILL.md +146 -0
- package/extensions/orbit/vendor/skills/skills/reproduciblify/references/directives.yml +496 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/SKILL.md +245 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/01-minimal-echo.yml +27 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/02-single-data-in-out.yml +27 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/03-multiple-data-js.yml +28 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/04-select-integer-boolean.yml +41 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/05-resource-requirements.yml +25 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/06-biocontainer-tool.yml +38 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/07-inline-python-script.yml +56 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/examples/08-configfile-script.yml +74 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/common-mistakes.md +76 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/schema-reference.md +155 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/references/templating.md +196 -0
- package/extensions/orbit/vendor/skills/skills/udt-authoring/scripts/validate.py +109 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/README.md +71 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/SKILL.md +190 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/histology-staining.md +145 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/examples/tissue-microarray-analysis.md +176 -0
- package/extensions/orbit/vendor/skills/skills/workflow-reports/references/directives.md +415 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/SKILL.md +98 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_provenance.json +93 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_required_tools.json +28 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/_verify.json +17 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/convert.json +123 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/foundry.md +25 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/cli/validate.json +142 -0
- package/extensions/orbit/vendor/skills/summarize-galaxy-workflow/references/schemas/summary-galaxy-workflow.schema.json +687 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/SKILL.md +74 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_provenance.json +71 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_required_tools.json +16 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/_verify.json +4 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/cli/validate.json +142 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-invocation-failure-reference.md +138 -0
- package/extensions/orbit/vendor/skills/validate-galaxy-workflow/references/notes/galaxy-workflow-testability-design.md +136 -0
- package/extensions/orbit/vendor-skills.ts +283 -0
- package/extensions/orbit/workspace-state-dir.ts +46 -0
- package/extensions/orbit-handoff/index.ts +73 -0
- package/extensions/orbit-handoff/orbit-launcher.ts +142 -0
- package/extensions/whats-new/index.ts +98 -0
- package/lessons/LICENSE +17 -0
- package/lessons/README.md +117 -0
- package/lessons/SCHEMA.md +187 -0
- package/lessons/build-snapshot.mjs +311 -0
- package/lessons/data/downloaded-file-is-not-what-its-extension-says.md +61 -0
- package/lessons/galaxy-api/403-history-is-a-hard-stop.md +57 -0
- package/lessons/galaxy-api/collection-into-single-dataset-input.md +61 -0
- package/lessons/galaxy-api/connectedvalue-in-command-line.md +62 -0
- package/lessons/galaxy-api/hid-is-not-an-id.md +59 -0
- package/lessons/galaxy-api/invoke-workflow-inputs-not-params.md +60 -0
- package/lessons/galaxy-api/repeat-param-pipe-keys.md +63 -0
- package/lessons/galaxy-api/run-tool-returns-on-submit.md +61 -0
- package/lessons/galaxy-tools/reference-index-not-on-server.md +62 -0
- package/lessons/log.md +42 -0
- package/lessons/reproduction/input-population-mismatch.md +59 -0
- package/lessons/reproduction/methods-text-vs-executed-parameters.md +62 -0
- package/lessons/snapshot.json +1004 -0
- package/lessons/stats/de-contrast-direction-and-sample-labels.md +63 -0
- package/lessons/stats/na-coerced-to-zero-in-filters.md +59 -0
- package/lessons/validate.mjs +1219 -0
- package/package.json +103 -5
- package/shared/agent-prompt.d.ts +8 -0
- package/shared/agent-prompt.js +15 -0
- package/shared/approval-prompt.d.ts +4 -0
- package/shared/approval-prompt.js +61 -0
- package/shared/brain-env.d.ts +14 -0
- package/shared/brain-env.js +108 -0
- package/shared/brain-exit.d.ts +20 -0
- package/shared/brain-exit.js +149 -0
- package/shared/capability-profile.d.ts +16 -0
- package/shared/capability-profile.js +75 -0
- package/shared/config-source.d.ts +13 -0
- package/shared/config-source.js +17 -0
- package/shared/confusables.d.ts +3 -0
- package/shared/confusables.js +93 -0
- package/shared/custom-provider.d.ts +45 -0
- package/shared/custom-provider.js +169 -0
- package/shared/dashboard-contract.d.ts +123 -0
- package/shared/dashboard-contract.js +560 -0
- package/shared/dashboard-layout-store.d.ts +44 -0
- package/shared/dashboard-layout-store.js +281 -0
- package/shared/feedback-contract.d.ts +61 -0
- package/shared/feedback-contract.js +146 -0
- package/shared/galaxy-artifact-links.d.ts +30 -0
- package/shared/galaxy-artifact-links.js +166 -0
- package/shared/galaxy-credentials.d.ts +26 -0
- package/shared/galaxy-credentials.js +71 -0
- package/shared/galaxy-destructive.d.ts +21 -0
- package/shared/galaxy-destructive.js +269 -0
- package/shared/galaxy-guidance.d.ts +2 -0
- package/shared/galaxy-guidance.js +53 -0
- package/shared/galaxy-live-contract.d.ts +92 -0
- package/shared/galaxy-live-contract.js +180 -0
- package/shared/galaxy-page-cells.d.ts +2 -0
- package/shared/galaxy-page-cells.js +22 -0
- package/shared/galaxy-tool-family.d.ts +5 -0
- package/shared/galaxy-tool-family.js +27 -0
- package/shared/galaxy-url.d.ts +1 -0
- package/shared/galaxy-url.js +48 -0
- package/shared/gtn.d.ts +31 -0
- package/shared/gtn.js +253 -0
- package/shared/handled-prompt.d.ts +3 -0
- package/shared/handled-prompt.js +26 -0
- package/shared/known-provider.d.ts +11 -0
- package/shared/known-provider.js +89 -0
- package/shared/lesson-hint-marker.d.ts +7 -0
- package/shared/lesson-hint-marker.js +32 -0
- package/shared/lesson-rules.d.ts +150 -0
- package/shared/lesson-rules.js +203 -0
- package/shared/malformed-object-ids.d.ts +1 -0
- package/shared/malformed-object-ids.js +37 -0
- package/shared/markdown-sections.d.ts +10 -0
- package/shared/markdown-sections.js +118 -0
- package/shared/notebook-fences.d.ts +12 -0
- package/shared/notebook-fences.js +53 -0
- package/shared/observation-contract.d.ts +91 -0
- package/shared/observation-contract.js +544 -0
- package/shared/orbit-config.d.ts +226 -0
- package/shared/orbit-config.js +189 -0
- package/shared/orbit-env.d.ts +13 -0
- package/shared/orbit-env.js +124 -0
- package/shared/orbit-shell-contract.d.ts +74 -0
- package/shared/orbit-shell-contract.js +30 -0
- package/shared/page-content-hash.d.ts +1 -0
- package/shared/page-content-hash.js +13 -0
- package/shared/pi-default-model.d.ts +7 -0
- package/shared/pi-default-model.js +41 -0
- package/shared/prompt-blocks.d.ts +87 -0
- package/shared/prompt-blocks.js +898 -0
- package/shared/provider-auth-caps.d.ts +22 -0
- package/shared/provider-auth-caps.js +57 -0
- package/shared/random.d.ts +2 -0
- package/shared/random.js +15 -0
- package/shared/record-excerpt.d.ts +4 -0
- package/shared/record-excerpt.js +16 -0
- package/shared/redirect-guard.d.ts +36 -0
- package/shared/redirect-guard.js +235 -0
- package/shared/skills-pin.d.ts +8 -0
- package/shared/skills-pin.js +9 -0
- package/shared/skills-router.d.ts +17 -0
- package/shared/skills-router.js +63 -0
- package/shared/sra-import.d.ts +34 -0
- package/shared/sra-import.js +206 -0
- package/shared/state-dir.d.ts +21 -0
- package/shared/state-dir.js +240 -0
- package/shared/team-dispatch-contract.d.ts +28 -0
- package/shared/team-dispatch-contract.js +1 -0
- package/shared/truncate-middle.d.ts +11 -0
- package/shared/truncate-middle.js +68 -0
- package/shared/version-compare.d.ts +10 -0
- package/shared/version-compare.js +74 -0
- package/shared/whats-new.d.ts +31 -0
- package/shared/whats-new.js +83 -0
- package/shared/wsl.d.ts +10 -0
- package/shared/wsl.js +24 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pipeline-update-interview-to-galaxy
|
|
3
|
+
description: "Interview-driven, edit-in-place modification of an existing Galaxy gxformat2 workflow via a reviewable change-set, reusing the per-step draft loop — orchestrates the Foundry skills of the UPDATE-INTERVIEW → GALAXY pipeline in order, in a per-run working directory."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# pipeline-update-interview-to-galaxy
|
|
7
|
+
|
|
8
|
+
Harness for the **UPDATE-INTERVIEW → GALAXY** Foundry pipeline. Runs the constituent skills in order inside a single per-run working directory. Assembled from `content/pipelines/update-interview-to-galaxy/index.md` (revision 2) — regenerate with `foundry-build assemble-pipeline update-interview-to-galaxy` if the pipeline changes; do not hand-edit.
|
|
9
|
+
|
|
10
|
+
## When To Use
|
|
11
|
+
|
|
12
|
+
- Interview-driven, edit-in-place modification of an existing Galaxy gxformat2 workflow via a reviewable change-set, reusing the per-step draft loop.
|
|
13
|
+
|
|
14
|
+
## Bootstrap (install these CLIs first)
|
|
15
|
+
|
|
16
|
+
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).
|
|
17
|
+
|
|
18
|
+
- **`foundry`** (foundry). `npm install -g @galaxy-foundry/gxwf-foundry`.
|
|
19
|
+
Ephemeral run: `npx --package @galaxy-foundry/gxwf-foundry foundry`.
|
|
20
|
+
Check: `foundry --help`.
|
|
21
|
+
Docs: https://github.com/galaxyproject/foundry/blob/main/packages/gxwf-foundry/README.md
|
|
22
|
+
- **`galaxy-tool-cache`** (galaxy-tool-cache). `npm install -g '@galaxy-tool-util/cli@^1.8.1'`.
|
|
23
|
+
Ephemeral run: `npx --yes --package @galaxy-tool-util/cli@1.8.1 galaxy-tool-cache`.
|
|
24
|
+
Check: `galaxy-tool-cache --help | grep -q summarize`.
|
|
25
|
+
Docs: https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli
|
|
26
|
+
- **`gxwf`** (gxwf). `npm install -g '@galaxy-tool-util/cli@^1.8.1'`.
|
|
27
|
+
Ephemeral run: `npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf`.
|
|
28
|
+
Check: `gxwf --help | grep -q draft-validate`.
|
|
29
|
+
Docs: https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli
|
|
30
|
+
- **`planemo`** (planemo). `uv tool install planemo==0.75.47` (or `pip install planemo==0.75.47`).
|
|
31
|
+
Ephemeral run: `uvx --from planemo==0.75.47 planemo`.
|
|
32
|
+
Check: `planemo --version`.
|
|
33
|
+
Docs: https://planemo.readthedocs.io/
|
|
34
|
+
|
|
35
|
+
## Run options
|
|
36
|
+
|
|
37
|
+
Optional flags, given as leading arguments. Strip any you recognize; treat the remaining positional argument as the run slug. All default off and compose.
|
|
38
|
+
|
|
39
|
+
- `--use-subagents` — run each cast phase in its own subagent to keep this orchestrator's context small. For each phase whose skill is cast, spawn a subagent, tell it the run directory and to invoke the named skill with every default filename prefixed by `./<run-slug>/`, and have it return a short report (artifacts written, assumptions, status) rather than its full transcript; carry only that report forward. A cast loop phase runs **one subagent per iteration** — each advances a single step and returns its done-signal, and you inspect that signal to decide whether to spawn the next iteration. Branch phases run their whole fallback chain in one subagent. MANUAL (un-cast) phases are never delegated — including MANUAL loop phases — so handle those yourself regardless of the per-iteration rule above.
|
|
40
|
+
- `--checkpoint` — commit after every phase so the run directory's git history is a per-step record (a data source for workflow-implementation visualizations). When set, `git init ./<run-slug>/` during working-directory setup — this is a standalone per-run repo; do not add it to any surrounding repo you are working inside. Then after each phase's artifact is confirmed run `git -C ./<run-slug>/ add -A && git -C ./<run-slug>/ commit -m "phase <n>: <skill>"`. Loop phases commit **once per iteration** (`phase <n> step <k>: <skill>`); for a MANUAL loop, commit once per by-hand step. With `--use-subagents`, the subagent does the work and returns; you make the commit.
|
|
41
|
+
- `--feedback` — create `./<run-slug>/foundry-feedback.ledger.yml` before phase 1. Set `run.pipeline` to this pipeline's slug and `run.run_slug` to the chosen run slug. Copy the complete top-level roster from `_assembly.json` with `run.status: running` and every phase `pending`; set a phase `running` immediately before it starts and `done` after success. Keep one row per loop and increment `iterations`; record a branch's chosen path as `selected`. Pass the same ledger path to every skill and subagent. Before marking a phase `done`, require its feedback outcome — appended entry ids or an explicit `no feedback` — and record `feedback_checked: true` on that row; under `--use-subagents` the subagent's short report carries that line. Do the same pass yourself for a MANUAL phase, naming the pipeline source as the subject when the harness is what needs to change. On a terminating error mark the phase and run `failed`; on a graceful stop mark the run `cancelled`; after every intended phase is done mark the run `complete`. Never describe an empty incomplete ledger as a clean run.
|
|
42
|
+
|
|
43
|
+
## Working directory (do this first)
|
|
44
|
+
|
|
45
|
+
Every constituent skill writes fixed filenames to its working directory. To keep one run's artifacts namespaced and avoid clobbering a prior run (foundry#282):
|
|
46
|
+
|
|
47
|
+
1. Pick a run slug — use the harness argument if given; else ask the user for a short project name up front (the directory must exist before phase 1 writes its first artifact, so don't wait for a source title); else default `update-interview-to-galaxy-run`.
|
|
48
|
+
2. Create `./<run-slug>/` in the current directory. If it exists, suffix `-2`, `-3`, … . If invoked with `--checkpoint`, run `git init ./<run-slug>/` now (see Run options).
|
|
49
|
+
3. Run **every** skill invocation below with `./<run-slug>/` as its working directory: **prefix every default input and output filename with `./<run-slug>/`** when you invoke the skill. The skills preserve their declared basenames and honor a harness-supplied directory; you supply the prefix on **both reads and writes**, so each phase finds the prior phase's output and nothing lands in the repo root.
|
|
50
|
+
|
|
51
|
+
Announce the chosen directory before starting.
|
|
52
|
+
|
|
53
|
+
## Pipeline
|
|
54
|
+
|
|
55
|
+
Run these phases in order. After each, confirm the expected artifact exists in the run directory before advancing.
|
|
56
|
+
|
|
57
|
+
1. **summarize-galaxy-workflow** — invoke the `summarize-galaxy-workflow` skill. Read an existing Galaxy gxformat2 (or .ga) workflow and emit a structured summary for interview and change-set steps.
|
|
58
|
+
2. **interview-to-galaxy-workflow-changeset** — invoke the `interview-to-galaxy-workflow-changeset` skill. Interview a user against an existing Galaxy workflow summary and emit a reviewable, step-anchored change-set.
|
|
59
|
+
3. **apply-galaxy-workflow-changeset** — invoke the `apply-galaxy-workflow-changeset` skill. Apply a reviewed change-set to a concrete Galaxy workflow: untouched regions preserved, tool-introducing edits injected as drafty steps.
|
|
60
|
+
4. **advance-galaxy-draft-step** (loop) — invoke the `advance-galaxy-draft-step` skill, once per step. It owns its own endstate oracle (`gxwf draft-next-step`) and concretizes one drafty step per call; re-invoke until it reports `draft: false`, then it extracts the concrete `galaxy-workflow.gxwf.yml` (via `gxwf draft-extract`) and continues.
|
|
61
|
+
5. **changeset-to-galaxy-test-plan** — invoke the `changeset-to-galaxy-test-plan` skill. Carry an existing Galaxy workflow's tests forward as a regression baseline and augment them for a change-set's deltas, emitting a Galaxy test plan.
|
|
62
|
+
6. **implement-galaxy-workflow-test** — invoke the `implement-galaxy-workflow-test` skill. Assemble Galaxy workflow test fixtures and assertions.
|
|
63
|
+
7. **validate-galaxy-workflow** — invoke the `validate-galaxy-workflow` skill. Run terminal gxwf validation on an assembled Galaxy workflow and classify workflow-level failures.
|
|
64
|
+
8. **run-workflow-test** — invoke the `run-workflow-test` skill. Execute a workflow's tests via Planemo; emit structured pass/fail and outputs.
|
|
65
|
+
9. **debug-galaxy-workflow-output** — invoke the `debug-galaxy-workflow-output` skill. Triage failing Galaxy run outputs; classify the failure surface and capture evidence before recommending repairs.
|
|
66
|
+
|
|
67
|
+
## Done
|
|
68
|
+
|
|
69
|
+
Report the final artifacts in `./<run-slug>/`.
|
|
70
|
+
|
|
71
|
+
If the run was invoked with `--feedback`, close the ledger first: set the final `run.status`, then tell the user the ledger path `./<run-slug>/foundry-feedback.ledger.yml` and how many entries it holds. If it holds any, offer to run the `report-foundry-run-feedback` skill on it, which triages them into local drafts and files nothing without explicit confirmation. Report an empty ledger as "no feedback recorded", never as evidence the Foundry worked well.
|
|
72
|
+
|
|
73
|
+
## Notes
|
|
74
|
+
|
|
75
|
+
- Do not re-implement any skill's internal logic here; this harness only sequences and routes.
|
|
76
|
+
- Carry unresolved assumptions forward as notes rather than inventing missing inputs.
|
|
77
|
+
- The workflow is both an input and the output — the Foundry's first GALAXY → GALAXY (edit) pipeline. Untouched regions must stay byte-stable; only change-set targets change.
|
|
78
|
+
- The live interview mechanics are harness-owned and precede phase 2, exactly as in INTERVIEW → GALAXY.
|
|
79
|
+
- A `.ga` input is converted to gxformat2 inside phase 1 (summarize-galaxy-workflow); the modification is judged against the converted baseline.
|
|
80
|
+
- Only edits that introduce or replace a tool make the phase-4 loop run; a change-set of purely direct edits leaves the draft concrete (`draft: false`) and the loop is a no-op.
|
|
81
|
+
- Tests: the existing workflow's `*-tests.yml` (captured in the phase-1 summary) is the regression baseline. changeset-to-galaxy-test-plan carries those cases forward and augments them for the change-set's behavioral deltas, emitting the `galaxy-test-plan` that implement-galaxy-workflow-test authors into the final tests; run-workflow-test then runs them as the regression check. `test-data-refs` come from the baseline's existing fixtures (or find-test-data when a change-set-added input needs new data).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source_pipeline": "update-interview-to-galaxy",
|
|
3
|
+
"source_revision": 2,
|
|
4
|
+
"harness_name": "pipeline-update-interview-to-galaxy",
|
|
5
|
+
"options": ["use-subagents", "checkpoint", "feedback"],
|
|
6
|
+
"required_tools": [
|
|
7
|
+
{ "tool": "foundry", "origin": "npm", "package": "@galaxy-foundry/gxwf-foundry", "invoke": "foundry", "invoke_fallback": "npx --package @galaxy-foundry/gxwf-foundry foundry", "availability_check": "foundry --help", "docs_url": "https://github.com/galaxyproject/foundry/blob/main/packages/gxwf-foundry/README.md", "source": "referenced" },
|
|
8
|
+
{ "tool": "galaxy-tool-cache", "origin": "npm", "package": "@galaxy-tool-util/cli", "package_version": "^1.8.1", "invoke": "galaxy-tool-cache", "invoke_fallback": "npx --yes --package @galaxy-tool-util/cli@1.8.1 galaxy-tool-cache", "availability_check": "galaxy-tool-cache --help | grep -q summarize", "docs_url": "https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli", "source": "implied", "implied_by": ["galaxy-tool-cache add", "galaxy-tool-cache list"] },
|
|
9
|
+
{ "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 validate", "gxwf draft-validate", "gxwf draft-next-step", "gxwf draft-extract", "gxwf validate-tests"] },
|
|
10
|
+
{ "tool": "planemo", "origin": "pypi", "package": "planemo", "package_version": "0.75.47", "invoke": "planemo", "invoke_fallback": "uvx --from planemo==0.75.47 planemo", "availability_check": "planemo --version", "docs_url": "https://planemo.readthedocs.io/", "source": "referenced" }
|
|
11
|
+
],
|
|
12
|
+
"phases": [
|
|
13
|
+
{ "phase": 1, "kind": "mold", "skill": "summarize-galaxy-workflow", "cast_present": true, "loop": false },
|
|
14
|
+
{ "phase": 2, "kind": "mold", "skill": "interview-to-galaxy-workflow-changeset", "cast_present": true, "loop": false },
|
|
15
|
+
{ "phase": 3, "kind": "mold", "skill": "apply-galaxy-workflow-changeset", "cast_present": true, "loop": false },
|
|
16
|
+
{ "phase": 4, "kind": "mold", "skill": "advance-galaxy-draft-step", "cast_present": true, "loop": true },
|
|
17
|
+
{ "phase": 5, "kind": "mold", "skill": "changeset-to-galaxy-test-plan", "cast_present": true, "loop": false },
|
|
18
|
+
{ "phase": 6, "kind": "mold", "skill": "implement-galaxy-workflow-test", "cast_present": true, "loop": false },
|
|
19
|
+
{ "phase": 7, "kind": "mold", "skill": "validate-galaxy-workflow", "cast_present": true, "loop": false },
|
|
20
|
+
{ "phase": 8, "kind": "mold", "skill": "run-workflow-test", "cast_present": true, "loop": false },
|
|
21
|
+
{ "phase": 9, "kind": "mold", "skill": "debug-galaxy-workflow-output", "cast_present": true, "loop": false }
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: run-workflow-test
|
|
3
|
+
description: "Execute a workflow's tests via Planemo; emit structured pass/fail and outputs."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# run-workflow-test
|
|
7
|
+
|
|
8
|
+
Follow the procedure below and use the artifact/reference sections as the runtime contract.
|
|
9
|
+
|
|
10
|
+
## When To Use
|
|
11
|
+
|
|
12
|
+
- Execute a workflow's tests via Planemo; emit structured pass/fail and outputs.
|
|
13
|
+
|
|
14
|
+
## Inputs
|
|
15
|
+
|
|
16
|
+
- No upstream artifact inputs declared. See the procedure for user-supplied runtime inputs.
|
|
17
|
+
|
|
18
|
+
## Outputs
|
|
19
|
+
|
|
20
|
+
- Write artifact `workflow-test-result` as `workflow-test-result.json`. Format: `json`. Structured status plus captured evidence — Planemo result, invocation/history/workflow ids, artifact paths, Galaxy mode, and (on failure) the observed modality and next reference surface — for debug-galaxy-workflow-output. Also the faithful handoff when no test exists or none could be run.
|
|
21
|
+
|
|
22
|
+
## Required Tools
|
|
23
|
+
|
|
24
|
+
- **`gxwf`** (gxwf). `npm install -g '@galaxy-tool-util/cli@^1.8.1'`.
|
|
25
|
+
Ephemeral run: `npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf`.
|
|
26
|
+
Check: `gxwf --help | grep -q draft-validate`.
|
|
27
|
+
Docs: https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli
|
|
28
|
+
- **`planemo`** (planemo). `uv tool install planemo==0.75.47` (or `pip install planemo==0.75.47`).
|
|
29
|
+
Ephemeral run: `uvx --from planemo==0.75.47 planemo`.
|
|
30
|
+
Check: `planemo --version`.
|
|
31
|
+
Docs: https://planemo.readthedocs.io/
|
|
32
|
+
Bundled reference: `references/cli/planemo.md`.
|
|
33
|
+
|
|
34
|
+
## Load Upfront
|
|
35
|
+
|
|
36
|
+
- `references/cli/planemo.md`: CLI tool reference copied verbatim into the bundle. Runtime that executes the Galaxy or CWL workflow test; install before driving the harness.
|
|
37
|
+
- `references/schemas/tests-format.schema.json`: Schema file copied verbatim into the bundle. Validate Galaxy workflow test files before starting a Planemo or Galaxy-backed execution.
|
|
38
|
+
|
|
39
|
+
## Load On Demand
|
|
40
|
+
|
|
41
|
+
- `references/cli/validate-tests.json`: CLI command reference packaged as a sidecar. Run static schema and workflow-label checks before expensive workflow execution. Use when: before invoking Planemo when a Galaxy workflow test file is present.
|
|
42
|
+
- `references/notes/galaxy-workflow-invocation-failure-reference.md`: Research note copied verbatim into the bundle. Preserve invocation identifiers and state summaries needed to inspect workflow-level runtime failures after Planemo returns. Use when: planemo reports a failed, cancelled, missing-output, or ambiguous workflow invocation result.
|
|
43
|
+
- `references/notes/planemo-asserts-idioms.md`: Research note copied verbatim into the bundle. Interpret assertion failures and choose the right fast inner-loop command before full reruns. Use when: a workflow test file exists and the task is to run, iterate, or classify its test assertions.
|
|
44
|
+
- `references/notes/planemo-workflow-test-architecture.md`: Research note copied verbatim into the bundle. Run workflow tests while preserving Planemo structured artifacts, Galaxy mode, invocation id, history id, and API follow-up context. Use when: choosing between managed Galaxy, external Galaxy, full test runs, existing invocation checks, or direct workflow runs.
|
|
45
|
+
|
|
46
|
+
## Validation
|
|
47
|
+
|
|
48
|
+
- None declared.
|
|
49
|
+
|
|
50
|
+
## Procedure
|
|
51
|
+
|
|
52
|
+
Execute an assembled workflow's test file via planemo and emit a structured pass/fail with the artifacts a debug pass needs. One invocation runs the test once, captures the evidence, and — on failure — classifies the failure modality and names the next reference surface to inspect. It does not repair anything; that is debug-galaxy-workflow-output's job.
|
|
53
|
+
|
|
54
|
+
### Sequence
|
|
55
|
+
|
|
56
|
+
0. **Establish the test definition.** Locate the workflow's test file before anything else. If none can be found, do not abort: emit `workflow-test-result.json` with `status: test-definition-missing`, the paths searched, and the workflow it was searched for, then stop. Emit `status: not-run` plus a `not_run_reason` instead when a test exists but cannot be executed — a static validate-tests failure, missing test data, an unavailable Galaxy, an uninstallable tool, a timeout, or a checkout the caller has not confirmed as trusted. A downstream consumer needs to know that nothing ran; it must never have to infer it from a missing file.
|
|
57
|
+
1. **Validate before running.** When a test file is present, run validate-tests for the static schema and workflow-label checks first. A run is expensive; do not spend one on a test file that fails static validation.
|
|
58
|
+
2. **Pick the Galaxy mode.** Run against a Planemo-managed Galaxy or an existing/external Galaxy. **Planemo-managed** is the default and needs no pre-provisioned server: `planemo test` bootstraps its own Galaxy and installs the workflow's tools from the Tool Shed/conda — so the absence of a running Galaxy is not a reason to skip the run. Use an existing/external Galaxy only when you deliberately want to target one (shared instance, pre-installed heavy tools/reference data, specific credentials). The real cost of the managed path is install/runtime weight (large tools or multi-GB reference databases), which is a deliberate deferral, not an impossibility. Record which mode was used, how tools, workflows, and test data were staged, and the URLs or API credentials a follow-up inspection would need. The choice and its consequences are guided by planemo-workflow-test-architecture.
|
|
59
|
+
3. **Do not pin a Galaxy version.** Leave `--galaxy_branch` off the command unless the user or the harness supplied a specific branch, and never guess a `release_*` value — Planemo's default targets the newest Galaxy, which is the only version guaranteed to understand every construct a freshly authored workflow can contain. If a branch was supplied, record it in the output so a later failure can be read against it.
|
|
60
|
+
4. **Run and capture.** Drive `planemo test` with structured output enabled. Preserve the invocation id, history id, workflow id, the Planemo structured result, and any test-output artifact paths — these are the inputs the debug skill consumes.
|
|
61
|
+
5. **Classify on failure.** When the run exits non-zero or reports failed assertions, failed jobs, a failed invocation, missing outputs, or upload/staging problems, identify the observed failure modality and the single next reference surface to open: Planemo result, Galaxy job API, Galaxy invocation API, history contents, or the test assertion report. Use planemo-asserts-idioms to read assertion failures and galaxy-workflow-invocation-failure-reference to preserve invocation identifiers and state.
|
|
62
|
+
6. **Hand off.** Emit the structured summary carrying a `status` from the closed set `pass | fail | test-definition-missing | not-run` — green, or red with modality + captured artifacts + the named next surface — for debug-galaxy-workflow-output. A `test-definition-missing` or `not-run` result is never reported as a pass and never as a Planemo failure: neither carries a failure modality or a next reference surface, because nothing ran. A consumer must read those two states as *no runtime evidence*, not as a debug target.
|
|
63
|
+
|
|
64
|
+
Keep this skill's output a faithful record of what happened, not a diagnosis. Mislabeling a staging failure as an assertion failure here sends the debug pass to the wrong reference surface.
|
|
65
|
+
|
|
66
|
+
## Feedback Mode
|
|
67
|
+
|
|
68
|
+
- Feedback mode is off unless the caller explicitly enables `--feedback` or supplies a feedback-ledger path.
|
|
69
|
+
- When enabled, read `_feedback.md` before doing the work and use its registered `foundry-feedback.ledger.yml` protocol.
|
|
70
|
+
- Preserve harness-owned run and phase state. Append only concrete observations about a canonical Foundry source asset or a related project that this run showed to be at fault; do not put ordinary workflow requirements in this ledger.
|
|
71
|
+
- Before reporting completion, make one explicit pass over the work you just did. Do not ask yourself whether anything was unclear — recall what happened: where you guessed at something the instructions should have settled, needed information this bundle does not carry, hit an instruction that contradicted another or contradicted the artifacts in front of you, used a packaged reference that did not cover your case, or did something the procedure never describes.
|
|
72
|
+
- Append an entry for each such event that clears the protocol's bar. If none do, append nothing and report `no feedback` explicitly. Silence and a clean pass are not the same thing, and nothing downstream can tell them apart unless you say which one it was.
|
|
73
|
+
- Pass the same ledger path to any subagent used for this work, and merge updates serially so one writer cannot overwrite another.
|
|
74
|
+
|
|
75
|
+
## Runtime Notes
|
|
76
|
+
|
|
77
|
+
- Do not read Foundry source files at runtime; use only files packaged in this skill bundle and user-supplied artifacts.
|
|
78
|
+
- Preserve declared artifact filenames unless the user or harness supplies explicit paths.
|
|
79
|
+
- Carry unresolved assumptions into the output artifact instead of silently inventing missing source evidence.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"provenance_schema_version": 4,
|
|
3
|
+
"cast_target": "claude",
|
|
4
|
+
"mold": {
|
|
5
|
+
"name": "run-workflow-test",
|
|
6
|
+
"path": "content/molds/run-workflow-test/index.md",
|
|
7
|
+
"revision": 7,
|
|
8
|
+
"content_hash": "259675e41c65f7622049cc9ef5f64b7d9f7ac5edb005555a09045e747708218c",
|
|
9
|
+
"commit": "79bf5c3ab98eec3a67948d8bdebb9dba7d8a2359"
|
|
10
|
+
},
|
|
11
|
+
"cast_at": "2026-09-12T19:19:46.957Z",
|
|
12
|
+
"cast_date": "2026-07-20",
|
|
13
|
+
"cast_revision": 1,
|
|
14
|
+
"cast_history": [
|
|
15
|
+
{
|
|
16
|
+
"rev": 1,
|
|
17
|
+
"date": "2026-07-20",
|
|
18
|
+
"note": "planemo 0.75.45"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"refs": [
|
|
22
|
+
{
|
|
23
|
+
"kind": "cli-command",
|
|
24
|
+
"mode": "sidecar",
|
|
25
|
+
"ref": "[[validate-tests]]",
|
|
26
|
+
"src": "content/cli/gxwf/validate-tests.md",
|
|
27
|
+
"dst": "references/cli/validate-tests.json",
|
|
28
|
+
"used_at": "runtime",
|
|
29
|
+
"load": "on-demand",
|
|
30
|
+
"evidence": "corpus-observed",
|
|
31
|
+
"purpose": "Run static schema and workflow-label checks before expensive workflow execution.",
|
|
32
|
+
"trigger": "Before invoking Planemo when a Galaxy workflow test file is present.",
|
|
33
|
+
"src_hash": "7157ef7750ead142086e0597d52d2ef6ef072e8ec2939f2ac6965bdccf04849d",
|
|
34
|
+
"dst_hash": "973184698733ffb86bb5a15781902846afec311047f5684f779f8ad023e5d24c",
|
|
35
|
+
"source": "deterministic"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"kind": "cli-tool",
|
|
39
|
+
"mode": "verbatim",
|
|
40
|
+
"ref": "[[planemo]]",
|
|
41
|
+
"src": "content/cli/planemo/index.md",
|
|
42
|
+
"dst": "references/cli/planemo.md",
|
|
43
|
+
"used_at": "runtime",
|
|
44
|
+
"load": "upfront",
|
|
45
|
+
"evidence": "corpus-observed",
|
|
46
|
+
"purpose": "Runtime that executes the Galaxy or CWL workflow test; install before driving the harness.",
|
|
47
|
+
"src_hash": "12e8cac3ffb4ab7f007ced7a8d4f01e6b3785d06a55926496bbacc0a8f3fc5c5",
|
|
48
|
+
"dst_hash": "12e8cac3ffb4ab7f007ced7a8d4f01e6b3785d06a55926496bbacc0a8f3fc5c5",
|
|
49
|
+
"source": "deterministic"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"kind": "research",
|
|
53
|
+
"mode": "verbatim",
|
|
54
|
+
"ref": "[[galaxy-workflow-invocation-failure-reference]]",
|
|
55
|
+
"src": "content/research/galaxy-workflow-invocation-failure-reference/index.md",
|
|
56
|
+
"dst": "references/notes/galaxy-workflow-invocation-failure-reference.md",
|
|
57
|
+
"used_at": "runtime",
|
|
58
|
+
"load": "on-demand",
|
|
59
|
+
"evidence": "corpus-observed",
|
|
60
|
+
"purpose": "Preserve invocation identifiers and state summaries needed to inspect workflow-level runtime failures after Planemo returns.",
|
|
61
|
+
"trigger": "When Planemo reports a failed, cancelled, missing-output, or ambiguous workflow invocation result.",
|
|
62
|
+
"src_hash": "e8115df6ddca447d47d77cb33becda847cdd19b2cbe9924782bfc180b94bb451",
|
|
63
|
+
"dst_hash": "e8115df6ddca447d47d77cb33becda847cdd19b2cbe9924782bfc180b94bb451",
|
|
64
|
+
"source": "deterministic"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "research",
|
|
68
|
+
"mode": "verbatim",
|
|
69
|
+
"ref": "[[planemo-asserts-idioms]]",
|
|
70
|
+
"src": "content/research/planemo-asserts-idioms/index.md",
|
|
71
|
+
"dst": "references/notes/planemo-asserts-idioms.md",
|
|
72
|
+
"used_at": "runtime",
|
|
73
|
+
"load": "on-demand",
|
|
74
|
+
"evidence": "corpus-observed",
|
|
75
|
+
"purpose": "Interpret assertion failures and choose the right fast inner-loop command before full reruns.",
|
|
76
|
+
"trigger": "When a workflow test file exists and the task is to run, iterate, or classify its test assertions.",
|
|
77
|
+
"src_hash": "81b8feeccd891642572e587a494d1e4d3a1b369a19d92947626230494fd92beb",
|
|
78
|
+
"dst_hash": "81b8feeccd891642572e587a494d1e4d3a1b369a19d92947626230494fd92beb",
|
|
79
|
+
"source": "deterministic"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"kind": "research",
|
|
83
|
+
"mode": "verbatim",
|
|
84
|
+
"ref": "[[planemo-workflow-test-architecture]]",
|
|
85
|
+
"src": "content/research/planemo-workflow-test-architecture/index.md",
|
|
86
|
+
"dst": "references/notes/planemo-workflow-test-architecture.md",
|
|
87
|
+
"used_at": "runtime",
|
|
88
|
+
"load": "on-demand",
|
|
89
|
+
"evidence": "corpus-observed",
|
|
90
|
+
"purpose": "Run workflow tests while preserving Planemo structured artifacts, Galaxy mode, invocation id, history id, and API follow-up context.",
|
|
91
|
+
"trigger": "When choosing between managed Galaxy, external Galaxy, full test runs, existing invocation checks, or direct workflow runs.",
|
|
92
|
+
"src_hash": "d6ac347c8361d6c312c64c1197426673e53aa1c5577e1c72f1c80a20ccd1cce3",
|
|
93
|
+
"dst_hash": "d6ac347c8361d6c312c64c1197426673e53aa1c5577e1c72f1c80a20ccd1cce3",
|
|
94
|
+
"source": "deterministic"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"kind": "schema",
|
|
98
|
+
"mode": "verbatim",
|
|
99
|
+
"ref": "[[tests-format]]",
|
|
100
|
+
"src": "package://@galaxy-foundry/gxwf-foundry#testsFormatSchema",
|
|
101
|
+
"dst": "references/schemas/tests-format.schema.json",
|
|
102
|
+
"used_at": "runtime",
|
|
103
|
+
"load": "upfront",
|
|
104
|
+
"evidence": "corpus-observed",
|
|
105
|
+
"purpose": "Validate Galaxy workflow test files before starting a Planemo or Galaxy-backed execution.",
|
|
106
|
+
"license": "MIT",
|
|
107
|
+
"license_file": "LICENSES/galaxy-tool-util-ts.LICENSE",
|
|
108
|
+
"src_hash": "ff0de5041f4c3de0ab7abe9e7555c5a7120665b077f42661461301b0fb26f372",
|
|
109
|
+
"dst_hash": "ff0de5041f4c3de0ab7abe9e7555c5a7120665b077f42661461301b0fb26f372",
|
|
110
|
+
"source": "deterministic",
|
|
111
|
+
"license_file_hash": "383450c494c01c466bcf22df102540a39ac89da50563fd7be686ba06772f96b3"
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"artifacts": {
|
|
115
|
+
"produces": [
|
|
116
|
+
{
|
|
117
|
+
"id": "workflow-test-result",
|
|
118
|
+
"kind": "json",
|
|
119
|
+
"default_filename": "workflow-test-result.json",
|
|
120
|
+
"description": "Structured status plus captured evidence — Planemo result, invocation/history/workflow ids, artifact paths, Galaxy mode, and (on failure) the observed modality and next reference surface — for debug-galaxy-workflow-output. Also the faithful handoff when no test exists or none could be run."
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"consumes": []
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"tool": "gxwf",
|
|
4
|
+
"origin": "npm",
|
|
5
|
+
"package": "@galaxy-tool-util/cli",
|
|
6
|
+
"package_version": "^1.8.1",
|
|
7
|
+
"invoke": "gxwf",
|
|
8
|
+
"invoke_fallback": "npx --yes --package @galaxy-tool-util/cli@1.8.1 gxwf",
|
|
9
|
+
"availability_check": "gxwf --help | grep -q draft-validate",
|
|
10
|
+
"docs_url": "https://github.com/jmchilton/galaxy-tool-util-ts/tree/main/packages/cli",
|
|
11
|
+
"source": "implied",
|
|
12
|
+
"implied_by": [
|
|
13
|
+
"gxwf validate-tests"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"tool": "planemo",
|
|
18
|
+
"origin": "pypi",
|
|
19
|
+
"package": "planemo",
|
|
20
|
+
"package_version": "0.75.47",
|
|
21
|
+
"invoke": "planemo",
|
|
22
|
+
"invoke_fallback": "uvx --from planemo==0.75.47 planemo",
|
|
23
|
+
"availability_check": "planemo --version",
|
|
24
|
+
"docs_url": "https://planemo.readthedocs.io/",
|
|
25
|
+
"reference": "references/cli/planemo.md",
|
|
26
|
+
"source": "referenced"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: cli-tool
|
|
3
|
+
tool: planemo
|
|
4
|
+
origin: pypi
|
|
5
|
+
package: planemo
|
|
6
|
+
package_version: "0.75.47"
|
|
7
|
+
invoke: planemo
|
|
8
|
+
invoke_fallback: "uvx --from planemo==0.75.47 planemo"
|
|
9
|
+
availability_check: "planemo --version"
|
|
10
|
+
docs_url: "https://planemo.readthedocs.io/"
|
|
11
|
+
tags:
|
|
12
|
+
- cli/planemo
|
|
13
|
+
status: draft
|
|
14
|
+
created: 2026-05-10
|
|
15
|
+
revised: 2026-09-13
|
|
16
|
+
revision: 6
|
|
17
|
+
summary: "Galaxy tool/workflow runtime testing CLI; used by run-workflow-test and friends."
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# planemo
|
|
21
|
+
|
|
22
|
+
Galaxy's runtime testing and authoring CLI. Foundry Molds invoke `planemo test`, `planemo lint`, and friends for end-to-end workflow validation; the cast skill consumes structured JSON output from `--test_output_json` and validates it against planemo-test-report.
|
|
23
|
+
|
|
24
|
+
## Pin
|
|
25
|
+
|
|
26
|
+
`package_version` pins to the released `planemo==0.75.47` from PyPI — base upstream planemo, no fork. It is the single source of truth: the sync scripts carry no pin of their own and stamp whichever planemo they invoked, and `make check-planemo-pin` fails if any recorded copy of the version disagrees with this field.
|
|
27
|
+
|
|
28
|
+
[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.
|
|
29
|
+
|
|
30
|
+
The floor is now 0.75.46 for a packaging reason, not a feature one. `galaxy-tool-util` declares its `galaxy-tool-util-models` dependency unconstrained, so a fresh resolve of an older planemo pairs a 25.1.x `galaxy-tool-util` with a 26.x `galaxy-tool-util-models` and dies at import (`cannot import name 'ToolOutputCollectionStructure'`). [galaxyproject/planemo#1674](https://github.com/galaxyproject/planemo/pull/1674) constrains the transitive dependency and first shipped in 0.75.46. Any pin below that needs `galaxy-tool-util-models<26` installed alongside it.
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
uvx --from planemo==0.75.47 planemo --version
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
For a persistent install:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
uv tool install planemo==0.75.47
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
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.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "cli-command",
|
|
3
|
+
"tool": "gxwf",
|
|
4
|
+
"command": "validate-tests",
|
|
5
|
+
"summary": "Validate Galaxy workflow test files and optionally cross-check labels against their workflow.",
|
|
6
|
+
"source_path": "content/cli/gxwf/validate-tests.md",
|
|
7
|
+
"source_revision": 3,
|
|
8
|
+
"package": "@galaxy-tool-util/cli",
|
|
9
|
+
"description": "Validate a workflow-test file (*-tests.yml, *.gxwf-tests.yml) against the Galaxy Tests schema",
|
|
10
|
+
"synopsis": "gxwf validate-tests [options] <file>",
|
|
11
|
+
"args": [
|
|
12
|
+
{
|
|
13
|
+
"raw": "file",
|
|
14
|
+
"name": "file",
|
|
15
|
+
"required": true,
|
|
16
|
+
"variadic": false,
|
|
17
|
+
"description": "Tests file (*-tests.yml)"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"options": [
|
|
21
|
+
{
|
|
22
|
+
"flags": "--json",
|
|
23
|
+
"name": "json",
|
|
24
|
+
"description": "Output structured JSON report",
|
|
25
|
+
"takesArgument": false,
|
|
26
|
+
"optionalArgument": false,
|
|
27
|
+
"negatable": false
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"flags": "--workflow <path>",
|
|
31
|
+
"name": "workflow",
|
|
32
|
+
"description": "Cross-check job inputs + output assertions against a workflow (.ga / .gxwf.yml)",
|
|
33
|
+
"takesArgument": true,
|
|
34
|
+
"argumentPlaceholder": "<path>",
|
|
35
|
+
"optionalArgument": false,
|
|
36
|
+
"negatable": false
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"body": "# `gxwf validate-tests`\n\nValidate a Galaxy workflow test file (`*-tests.yml` or `*.gxwf-tests.yml`) against the Galaxy tests schema. Optionally cross-check the test file against a workflow so missing input labels, missing output labels, and type mismatches fail before a slow Planemo run.\n\n`<file>` is a workflow test YAML file, usually named `<workflow>-tests.yml` or `<workflow>.gxwf-tests.yml`.\n\n## Output\n\nDefault output is human-readable validation diagnostics.\n\nWith `--json`, the command emits a structured report describing schema errors and, when `--workflow` is supplied, workflow-coherence errors such as missing labels or incompatible input values.\n\n## Examples\n\n```bash\ngxwf validate-tests workflow-tests.yml\ngxwf validate-tests workflow-tests.yml --json\ngxwf validate-tests workflow-tests.yml --workflow workflow.gxwf.yml --json\n```\n\n## Gotchas\n\n- This is the cheap static gate before Planemo. It does not execute the workflow and does not prove assertions pass on real outputs.\n- Use `--workflow` whenever the workflow file is available. Schema-valid tests can still reference stale input/output labels after workflow edits.\n- Run this before `planemo workflow_test_on_invocation` or full `planemo test`; it catches authoring mistakes without starting Galaxy.\n- The assertion vocabulary itself comes from tests-format; strategy for choosing assertions lives in planemo-asserts-idioms."
|
|
40
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: research
|
|
3
|
+
title: "Galaxy workflow invocation failure reference"
|
|
4
|
+
tags:
|
|
5
|
+
- target/galaxy
|
|
6
|
+
status: draft
|
|
7
|
+
created: 2026-05-02
|
|
8
|
+
revised: 2026-05-02
|
|
9
|
+
revision: 1
|
|
10
|
+
related_notes:
|
|
11
|
+
- "galaxy-tool-job-failure-reference"
|
|
12
|
+
- "planemo-workflow-test-architecture"
|
|
13
|
+
- "galaxy-collection-semantics"
|
|
14
|
+
related_molds:
|
|
15
|
+
- "run-workflow-test"
|
|
16
|
+
- "debug-galaxy-workflow-output"
|
|
17
|
+
- "validate-galaxy-workflow"
|
|
18
|
+
sources:
|
|
19
|
+
- "https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/schema/invocation.py"
|
|
20
|
+
- "https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/workflow/run.py"
|
|
21
|
+
- "https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/workflow/modules.py"
|
|
22
|
+
- "https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/webapps/galaxy/api/workflows.py"
|
|
23
|
+
summary: "Reference for Galaxy workflow invocation states, messages, failure reasons, and invocation API surfaces."
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Galaxy Workflow Invocation Failure Reference
|
|
27
|
+
|
|
28
|
+
This note describes workflow-level failure surfaces in Galaxy. It is separate from galaxy-tool-job-failure-reference because invocation state answers whether Galaxy could schedule and drive the workflow, while job state answers whether individual tool jobs succeeded.
|
|
29
|
+
|
|
30
|
+
## Invocation Versus Job Failure
|
|
31
|
+
|
|
32
|
+
Important distinction:
|
|
33
|
+
|
|
34
|
+
- Invocation state says whether Galaxy scheduled, cancelled, failed, or completed the workflow invocation.
|
|
35
|
+
- Job state says whether jobs produced by invocation steps succeeded or failed.
|
|
36
|
+
- Invocation messages explain scheduler/evaluation/cancellation problems.
|
|
37
|
+
- Step states usually describe scheduling progress, not actual job success, unless a legacy serialization mode substitutes job state.
|
|
38
|
+
|
|
39
|
+
A robust workflow test reference should inspect both invocation APIs and job APIs.
|
|
40
|
+
|
|
41
|
+
## Invocation States
|
|
42
|
+
|
|
43
|
+
Galaxy invocation states are defined in `https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/schema/invocation.py` and related model code.
|
|
44
|
+
|
|
45
|
+
| State | Meaning |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `new` | Newly created invocation. |
|
|
48
|
+
| `requires_materialization` | Deferred or undeferred inputs must materialize before scheduling can continue. |
|
|
49
|
+
| `ready` | Ready for another scheduler iteration. |
|
|
50
|
+
| `scheduled` | Workflow has been scheduled. Older clients may treat this as successful terminal state. |
|
|
51
|
+
| `cancelling` | Scheduler will cancel jobs and subworkflow invocations. |
|
|
52
|
+
| `cancelled` | Cancellation terminal state. |
|
|
53
|
+
| `failed` | Scheduler/evaluation/materialization failure terminal state. |
|
|
54
|
+
| `completed` | Newer completion state after all jobs reach terminal states. |
|
|
55
|
+
|
|
56
|
+
Version caveat: `completed` may not be uniformly available across all Galaxy/Planemo combinations. Planemo accounts for both `scheduled` and `completed` as success-like invocation states.
|
|
57
|
+
|
|
58
|
+
## Invocation Message Reasons
|
|
59
|
+
|
|
60
|
+
Structured invocation messages are the main durable surface for workflow-level failures.
|
|
61
|
+
|
|
62
|
+
| Reason | Typical meaning |
|
|
63
|
+
|---|---|
|
|
64
|
+
| `dataset_failed` | Dataset input or upstream dataset was failed/unusable. |
|
|
65
|
+
| `collection_failed` | Collection was failed, incompletely populated, or unusable. |
|
|
66
|
+
| `job_failed` | Upstream dependent job failed. |
|
|
67
|
+
| `output_not_found` | Expected step/subworkflow output could not be resolved. |
|
|
68
|
+
| `expression_evaluation_failed` | Workflow expression or condition evaluation failed. |
|
|
69
|
+
| `when_not_boolean` | Conditional `when` expression did not return a boolean. |
|
|
70
|
+
| `unexpected_failure` | Scheduler or evaluation failure without a more specific safe reason. |
|
|
71
|
+
| `workflow_parameter_invalid` | Workflow parameter validation failed. |
|
|
72
|
+
| `step_input_deleted` | Step input dataset/collection was deleted. |
|
|
73
|
+
| `history_deleted` | Invocation history was deleted, causing cancellation. |
|
|
74
|
+
| `user_request` | User/API cancellation. |
|
|
75
|
+
| `cancelled_on_review` | Pause/review step rejected continuation. |
|
|
76
|
+
| `workflow_output_not_found` | Warning: declared workflow output was not found. |
|
|
77
|
+
|
|
78
|
+
Message records can include affected workflow step id, dependent step id, job id, HDA/HDCA ids, output name, and nested workflow step index path. These fields matter more than free-text messages for reference-quality diagnosis.
|
|
79
|
+
|
|
80
|
+
## Common Workflow-Level Failure Surfaces
|
|
81
|
+
|
|
82
|
+
| Surface | Reference signal |
|
|
83
|
+
|---|---|
|
|
84
|
+
| Request-time validation | API returns an error before useful invocation state exists. |
|
|
85
|
+
| Input materialization | Invocation enters `requires_materialization`, then may fail with `dataset_failed`. |
|
|
86
|
+
| Conditional evaluation | Invocation messages include `expression_evaluation_failed` or `when_not_boolean`. |
|
|
87
|
+
| Missing output graph edge | Invocation messages include `output_not_found`. |
|
|
88
|
+
| Deleted/purged inputs | Invocation messages include `step_input_deleted` or `dataset_failed`. |
|
|
89
|
+
| Upstream job failure | Invocation messages or summaries point to `job_failed`; job API has details. |
|
|
90
|
+
| Collection population failure | Invocation messages include `collection_failed`; inspect HDCA and mapped jobs. |
|
|
91
|
+
| Pause/review rejection | Cancellation reason `cancelled_on_review`. |
|
|
92
|
+
| User/history cancellation | Cancellation messages `user_request` or `history_deleted`. |
|
|
93
|
+
| Warning-only missing output | `workflow_output_not_found` warning; may later become Planemo assertion failure. |
|
|
94
|
+
|
|
95
|
+
## API Surfaces
|
|
96
|
+
|
|
97
|
+
Useful invocation APIs from `https://github.com/galaxyproject/galaxy/blob/dev/lib/galaxy/webapps/galaxy/api/workflows.py`:
|
|
98
|
+
|
|
99
|
+
| API | Use |
|
|
100
|
+
|---|---|
|
|
101
|
+
| `GET /api/invocations/{invocation_id}` | Invocation state, messages, inputs, outputs, and steps. |
|
|
102
|
+
| `GET /api/invocations/{invocation_id}?step_details=true` | Richer step detail, jobs, outputs, and output collections. |
|
|
103
|
+
| `GET /api/invocations/steps/{step_id}` | Detail for one invocation step. |
|
|
104
|
+
| `GET /api/invocations/{invocation_id}/steps/{step_id}` | Step detail scoped to invocation. |
|
|
105
|
+
| `GET /api/invocations/{invocation_id}/jobs_summary` | Job state summary across the invocation. |
|
|
106
|
+
| `GET /api/invocations/{invocation_id}/step_jobs_summary` | Job state summary per workflow invocation step. |
|
|
107
|
+
| `GET /api/invocations/{invocation_id}/completion` | Completion record, if available. |
|
|
108
|
+
| `DELETE /api/invocations/{invocation_id}` | Cancel invocation. |
|
|
109
|
+
| `PUT /api/invocations/{invocation_id}/steps/{step_id}` | Continue or cancel pause/review step. |
|
|
110
|
+
| `GET /api/invocations/{invocation_id}/report` | Invocation report surface. |
|
|
111
|
+
|
|
112
|
+
Workflow aliases under `/api/workflows/{workflow_id}/invocations/...` also exist.
|
|
113
|
+
|
|
114
|
+
## Planemo Caveats
|
|
115
|
+
|
|
116
|
+
Planemo polls invocation and job state, but its user-facing output may not expose all structured invocation messages. Treat Planemo terminal output as a summary; use raw invocation and job APIs when the failure class matters.
|
|
117
|
+
|
|
118
|
+
Likely noisy boundaries:
|
|
119
|
+
|
|
120
|
+
- Planemo may show failed job details but omit structured invocation messages.
|
|
121
|
+
- `step_jobs_summary` is useful in Galaxy but not necessarily surfaced directly by Planemo output.
|
|
122
|
+
- Subworkflow paths can be represented in Galaxy message fields but may not be displayed by Planemo.
|
|
123
|
+
- A workflow can be `completed` or `scheduled` while one or more jobs failed; job summaries must still be inspected.
|
|
124
|
+
|
|
125
|
+
## Durable Reference Use
|
|
126
|
+
|
|
127
|
+
Use this note when a workflow run fails before or around job scheduling, when outputs are missing without an obvious tool stderr cause, or when Planemo only reports a generic invocation failure.
|
|
128
|
+
|
|
129
|
+
The goal is not to prescribe a single repair loop. The goal is to preserve which Galaxy API surface proves the failure mode so later Molds can decide whether the defect belongs to data-flow, template, concrete step implementation, workflow test assertions, or runtime environment.
|
|
130
|
+
|
|
131
|
+
## Verification Gaps
|
|
132
|
+
|
|
133
|
+
Actual runs should verify:
|
|
134
|
+
|
|
135
|
+
- Whether Planemo surfaces invocation `messages` for each reason.
|
|
136
|
+
- Whether `completed` and `/completion` are populated in the target Galaxy used by tests.
|
|
137
|
+
- How mapped collections and subworkflow failures appear in `step_jobs_summary`.
|
|
138
|
+
- How warning-only `workflow_output_not_found` interacts with Planemo assertions.
|