Skip to content

[deep-report] Make shared-workflow forbidden-field validation errors deterministic in schema_validation.go #66972

Description

@github-actions

Description

validateSharedWorkflowFields (pkg/parser/schema_validation.go:52-86) iterates frontmatter via for key := range frontmatter — a Go map, whose iteration order is randomized per-run. When a shared workflow has multiple forbidden fields, the resulting error message (built from forbiddenFound at lines 83/85) lists them in non-deterministic order across compiler runs. The generic forbidden-field error also omits any "here's what IS allowed" guidance, even though the file already has that list (sharedWorkflowAllowedOnFieldList, used for the on-field case at line 155).

Expected Impact

Deterministic, reproducible error messages (useful for golden tests and bug reports that currently can't rely on message stability), plus more actionable guidance for authors fixing a shared-workflow frontmatter.

Suggested Fix

Sort forbiddenFound before formatting the multi-field error (line 85). Consider enriching the single/multi-field forbidden-field messages with a short pointer to what IS allowed in shared workflows, mirroring the existing on-field error's use of sharedWorkflowAllowedOnFieldList.

Code Region: pkg/parser/schema_validation.go:52-86

Suggested Agent

Developer (Go)

Estimated Effort

Quick (< 1 hour)

Data Source

DeepReport Intelligence Briefing, 2026-10-08 (cycle 3). Source discussion #66921. Live-verified today: validateSharedWorkflowFields does iterate a map with for key := range frontmatter, and the forbidden-field error at lines 83/85 does not reference the allowed-field list.

Generated by 🔬 Deep Report · claude · agent · 343.4 AIC · ⌖ 9.25 AIC · ⊞ 7.1K · ◷

  • expires on Oct 10, 2026, 10:47 AM UTC-08:00

Activity

  1. github-actions commented on Oct 10, 2026

    @github-actions
    ContributorAuthor

    This issue was automatically closed because it expired on 2026-10-10T18:47:57.896Z.

    Closed by Workflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions