You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This analysis used a new detection strategy: Workflow Compiler Pipeline Trace - following how frontmatter flows through parsing → validation → code generation. Found 8 inconsistencies including critical timeout field duplication and missing validation.
Summary
Inconsistencies Found: 8
Categories Analyzed: Schema, Parser/Compiler, Documentation, Real Workflows
// Note: post-steps field is processed during YAML template generation// rather than via direct frontmatter["post-steps"] access
5. 🟡 Error Message Inconsistency
Problem: Compiler error messages use inconsistent phrasing across different validation functions.
Evidence:
Different error patterns found:
"X is required" vs "X must have Y" vs "X not found"
"invalid X" vs "not valid"
"configuration is required" vs "must be an object"
Examples:
"safe-outputs configuration is required""artifact upload must have a name""script not found in registry""setup action reference is required but could not be resolved""invalid action-mode feature flag '%s'. Must be 'dev', 'release', or 'script'"
Impact: Inconsistent user experience when reading error messages. Makes errors harder to pattern-match in documentation.
Recommendation:
Establish error message style guide (e.g., always use "X is required" for missing fields)
Refactor error messages for consistency across compiler
Document error message patterns in contributor guide
Schema/Code Alignment Issues
6. 🟢 Schema Fields Use Multiple Access Patterns
Finding: Many schema fields are not accessed via frontmatter["field"] pattern but through other mechanisms.
Effectiveness: HIGH - This strategy successfully identified practical implementation gaps that impact users (timeout duplication) and missing validations (labels) that earlier strategies missed.
Should Reuse: YES - Excellent for finding validation gaps and data flow inconsistencies. Complements field enumeration strategies well.
Next Steps
Update schema to remove timeout_minutes field
Add labels validation in compiler pipeline
Resolve command field status (document or deprecate)
Establish error message style guide
Add compiler architecture documentation
Document validation pipeline order
Clean up invalid try: field in workflow
Add code comments for indirect access patterns
Analysis Date: 2026-02-10 Strategy: Workflow Compiler Pipeline Trace (NEW) Total Strategies in Cache: 4
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
This analysis used a new detection strategy: Workflow Compiler Pipeline Trace - following how frontmatter flows through parsing → validation → code generation. Found 8 inconsistencies including critical timeout field duplication and missing validation.
Summary
Breakdown by Severity:
Critical Issues
1. 🔴 timeout_minutes vs timeout-minutes Field Duplication
Problem: Schema defines BOTH
timeout-minutes(preferred) andtimeout_minutes(deprecated), causing user confusion.Evidence:
pkg/parser/schemas/main_workflow_schema.jsontimeout-minutes(28 references),timeout_minutes(3 references)timeout-minutesdocs/src/content/docs/reference/frontmatter.md:382mentions deprecationImpact: Users may not know which field to use. Schema validation accepts both, creating ambiguity about the "correct" approach.
Recommendation:
timeout_minutesfrom schematimeout_minutesdetected in frontmattertimeout-minutes2. 🔴 Labels Field Missing Validation
Problem: The
labelsfield is defined in schema with constraints but not validated in the compiler pipeline.Evidence:
labelsas array of strings withminLength: 1constraintFrontmatterConfig.Labelsfield exists (pkg/workflow/frontmatter_types.go:91)validateWorkflowData()pipelineImpact: Invalid label values (empty strings, non-strings, etc.) could pass through compilation without error, causing runtime issues.
Recommendation: Add labels validation in
pkg/workflow/compiler.govalidateWorkflowData()function:Documentation Gaps
3. 🟡 command Field Purpose Unclear
Problem: Top-level
commandfield exists in schema but is undocumented and barely used.Evidence:
commandas string with description "Command name for the workflow"pkg/workflow/frontmatter_extraction_security.go: accessesagentObj["command"]pkg/workflow/frontmatter_extraction_yaml.go: accessesonMap["command"](marked legacy)docs/src/content/docs/reference/frontmatter.mdImpact: Schema pollution. Unclear whether this is deprecated, reserved for future use, or should be removed.
Recommendation: Choose one:
4. 🟡 post-steps Uses Indirect Access Pattern
Problem:
post-stepsfield is well-documented and widely used, but accessed indirectly in compiler (not viafrontmatter["post-steps"]).Evidence:
post-stepswith oneOf (object | array) structureImpact: LOW - Works correctly, but confusing for developers maintaining the compiler. They might expect direct access pattern.
Recommendation: Add code comment in compiler explaining why post-steps uses indirect access:
5. 🟡 Error Message Inconsistency
Problem: Compiler error messages use inconsistent phrasing across different validation functions.
Evidence:
Different error patterns found:
Examples:
Impact: Inconsistent user experience when reading error messages. Makes errors harder to pattern-match in documentation.
Recommendation:
Schema/Code Alignment Issues
6. 🟢 Schema Fields Use Multiple Access Patterns
Finding: Many schema fields are not accessed via
frontmatter["field"]pattern but through other mechanisms.Fields using indirect access:
Access mechanisms:
extractString(),extractMap())FrontmatterConfig)Impact: None - this is an architectural pattern, not a bug. Just different access styles.
Recommendation: Add architecture documentation comment explaining the two access patterns and when each is used.
7. 🟢 Invalid Field in Real Workflow
Finding: Workflow
.github/workflows/copilot-pr-nlp-analysis.mdcontains invalidtry:field (empty value).Evidence:
try:(not in schema)Impact: Pollutes frontmatter but doesn't break workflow execution.
Recommendation: Remove
try:field from workflow file.8. 🟢 Validation Pipeline Order Not Documented
Finding: The
validateWorkflowData()function executes 11 validation steps in specific order, but this is not documented.Validation order (
pkg/workflow/compiler.go:116-199):Impact: Developers may not understand validation dependencies or why order matters.
Recommendation: Add documentation comment in
compiler.goexplaining validation order and any dependencies between steps.Recommendations Summary
Immediate Actions (High Priority)
timeout_minutesfrom schema - Eliminate duplication confusioncommandfield - Clarify schema intentMedium-Term Improvements
Low Priority Cleanup
try:from workflow - Clean up invalid fieldStrategy Performance
Strategy Used: Workflow Compiler Pipeline Trace (NEW)
Approach: Traced frontmatter data flow through actual compilation pipeline:
Findings: 8 inconsistencies (2 critical, 3 medium, 3 low)
Effectiveness: HIGH - This strategy successfully identified practical implementation gaps that impact users (timeout duplication) and missing validations (labels) that earlier strategies missed.
Should Reuse: YES - Excellent for finding validation gaps and data flow inconsistencies. Complements field enumeration strategies well.
Next Steps
timeout_minutesfieldcommandfield status (document or deprecate)try:field in workflowAnalysis Date: 2026-02-10
Strategy: Workflow Compiler Pipeline Trace (NEW)
Total Strategies in Cache: 4
Beta Was this translation helpful? Give feedback.
All reactions