Agent Skill · cast

review-galaxy-workflow

Apply the pinned upstream IWC review policy to one Galaxy workflow or pull request and emit one evidenced advisory Markdown review.

← 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:review-galaxy-workflow

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:

$review-galaxy-workflow

Skill Bundle

/ packaged cast
attached files
6
upfront
2
on demand
4
cast rev
n/a
validated
0

Produces: 1 artifact.

Consumes: 10 artifacts.

Artifact Contract

/ skill handoff

Produces

galaxy-workflow-review

Advisory IWC-policy review of one Galaxy workflow pull-request subject, citing structural validation, Planemo test evidence, and optional Foundry context.

markdowngalaxy-workflow-review.md
Raw artifact contract
{
  "id": "galaxy-workflow-review",
  "kind": "markdown",
  "default_filename": "galaxy-workflow-review.md",
  "description": "Advisory IWC-policy review of one Galaxy workflow pull-request subject, citing structural validation, Planemo test evidence, and optional Foundry context."
}

Consumes

starting-galaxy-workflow

The normalized concrete gxformat2 workflow under review, as emitted by [[summarize-galaxy-workflow]]; the reviewed subject in the standard pipeline.

Raw artifact contract
{
  "id": "starting-galaxy-workflow",
  "description": "The normalized concrete gxformat2 workflow under review, as emitted by [[summarize-galaxy-workflow]]; the reviewed subject in the standard pipeline.",
  "producers": [
    "summarize-galaxy-workflow"
  ]
}

galaxy-workflow

The equivalent concrete gxformat2 workflow when a Foundry run supplies one directly instead of routing through the summarizer.

Raw artifact contract
{
  "id": "galaxy-workflow",
  "description": "The equivalent concrete gxformat2 workflow when a Foundry run supplies one directly instead of routing through the summarizer.",
  "producers": [
    "advance-galaxy-draft-step",
    "mature-galaxy-workflow-for-iwc"
  ]
}

summary-galaxy-workflow

Structured summary of the reviewed workflow: inputs, outputs, tool ids and versions, defaults, connections, labels, annotations, and existing tests. Read it instead of re-extracting them.

Raw artifact contract
{
  "id": "summary-galaxy-workflow",
  "description": "Structured summary of the reviewed workflow: inputs, outputs, tool ids and versions, defaults, connections, labels, annotations, and existing tests. Read it instead of re-extracting them.",
  "inherited_schema": "[[summary-galaxy-workflow]]",
  "producers": [
    "summarize-galaxy-workflow"
  ]
}

galaxy-workflow-validation-result

Terminal structural validation handoff from [[validate-galaxy-workflow]]: the command run, its status, and its diagnostics. Cite it; never restate a validation claim this Mold did not receive.

Raw artifact contract
{
  "id": "galaxy-workflow-validation-result",
  "description": "Terminal structural validation handoff from [[validate-galaxy-workflow]]: the command run, its status, and its diagnostics. Cite it; never restate a validation claim this Mold did not receive.",
  "producers": [
    "validate-galaxy-workflow"
  ]
}

workflow-test-result

Planemo execution handoff from [[run-workflow-test]], including its honest test-definition-missing and not-run states. Cite its status; never infer a passing test from inspection.

Raw artifact contract
{
  "id": "workflow-test-result",
  "description": "Planemo execution handoff from [[run-workflow-test]], including its honest test-definition-missing and not-run states. Cite its status; never infer a passing test from inspection.",
  "producers": [
    "run-workflow-test"
  ]
}

galaxy-workflow-test

The workflow's test file when one exists; absent when the submission ships no test, which is a reviewable finding rather than an error.

Raw artifact contract
{
  "id": "galaxy-workflow-test",
  "description": "The workflow's test file when one exists; absent when the submission ships no test, which is a reviewable finding rather than an error.",
  "optional": true,
  "producers": [
    "implement-galaxy-workflow-test",
    "mature-galaxy-workflow-for-iwc"
  ]
}

galaxy-workflow-pr-context

Harness-supplied pull-request context: repository, pull request number, title and body, base and head SHAs, changed-file list, base-to-head diff, and the complete relevant files.

