Agent Skill · cast paper-to-test-data
Resolve the test data a paper names into refs for each workflow input.
← All cast skills · Source mold →
Install with Claude Code
/plugin marketplace add galaxyproject/foundry
/plugin install foundry-skills@galaxy-workflow-foundry
Then invoke as:
/foundry-skills:paper-to-test-data
Install with Codex
codex plugin marketplace add galaxyproject/foundry
codex plugin add foundry-skills@galaxy-workflow-foundry
Then select with /skills or invoke explicitly as:
$paper-to-test-data
Install with Antigravity
git clone https://github.com/galaxyproject/foundry
agy plugin install foundry/casts/claude
Then select with /skills or invoke explicitly as:
/paper-to-test-data
Skill Bundle
/ packaged cast
- attached files
- 1
- upfront
- 1
- on demand
- 0
- cast rev
- n/a
- validated
- 0
Produces: 1 artifact.
Consumes: 3 artifacts.
Artifact Contract
/ skill handoff Produces
test-data-refs
Test data the paper names, one ref per workflow input (URLs, shapes, hashes). Shared id with [[find-test-data]], which fills only the inputs this Mold leaves unresolved.
jsontest-data-refs.json[[test-data-refs]]
Raw artifact contract
{
"id": "test-data-refs",
"kind": "json",
"default_filename": "test-data-refs.json",
"schema": "[[test-data-refs]]",
"description": "Test data the paper names, one ref per workflow input (URLs, shapes, hashes). Shared id with [[find-test-data]], which fills only the inputs this Mold leaves unresolved."
}
Consumes
freeform-summary
Free-form summary from [[summarize-paper]]; sample data and reference evidence the test fixtures derive from.
Raw artifact contract
{
"id": "freeform-summary",
"description": "Free-form summary from [[summarize-paper]]; sample data and reference evidence the test fixtures derive from.",
"producers": [
"interview-to-freeform-summary",
"summarize-paper"
]
}
freeform-galaxy-interface
Galaxy interface brief from [[freeform-summary-to-galaxy-interface]] pinning the workflow input labels, collection shapes, and datatypes each ref must map onto, in PAPER → GALAXY.
Raw artifact contract
{
"id": "freeform-galaxy-interface",
"description": "Galaxy interface brief from [[freeform-summary-to-galaxy-interface]] pinning the workflow input labels, collection shapes, and datatypes each ref must map onto, in PAPER → GALAXY.",
"producers": [
"freeform-summary-to-galaxy-interface"
]
}
freeform-cwl-design
CWL design from [[freeform-summary-to-cwl-design]] naming the workflow input ports each ref must map onto, in PAPER → CWL.
Raw artifact contract
{
"id": "freeform-cwl-design",
"description": "CWL design from [[freeform-summary-to-cwl-design]] naming the workflow input ports each ref must map onto, in PAPER → CWL.",
"producers": [
"freeform-summary-to-cwl-design"
]
}
Attached Files
/ runtime references Load upfront
schema
test-data-refs
packaged Output contract: one ref per workflow input, resolved or an honest gap with a reason. Cast bundles the JSON Schema; validate with `foundry validate-test-data-refs` before returning.
upfront runtime verbatim cast-validated deterministic 8.6 KB
- bundle
references/schemas/test-data-refs.schema.json - source
package://@galaxy-foundry/gxwf-foundry#testDataRefsSchema
Preview json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://galaxyproject.org/foundry/schemas/test-data-refs.schema.json",
"$comment": "Canonical source: packages/gxwf-foundry/src/schemas/test-data-refs/test-data-refs.schema.json in galaxyproject/foundry. Mold frontmatter cites this schema via [[test-data-refs]] wiki-links; the cast pipeline imports the `testDataRefsSchema` runtime export and serializes it into cast bundles. $defs.Fixture is a verbatim copy of the galaxy-workflow-test-plan Fixture; a test keeps them equal.",
"title": "Galaxy workflow test-data refs",
"description": "Test data for each Galaxy workflow input, written by the test-data-resolution chain (a source-specific Mold, then find-test-data) and read by implement-galaxy-workflow-test. One ref per workflow input; an input no leg could resolve stays in the list as an honest gap.",
"$ref": "#/$defs/TestDataRefs",
"$defs": {
"TestDataRefs": {
"type": "object",
"additionalProperties": false,
"required": [
"refs"
],
"properties": {
"refs": {
"type": "array",
"items": {
"$ref": "#/$defs/Ref"
},
"description": "One entry per workflow input label. A later leg of the chain keeps every entry an earlier leg resolved, unchanged, and replaces only unresolved ones."
}
}
},
"Ref": {
"type": "object",
"additionalProperties": false,
"required": [
"workflow_label",
"collection_shape",
"datatype",
"resolved",
"resolved_by",
"reason",
"fixture"
],
"properties": {
"workflow_label": {
"type": "string",
"minLength": 1,
"description": "Workflow input this ref feeds: its label in the Galaxy interface brief, or its input port in the CWL design."
},
"collection_shape": {
"type": [
"string",
"null"
],
"description": "Galaxy collection shape when the input is a collection, e.g. list, paired, list:paired, record; null for a single dataset."
},
"datatype": {
"type": [
"string",
"null"
],
"description": "Galaxy datatype/extension, e.g. fastqsanger.gz, fasta, tabular; null when undecided."
},
"resolve
...
SKILL.md
# paper-to-test-data
Follow the procedure below and use the artifact/reference sections as the runtime contract.
## When To Use
- Resolve the test data a paper names into refs for each workflow input.
## Inputs
- Read artifact `freeform-summary`. Produced by `interview-to-freeform-summary`, `summarize-paper`. Free-form summary from summarize-paper; sample data and reference evidence the test fixtures derive from.
- Read artifact `freeform-galaxy-interface`. Produced by `freeform-summary-to-galaxy-interface`. Galaxy interface brief from freeform-summary-to-galaxy-interface pinning the workflow input labels, collection shapes, and datatypes each ref must map onto, in PAPER → GALAXY.
- Read artifact `freeform-cwl-design`. Produced by `freeform-summary-to-cwl-design`. CWL design from freeform-summary-to-cwl-design naming the workflow input ports each ref must map onto, in PAPER → CWL.
## Outputs
- Write artifact `test-data-refs` as `test-data-refs.json`. Format: `json`. Schema: test-data-refs. Test data the paper names, one ref per workflow input (URLs, shapes, hashes). Shared id with find-test-data, which fills only the inputs this Mold leaves unresolved.
## Required Tools
- None declared. Procedure should not assume external CLIs are present.
## Load Upfront
- `references/schemas/test-data-refs.schema.json`: Schema file copied verbatim into the bundle. Output contract: one ref per workflow input, resolved or an honest gap with a reason. Cast bundles the JSON Schema; validate with `foundry validate-test-data-refs` before returning.
## Load On Demand
- None declared.
## Validation
- Validate `test-data-refs.json` before returning it: run `foundry validate-test-data-refs test-data-refs.json` from `@galaxy-foundry/gxwf-foundry`. If the command is not on PATH, run `npx --package @galaxy-foundry/gxwf-foundry foundry validate-test-data-refs test-data-refs.json`. This checks artifact `test-data-refs` against the test-data-refs schema.
## Procedure
Read the paper free-form summary from summarize-paper and resolve the data the paper names (resolvable URLs, file shapes, expected hashes) onto the workflow inputs the target declares — the Galaxy interface brief's input labels, or the CWL design's input ports — as `test-data-refs` with `resolved_by: paper-to-test-data`. An input the paper names no data for stays `resolved: false` with a reason, for find-test-data to search. Expected outputs are the test plan's to derive, not this skill's. Validate the file with `foundry validate-test-data-refs` before returning.
## Feedback Mode
- Feedback mode is off unless the caller explicitly enables `--feedback` or supplies a feedback-ledger path.
- When enabled, read `_feedback.md` before doing the work and use its registered `foundry-feedback.ledger.yml` protocol.
- 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.
- 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.
- 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.
- Pass the same ledger path to any subagent used for this work, and merge updates serially so one writer cannot overwrite another.
## Runtime Notes
- Do not read Foundry source files at runtime; use only files packaged in this skill bundle and user-supplied artifacts.
- Preserve declared artifact filenames unless the user or harness supplies explicit paths.
- Carry unresolved assumptions into the output artifact instead of silently inventing missing source evidence.