TS_REPORT_MODELS_PLAN

Plan: Align TS Report Models with Python

Goal: Make TypeScript galaxy-tool-util CLI produce identical JSON report shapes as Python galaxy.tool_util.workflow_state._report_models, enabling shared frontend rendering and API interop via gxwf-web.

Out of scope: connection validation models, strict handling alignment.

Committed as d064966 on report_models branch (Phases 1-5 + StepStatus fix).

Phase 1 — Define shared report model types in packages/schema

Created packages/schema/src/workflow/report-models.ts with snake_case types matching Python JSON output:

Phase 2 — Refactor existing StepValidationResult to match ✅

Phase 3 — Add SingleValidationReport wrapper to validate command ✅

Phase 4 — Reshape LintReportSingleLintReport

Phase 5 — Enrich cleanWorkflow() with per-step reporting ✅

StepStatus alignment ✅

Matched Python commit e5c6bd63ab (fixes jmchilton/galaxy-tool-util-ts#25):

Phase 6 — Add category grouping to tree reports ✅

Phase 7 — Add structure_errors / encoding_errors

Deferred

Test strategy

Unresolved questions

Decisions