Knowledge base + casting pipeline for building Galaxy workflows with gxwf.
An LLM can read a paper or a Nextflow pipeline and propose a Galaxy workflow — and fail the same boring, detectable ways every time: hallucinated tool IDs, dropped +galaxyN revisions, fabricated parameter names, gxformat2 the parser rejects on line one. Hand-authored "convert a workflow" skills paper over these with prose caveats that don't compose and rot on the next regression. The Foundry's bet: a knowledge base becomes useful when its structure makes it executable, and a skill becomes trustworthy when its source stays inspectable.
Site: https://galaxyproject.github.io/foundry/
Convert workflows authored in other systems — papers describing computational analyses, Nextflow pipelines, CWL workflows — into validated Galaxy workflows in the gxformat2 format. The Foundry decomposes that conversion into atomic, schema-validated steps that an LLM agent can execute reliably, grounded in gxwf's static validation of gxformat2 and tool steps.
Hand-authored, monolithic conversion skills are brittle, hard to test, and don't compose. The Foundry takes a different shape:
- Principled. The Foundry keeps upstream systems authoritative, records provenance for derived artifacts, uses deterministic tooling for deterministic checks, and keeps source knowledge portable across agent runtimes. See
content/meta/guiding-principles.md. - Decomposed. Each conversion step is its own Mold — a typed reference manifest that casts into a self-contained skill artifact. The full conversion is an ordered Pipeline of Molds.
- Schema-driven.
gxwfvalidates every authored step inline. The validation loop catches failure modes deterministically — UUID validity, tool-ID and+galaxyNrevision suffixes,input_connectionsparameter-name mismatches, conditional-selector branches intool_state— rather than relying on enumerated prose caveats. - Corpus-grounded. Patterns and Molds are derived from observed structure in the IWC workflow corpus, not invented top-down. Every reference is traceable back to one or more curated, working
gxformat2exemplars; the same exemplars double as evaluation material for cast skills. - Agent-friendly. Cast skills are condensed, isolated, and frozen against the Foundry version they were cast from. No runtime dependency on the Foundry, no chasing wiki-links from inside a skill. Casting is the integration boundary.
- Pipelines (
content/pipelines/) — ordered Mold sequences composing into an end-to-end conversion (paper-to-galaxy,nextflow-to-galaxy,cwl-to-galaxy,interview-to-galaxy,update-interview-to-galaxy,paper-to-cwl,nextflow-to-cwl). Build artifact and primary navigation surface. - Molds (
content/molds/) — abstract templates describing a workflow-construction action. Each Mold is a typed reference manifest: it declares the patterns, CLI manual pages, schemas, prompts, and examples it depends on, and casts into one or more skill artifacts. - Patterns (
content/patterns/) — Galaxy workflow construction reference (collection manipulation, tabular manipulation, conditional handling, custom-tool authoring). Wiki-linked from action Molds; pulled into cast skills via casting's pattern-kind dispatch. - CLI manual pages (
content/cli/<tool>/) — one note per command or subcommand, coveringgxwf,planemo,cwltool,cwl-utils,foundry, andgalaxy-tool-cache. Cast to JSON sidecars by action Molds that reference exact commands. - Schemas (
content/schemas/) —<name>.mdschema notes only; the JSON Schema itself lives in its TypeScript package atpackages/<name>-schema/src/<name>.schema.json(Foundry-authored) or is synced there from an upstream npm package (vendored). The note's frontmatter declarespackage+package_export.site/src/lib/schema-registry.tsimports each schema directly from the package; Mold frontmatter cites schemas via[[wiki-link]]and cast imports the named runtime export at build time, serializing it verbatim into cast bundles. - Casts (
casts/claude/skills/<name>/) — generated Agent Skills shared by Claude Code and Codex. The historical target path remains while thin runtime manifests package the same tree for both products.
The committed casts/claude/ plugin root is dual-runtime: .claude-plugin/plugin.json and .codex-plugin/plugin.json both expose the same skills/ directory.
Claude Code:
/plugin marketplace add galaxyproject/foundry
/plugin install foundry-skills@galaxy-workflow-foundry
/foundry-skills:discover-shed-tool
Codex CLI:
codex plugin marketplace add galaxyproject/foundry
codex plugin add foundry-skills@galaxy-workflow-foundryThen run /skills or type $ to select a skill such as $discover-shed-tool. Codex can also select a skill implicitly from its description. Restart Codex after installing or refreshing the plugin if the skills do not appear.
Two flows feed the Foundry:
- Claude slash commands (
.claude/commands/) — current contributor workflows for agent-driven scaffold-prompt-validate. - Hand edits +
npm run validate— small fixes.
Casting produces skill artifacts: npm run cast -- <slug> --target=claude.
Frontmatter is contract-enforced by the shared zod schema in @galaxy-foundry/note-schema (used by both the validator and the site); every note carries a registered tag from meta_tags.yml. Validate before commit.
npm run validate # schema + cross-file checks
npm run test # vitest suite
npm run typecheck # tsc --noEmit
npm run dashboard # generate content/Dashboard.md
npm run index # generate content/Index.md
npm run readme # refresh this file's corpus counts
npm run cast # cast a Mold (see above)
npm run site:dev # Astro dev server--check variants on the generators detect drift; CI runs them before deploy.
Long-form design narrative under content/meta/, as notes of kind meta —
so the collection, not this list, is the authority on which records exist. Read in order:
Foundation
guiding-principles.md— why the Foundry prioritizes upstream authority, provenance, deterministic tooling, portability, actionable knowledge, and corpus grounding.architecture.md— directory layout, types, validation pipeline, site rendering.molds.md— the axes a Mold buckets on and the boundary against reference content.mold-spec.md— the Mold authoring contract: source layout, which files may sit besideindex.md, and who enforces it.casting.md— how typed Mold references become target-specific cast artifacts with provenance.cast-walkthrough.md— one real committed cast annotated end to end.eval-philosophy.md— whyeval.mdis an abstract oracle andscenarios.mdholds the concrete cases.corpus.md— IWC grounding; URL-not-mirror principle.harness-pipelines.md— pipeline narrative behindcontent/pipelines/.
Infrastructure
comparisons.md— positioning vs wikis/skill bundles plus a dated KB-to-skill landscape snapshot.pattern-authorship.md— authorship rules for operation-named, corpus-grounded pattern pages.schema-packages.md— where a Mold IO schema lives and how cast resolves one through a schema note.
content/meta/glossary.md shares the directory and is deliberately not a note.
Working system. Every pipeline casts end-to-end into Claude skills, on top of foundry-build cast + assemble-pipeline and the live Astro site.
Forward work is quality and reach rather than existence. Review is underway rather than finished, and eval coverage is partial — eval.md and scenarios.md are recommended rather than required, and the table below is what that costs today. Claude is the only cast target; a second one begins with a casts/<target>/_target.yml, which is what makes a target real.
| count | |
|---|---|
| Pipelines | 7 |
| Molds | 47 — 27 reviewed, 20 draft |
… with eval.md |
33 |
… with scenarios.md |
28 |
| Pattern pages | 54 |
| Source-pattern pages | 7 |
| CLI tools | 6 |
| CLI command pages | 26 |
| Schema notes | 14 |
| Research notes | 63 |
Counted from the corpus by foundry-build generate-readme, not by hand — make check-generated fails the build when they drift. Everything outside the markers is hand-written.