Description
pkg/workflow/workflow_builder.go has 5 step-merge blocks using the silent if err := yaml.Unmarshal(...); err == nil { ... } pattern. When imported step YAML is malformed, these blocks silently produce an empty step list with no error surfaced to the user — the workflow compiles as if the imported steps simply did not exist.
Verified on main this run (grep-confirmed):
workflow_builder.go:416 (importsResult.MergedSteps)
workflow_builder.go:437 (workflowData.CustomSteps)
workflow_builder.go:513 (mainPreStepsYAML)
workflow_builder.go:575 (mainPreAgentStepsYAML)
workflow_builder.go:638 (mainPostStepsYAML)
(Note: the source Repository Quality report also claimed 5 such sites in compiler_orchestrator_engine.go, but that did not reproduce on main — that file currently has no yaml.Unmarshal. Scope is limited to the verified workflow_builder.go sites.)
Expected Impact
Malformed imported/custom steps fail loudly with fmt.Errorf("failed to parse <field>: %w", err) instead of silently dropping steps. Prevents a class of confusing "my steps disappeared" compile bugs.
Acceptance Criteria
- All 5
err == nil blocks replaced with error propagation
- New test: malformed
MergedSteps YAML returns an error from the merge path
Suggested Agent
Copilot SWE Agent
Estimated Effort
Quick (< 1 hour)
Data Source
DeepReport analysis 2026-06-24 (source: Repository Quality Report #41228; grep-verified against main)
Generated by 🔬 DeepReport - Intelligence Gathering Agent · 330.1 AIC · ⌖ 12.3 AIC · ⊞ 9.8K · ◷
Description
pkg/workflow/workflow_builder.gohas 5 step-merge blocks using the silentif err := yaml.Unmarshal(...); err == nil { ... }pattern. When imported step YAML is malformed, these blocks silently produce an empty step list with no error surfaced to the user — the workflow compiles as if the imported steps simply did not exist.Verified on
mainthis run (grep-confirmed):workflow_builder.go:416(importsResult.MergedSteps)workflow_builder.go:437(workflowData.CustomSteps)workflow_builder.go:513(mainPreStepsYAML)workflow_builder.go:575(mainPreAgentStepsYAML)workflow_builder.go:638(mainPostStepsYAML)(Note: the source Repository Quality report also claimed 5 such sites in
compiler_orchestrator_engine.go, but that did not reproduce onmain— that file currently has noyaml.Unmarshal. Scope is limited to the verifiedworkflow_builder.gosites.)Expected Impact
Malformed imported/custom steps fail loudly with
fmt.Errorf("failed to parse <field>: %w", err)instead of silently dropping steps. Prevents a class of confusing "my steps disappeared" compile bugs.Acceptance Criteria
err == nilblocks replaced with error propagationMergedStepsYAML returns an error from the merge pathSuggested Agent
Copilot SWE Agent
Estimated Effort
Quick (< 1 hour)
Data Source
DeepReport analysis 2026-06-24 (source: Repository Quality Report #41228; grep-verified against
main)