Raw artifact contract
{
  "id": "galaxy-workflow-pr-context",
  "description": "Harness-supplied pull-request context: repository, pull request number, title and body, base and head SHAs, changed-file list, base-to-head diff, and the complete relevant files.",
  "optional": true
}

iwc-dockstore-metadata

The submission's `.dockstore.yml` when present; it names the primary Galaxy descriptor under the IWC-Lab repository profile, which may be a `.gxwf.yml` file.

Raw artifact contract
{
  "id": "iwc-dockstore-metadata",
  "description": "The submission's `.dockstore.yml` when present; it names the primary Galaxy descriptor under the IWC-Lab repository profile, which may be a `.gxwf.yml` file.",
  "optional": true,
  "producers": [
    "mature-galaxy-workflow-for-iwc"
  ]
}

iwc-comparison-notes

Existing structural diff from [[compare-against-iwc-exemplar]] when a Foundry run already produced one. Consume it; never rerun that comparison inside this Mold.

Raw artifact contract
{
  "id": "iwc-comparison-notes",
  "description": "Existing structural diff from [[compare-against-iwc-exemplar]] when a Foundry run already produced one. Consume it; never rerun that comparison inside this Mold.",
  "optional": true,
  "producers": [
    "compare-against-iwc-exemplar"
  ]
}

open-requirements-ledger

Carried obligations ledger [[open-requirements-ledger]] when a Foundry run supplied one; read-only here, used to report unresolved intent and surrendered work.

Raw artifact contract
{
  "id": "open-requirements-ledger",
  "description": "Carried obligations ledger [[open-requirements-ledger]] when a Foundry run supplied one; read-only here, used to report unresolved intent and surrendered work.",
  "optional": true,
  "producers": [
    "advance-galaxy-draft-step",
    "apply-galaxy-workflow-changeset",
    "compare-against-iwc-exemplar",
    "cwl-summary-to-galaxy-data-flow",
    "cwl-summary-to-galaxy-interface",
    "cwl-summary-to-galaxy-template",
    "freeform-summary-to-galaxy-data-flow",
    "freeform-summary-to-galaxy-interface",
    "freeform-summary-to-galaxy-template",
    "implement-galaxy-tool-step",
    "interview-to-galaxy-workflow-changeset",
    "mature-galaxy-workflow-for-iwc",
    "nextflow-summary-to-galaxy-data-flow",
    "nextflow-summary-to-galaxy-interface",
    "nextflow-summary-to-galaxy-reference-data",
    "nextflow-summary-to-galaxy-template",
    "repair-galaxy-draft-topology"
  ]
}

Attached Files

/ runtime references

Load upfront

prompt

workflow-pr-review-command

packaged

Apply the pinned upstream IWC review command as the primary checklist and procedure, adapting repository terminology without changing policy.

upfront runtime verbatim corpus-observed deterministic 7.5 KB
bundle
references/prompts/workflow-pr-review-command.md
source
content/prompts/iwc/workflow-pr-review-command/upstream.prompt
Preview md
---
description: Review a PR against the IWC reviewer checklist
---

You are reviewing a pull request to the IWC (Intergalactic Workflow Commission) repository.

## Scope and Policy Sources

This review applies to changes under `workflows/`. If the pull request does not change that directory, report that the workflow review is not applicable.

Read both `.github/PULL_REQUEST_TEMPLATE.md` and `.github/copilot-instructions.md` from the pull request's base branch before reviewing. Apply the union of their workflow-review requirements. If either file has changed in the pull request, distinguish the existing base-branch policy from the proposed policy change and flag any conflict for human discussion.

The checklist below intentionally includes every workflow-review requirement from the Copilot instructions, adds the contributor-checklist items a reviewer can confirm, and adds the execution and reporting procedure for this command.

## Your Task

1. Fetch the pull request using the `gh` command to get:
   - Pull request title and description
   - Base and head revisions
   - List of changed files
   - The actual file changes (diff)
   - Relevant CI check names, conclusions, and failure details using `gh pr checks` and, when needed, `gh run view`

2. Read the changed workflow files and enough existing repository examples to understand the applicable IWC conventions. Do not infer compliance from the diff alone when a requirement depends on the complete contents of a file.

3. Review the changes against every applicable item in this checklist:

   ### .dockstore.yml

   - [ ] A `.dockstore.yml` file is present in the workflow folder. It is required to run tests.
   - [ ] Its authors match the creator metadata in the `.ga` workflow file.
   - [ ] Its workflow and test file paths
...
schema

summary-galaxy-workflow

packaged

Read the supplied workflow summary rather than re-deriving inputs, outputs, tool pins, defaults, connections, labels, and existing tests.

upfront runtime verbatim cast-validated deterministic 16.6 KB
bundle
references/schemas/summary-galaxy-workflow.schema.json
source
package://@galaxy-foundry/gxwf-foundry#summaryGalaxyWorkflowSchema
Preview json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://galaxyproject.org/foundry/schemas/summary-galaxy-workflow.schema.json",
  "$comment": "Canonical source: packages/gxwf-foundry/src/schemas/summary-galaxy-workflow/summary-galaxy-workflow.schema.json in galaxyproject/foundry. Mold frontmatter cites this schema via [[summary-galaxy-workflow]] wiki-links; the cast pipeline imports the `summaryGalaxyWorkflowSchema` runtime export and serializes it into cast bundles.",
  "title": "Galaxy Workflow Summary",
  "description": "Structured summary emitted by the summarize-galaxy-workflow Mold. Galaxy gxformat2 is already a typed workflow language, so this schema records validated and normalized workflow structure (inputs, outputs, steps, edges, existing tests) rather than inferred pipeline semantics. When the user supplies a legacy .ga workflow it is converted to gxformat2 first and the conversion is recorded under documents.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "summary_version",
    "source",
    "documents",
    "workflow_inputs",
    "workflow_outputs",
    "steps",
    "graph",
    "tests",
    "warnings"
  ],
  "properties": {
    "summary_version": {
      "type": "string",
      "enum": [
        "1"
      ],
      "description": "Summary schema major version."
    },
    "source": {
      "$ref": "#/$defs/SourceRecord"
    },
    "documents": {
      "$ref": "#/$defs/DocumentSet"
    },
    "workflow_inputs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/WorkflowInput"
      }
    },
    "workflow_outputs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/WorkflowOutput"
      }
    },
    "steps": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/WorkflowStep"
      }
    },
    "graph": {
      "$ref": "#/$defs/WorkflowGraph"
    },
    "tests": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/TestCase"
      }
    },
    "warnings": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Warning"
      }
    }
  },
  "$defs": {
    "SourceRecord": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "ecosystem",
        "workflow",
        "url",
        "version",
        "license",
        "slug",
        "format",
        "original_format",
        "release",
        "an
...

Load on demand

research

galaxy-workflow-testability-design

packaged

Distinguish a genuine workflow-interface or test-addressing defect from a stylistic preference when a label and a test key disagree.

Trigger: When an input, promoted output, collection identifier, or workflow-output label does not agree with the supplied test.

on-demand runtime verbatim corpus-observed deterministic 11.4 KB
bundle
references/notes/galaxy-workflow-testability-design.md
source
content/research/galaxy-workflow-testability-design/index.md
Preview md
---
type: research
tags:
  - target/galaxy
status: draft
created: 2026-05-03
revised: 2026-05-06
revision: 2
related_notes:
  - "[[iwc-workflow-testability-survey]]"
  - "[[iwc-test-data-conventions]]"
  - "[[planemo-asserts-idioms]]"
  - "[[iwc-shortcuts-anti-patterns]]"
  - "[[planemo-workflow-test-architecture]]"
  - "[[implement-galaxy-workflow-test]]"
  - "[[gxformat2-schema]]"
  - "[[gxformat2-workflow-inputs]]"
  - "[[galaxy-datatypes-conf]]"
summary: "Design guidance for Galaxy workflow inputs, outputs, and checkpoints that make IWC-style workflow tests possible."
---

# Galaxy workflow testability design

Use this note when authoring or translating a Galaxy workflow **before** the `-tests.yml` file exists. It covers workflow structure choices that make later IWC-style tests meaningful: labels, promoted checkpoints, collection identifiers, and fixture-compatible inputs.

This is not a `content/patterns/` page. It is cross-cutting design guidance for Molds that need testable Galaxy workflows. Assertion syntax lives in [[planemo-asserts-idioms]]. Test YAML fixture shapes live in [[iwc-test-data-conventions]]. Accepted shortcut vs smell calls live in [[iwc-shortcuts-anti-patterns]]. Corpus evidence trail lives in [[iwc-workflow-testability-survey]].

## 1. Treat labels as API

Workflow input and output labels are not cosmetic. Planemo and IWC tests address workflow inputs and outputs by label, and the survey found exact label matches for every asserted output across 114 matched workflow/test pairs. A generated workflow should therefore pick stable, descriptive labels before test authoring starts.

Rules:

- Label every output that may need a test assertion.
- Treat input/output renames as breaking changes requiring sibling `-tests.yml` updates.
- Prefer stable doma
...
research

iwc-shortcuts-anti-patterns

packaged

Recognize corpus-observed shortcuts so a finding cites an observed IWC anti-pattern rather than reviewer taste.

Trigger: When a structural choice looks like a shortcut and the finding needs corpus grounding before it is raised as required.

on-demand runtime verbatim corpus-observed deterministic 23.9 KB
bundle
references/notes/iwc-shortcuts-anti-patterns.md
source
content/research/iwc-shortcuts-anti-patterns/index.md
Preview md
---
type: research
tags:
  - target/galaxy
status: draft
created: 2026-04-30
revised: 2026-05-03
revision: 2
related_notes:
  - "[[galaxy-workflow-testability-design]]"
  - "[[iwc-test-data-conventions]]"
  - "[[planemo-asserts-idioms]]"
  - "[[implement-galaxy-workflow-test]]"
  - "[[tests-format]]"
  - "[[iwc-conditionals-survey]]"
  - "[[iwc-map-over-lifecycle-survey]]"
  - "[[iwc-tabular-operations-survey]]"
  - "[[iwc-transformations-survey]]"
summary: "What IWC test suites cut corners on (accepted) vs what's a code smell — existence-only probes, sim_size deltas, image dim checks, label coupling."
---

# IWC test-suite shortcuts and anti-patterns

## Purpose

When an agent translates or authors a Galaxy workflow for IWC submission, the test suite it writes will be reviewed against IWC's *de facto* style — not against an idealized assertion ladder. That style routinely tolerates assertions that look weak in isolation. This note distinguishes the corner-cutting that is **normal and accepted** in the corpus from the patterns that an agent should treat as **smells** worth flagging.

This note owns accepted-vs-smell calls. For positive workflow-structure guidance behind label stability, checkpoint promotion, and collection identifier design, use [[galaxy-workflow-testability-design]].

Grounding: 115 `*-tests.yml` files under `workflow-fixtures/iwc-src/workflows/` (mirror of `galaxyproject/iwc`), prior synthesis in `galaxy-brain/vault/projects/workflow_state/skills/COMPONENT_GALAXY_WORKFLOW_TESTING.md`. Path citations below are relative to `iwc-src/workflows/` unless absolute.

## TL;DR rules of thumb

1. **Default to tolerant assertions.** `compare: sim_size` + `delta:`, `has_image_*` + `delta:`, `has_text` substring, `has_h5_keys`, `has_n_lines` + `delta:` are *the IW
...
research

iwc-test-data-conventions

packaged

Judge test labels, durable remote fixtures, creator identifiers, and companion-file naming against current IWC conventions.

Trigger: When assessing the submission's test file, test-data references, creator metadata, or release entry.

on-demand runtime verbatim corpus-observed deterministic 21.1 KB
bundle
references/notes/iwc-test-data-conventions.md
source
content/research/iwc-test-data-conventions/index.md
Preview md
---
type: research
tags:
  - target/galaxy
status: draft
created: 2026-04-30
revised: 2026-05-03
revision: 3
related_notes:
  - "[[galaxy-workflow-testability-design]]"
  - "[[iwc-shortcuts-anti-patterns]]"
  - "[[planemo-asserts-idioms]]"
  - "[[implement-galaxy-workflow-test]]"
  - "[[tests-format]]"
  - "[[iwc-tabular-operations-survey]]"
summary: "How IWC workflows organize and reference test data — Zenodo-first, SHA-1 integrity, collection shapes, CVMFS gotchas."
---

# IWC test data conventions

Reference for an agent implementing or editing a `<workflow>-tests.yml` in IWC style. All evidence cited from `/Users/jxc755/projects/repositories/workflow-fixtures/iwc-src/workflows/` (raw IWC clone) and `workflows/README.md`. Authoritative spec: [planemo.readthedocs.io/en/latest/test_format.html](https://planemo.readthedocs.io/en/latest/test_format.html). The companion analysis at `/Users/jxc755/projects/repositories/galaxy-brain/vault/projects/workflow_state/skills/COMPONENT_GALAXY_WORKFLOW_TESTING.md` is the synthesized source for several normative claims here.

This note owns **test YAML fixture shapes**. For workflow-structure choices that make those fixtures possible before the test file exists, use [[galaxy-workflow-testability-design]].

## 1. Where does test data live? Remote vs in-repo

Two storage patterns. They mix freely inside one job.

**Remote `location:` (default for any non-trivial input).** Strongly preferred for anything bigger than a toy fixture. Order of preference, observed in the corpus:

- **Zenodo** — overwhelming default, persistent DOI-backed URL.
  - `read-preprocessing/short-read-qc-trimming/short-read-quality-control-and-trimming-tests.yml:13,17` — `https://zenodo.org/records/11484215/files/paired_r1.fastq.gz` (note the modern `/records/` pl
...
research

open-requirements-ledger

packaged

Read a supplied ledger's open and surrendered entries into the clearly labeled Foundry context section without treating their absence as an IWC failure.

Trigger: When the harness supplied an open-requirements ledger and the review needs to report unresolved intent or surrendered work as Foundry context.

on-demand runtime verbatim hypothesis deterministic 15.5 KB
bundle
references/notes/open-requirements-ledger.md
source
content/research/open-requirements-ledger/index.md
Preview md
---
type: research
title: "Open-requirements ledger"
tags:
  - target/galaxy
status: draft
created: 2026-06-16
revised: 2026-08-29
revision: 3
related_notes:
  - "[[galaxy-workflow-draft-format]]"
related_molds:
  - "[[advance-galaxy-draft-step]]"
  - "[[repair-galaxy-draft-topology]]"
  - "[[implement-galaxy-tool-step]]"
summary: "Carried unresolved-requirements artifact the source→Galaxy pipeline discharges or explicitly surrenders, autonomously."
---

# Open-requirements ledger

The `open-requirements-ledger` is a single artifact threaded through the source→Galaxy pipeline that records **obligations the pipeline has taken on but not yet met** — a declared output with no producer, a parameter whose value the source never pinned, a tool with no corpus exemplar — and **source work it decided not to carry**. Each Mold that surfaces one **appends** it; each Mold whose decision closes one **marks it resolved**; the terminal path **surrenders** whatever remains open, explicitly, into the final artifact.

## Framing: obligations the pipeline discharges, not questions a human answers

This is deliberately *not* an "open questions for the user" list. The pipeline is autonomous — no human-in-the-loop gate is assumed. The ledger's consumers are **Molds and the loop's convergence gate**, with human readout a secondary affordance. An entry is closed by a downstream Mold doing work (wiring a producer, picking a wrapper, settling a value), or — when nothing can close it — surrendered: written into the final draft as a known, labelled gap rather than silently dropped or fabricated around.

The distinction matters because a "questions for a human" framing leaks an operator's personal interaction style into a tool meant to run inside anyone's harness. The ledger must behave identically
...

SKILL.md


# review-galaxy-workflow

Follow the procedure below and use the artifact/reference sections as the runtime contract.

## When To Use

- Apply the pinned upstream IWC review policy to one Galaxy workflow or pull request and emit one evidenced advisory Markdown review.

## Inputs

- Read artifact `starting-galaxy-workflow`. Produced by `summarize-galaxy-workflow`. The normalized concrete gxformat2 workflow under review, as emitted by summarize-galaxy-workflow; the reviewed subject in the standard pipeline.
- Read artifact `galaxy-workflow`. Produced by `advance-galaxy-draft-step`, `mature-galaxy-workflow-for-iwc`. The equivalent concrete gxformat2 workflow when a Foundry run supplies one directly instead of routing through the summarizer.
- Read artifact `summary-galaxy-workflow`. Schema: summary-galaxy-workflow. Produced by `summarize-galaxy-workflow`. Structured summary of the reviewed workflow: inputs, outputs, tool ids and versions, defaults, connections, labels, annotations, and existing tests. Read it instead of re-extracting them.
- Read artifact `galaxy-workflow-validation-result`. Produced by `validate-galaxy-workflow`. Terminal structural validation handoff from validate-galaxy-workflow: the command run, its status, and its diagnostics. Cite it; never restate a validation claim this Mold did not receive.
- Read artifact `workflow-test-result`. Produced by `run-workflow-test`. Planemo execution handoff from run-workflow-test, including its honest test-definition-missing and not-run states. Cite its status; never infer a passing test from inspection.
- Read artifact `galaxy-workflow-test`. Optional; absence is allowed and must be reported honestly. Produced by `implement-galaxy-workflow-test`, `mature-galaxy-workflow-for-iwc`. The workflow's test file when one exists; absent when the submission ships no test, which is a reviewable finding rather than an error.
- Read artifact `galaxy-workflow-pr-context`. Optional; absence is allowed and must be reported honestly. Harness-supplied pull-request context: repository, pull request number, title and body, base and head SHAs, changed-file list, base-to-head diff, and the complete relevant files.
- Read artifact `iwc-dockstore-metadata`. Optional; absence is allowed and must be reported honestly. Produced by `mature-galaxy-workflow-for-iwc`. The submission's `.dockstore.yml` when present; it names the primary Galaxy descriptor under the IWC-Lab repository profile, which may be a `.gxwf.yml` file.
- Read artifact `iwc-comparison-notes`. Optional; absence is allowed and must be reported honestly. Produced by `compare-against-iwc-exemplar`. Existing structural diff from compare-against-iwc-exemplar when a Foundry run already produced one. Consume it; never rerun that comparison inside this Mold.
- Read artifact `open-requirements-ledger`. Optional; absence is allowed and must be reported honestly. Produced by `advance-galaxy-draft-step`, `apply-galaxy-workflow-changeset`, `compare-against-iwc-exemplar`, `cwl-summary-to-galaxy-data-flow`, `cwl-summary-to-galaxy-interface`, `cwl-summary-to-galaxy-template`, `freeform-summary-to-galaxy-data-flow`, `freeform-summary-to-galaxy-interface`, `freeform-summary-to-galaxy-template`, `implement-galaxy-tool-step`, `interview-to-galaxy-workflow-changeset`, `mature-galaxy-workflow-for-iwc`, `nextflow-summary-to-galaxy-data-flow`, `nextflow-summary-to-galaxy-interface`, `nextflow-summary-to-galaxy-reference-data`, `nextflow-summary-to-galaxy-template`, `repair-galaxy-draft-topology`. Carried obligations ledger open-requirements-ledger when a Foundry run supplied one; read-only here, used to report unresolved intent and surrendered work.

## Outputs

- Write artifact `galaxy-workflow-review` as `galaxy-workflow-review.md`. Format: `markdown`. Advisory IWC-policy review of one Galaxy workflow pull-request subject, citing structural validation, Planemo test evidence, and optional Foundry context.

## Required Tools

- None declared. Procedure should not assume external CLIs are present.

## Load Upfront

- `references/prompts/workflow-pr-review-command.md`: prompt reference copied verbatim into the bundle. Apply the pinned upstream IWC review command as the primary checklist and procedure, adapting repository terminology without changing policy.
- `references/schemas/summary-galaxy-workflow.schema.json`: Schema file copied verbatim into the bundle. Read the supplied workflow summary rather than re-deriving inputs, outputs, tool pins, defaults, connections, labels, and existing tests.

## Load On Demand

- `references/notes/galaxy-workflow-testability-design.md`: Research note copied verbatim into the bundle. Distinguish a genuine workflow-interface or test-addressing defect from a stylistic preference when a label and a test key disagree. Use when: an input, promoted output, collection identifier, or workflow-output label does not agree with the supplied test.
- `references/notes/iwc-shortcuts-anti-patterns.md`: Research note copied verbatim into the bundle. Recognize corpus-observed shortcuts so a finding cites an observed IWC anti-pattern rather than reviewer taste. Use when: a structural choice looks like a shortcut and the finding needs corpus grounding before it is raised as required.
- `references/notes/iwc-test-data-conventions.md`: Research note copied verbatim into the bundle. Judge test labels, durable remote fixtures, creator identifiers, and companion-file naming against current IWC conventions. Use when: assessing the submission's test file, test-data references, creator metadata, or release entry.
- `references/notes/open-requirements-ledger.md`: Research note copied verbatim into the bundle. Read a supplied ledger's open and surrendered entries into the clearly labeled Foundry context section without treating their absence as an IWC failure. Use when: the harness supplied an open-requirements ledger and the review needs to report unresolved intent or surrendered work as Foundry context.

## Validation

- None declared.

## Procedure

Review one Galaxy workflow submission under the pinned upstream IWC review policy and return one advisory Markdown review. This skill reads evidence; it does not produce or change a workflow, and it cannot approve, push, comment, label, mark ready, or merge.

### Procedure

#### 1. Establish the reviewed subject and its evidence

- Read the concrete workflow — the normalized `starting-galaxy-workflow.gxwf.yml`, or the `galaxy-workflow.gxwf.yml` a Foundry run supplied directly.
- Read `summary-galaxy-workflow.json` for inputs, outputs, tool ids and versions, tool state, connections, labels, annotations, and existing tests. Do not re-extract what the summary already carries.
- Read `galaxy-workflow-validation-result.json` and `workflow-test-result.json`. Record each status verbatim. **Never run `gxwf validate` or `planemo test` inside this skill**, and never upgrade an unverified item to a pass on the strength of inspection.
- Inventory the optional inputs and record which ones were present. Never describe an absent artifact as inspected.

#### 2. Select the repository profile

- **IWC**: the primary descriptor is the native `.ga` workflow; apply the upstream checklist to it.
- **IWC-Lab**: the primary Galaxy descriptor is the one named by the submission's `.dockstore.yml`, which may be a `.gxwf.yml` file. Apply the same descriptor-level checks to that file.
- When no `.dockstore.yml` was supplied, state which profile was assumed and why.

#### 3. Apply the pinned IWC policy

Read the bundled review command and work its checklist in order. Adapt repository terminology where the profile requires it; do not silently add, drop, or soften a policy item. For each applicable item record exactly one of `pass`, `needs attention`, `not applicable`, or `unverified`, with file and field evidence. Prefer the deterministic evidence from step 1 wherever it answers a checklist question — cite the Planemo result rather than concluding from inspection that a test passed.

#### 4. Add Foundry context only when it was supplied

When `iwc-comparison-notes`, an `open-requirements-ledger`, or source and design handoffs are present, add a clearly labeled **Foundry context** section covering unresolved intent, surrendered or dropped work, and test strength. When they are absent, omit the section or state that no Foundry context was supplied. **Their absence is never an IWC finding.** Do not rerun compare-against-iwc-exemplar; consume its existing output.

#### 5. Write the review

Emit `galaxy-workflow-review.md` with, in order:

1. reviewed repository, pull request, head SHA, workflow directory, repository profile, and prompt provenance — name the bundled prompt reference and the hash recorded for it in this cast's provenance record, and make no claim about upstream policy newer than that pin;
2. the validation result and the Planemo test result, quoted as statuses rather than as conclusions;
3. the applicable IWC checklist, one status and its evidence per item;
4. the Foundry context section, when one was supplied;
5. required fixes, separated from optional improvements, separated from evidence that was unavailable; and
6. exactly one advisory recommendation: `approve`, `request changes`, or `needs discussion`.

### Non-goals

- No `gxwf validate` or `planemo test` execution, and no re-derivation of the summary.
- No workflow, test, or companion-file edit, and no changeset. An accepted edit is mature-galaxy-workflow-for-iwc's business, routed through apply-galaxy-workflow-changeset.
- No GitHub mutation of any kind — no review, approval, comment, label, push, ready-for-review, or merge.
- No JSON report, no stable finding ids, and no freshness claim about a correctly pinned prompt.

## 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.