[Schema Consistency] Schema Consistency Check - February 9, 2026 #14607
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-02-16T06:52:54.090Z.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Automated schema consistency analysis using Hybrid Semantic Field Coverage Analysis strategy. This run analyzed alignment between the JSON schema, compiler implementation, documentation, and actual workflows.
Critical Issues
🔴 HIGH: Missing 'labels' Field in FrontmatterConfig
Location:
pkg/workflow/frontmatter_types.goIssue: The schema defines
labelsas an array of strings for categorizing workflows (line 36-48 in main_workflow_schema.json), and documentation describes it (frontmatter.md:57-65), but theFrontmatterConfigstruct lacks aLabelsfield.Evidence:
"labels": { "type": "array", "items": { "type": "string", "minLength": 1 } }Labelsfield presentImpact: Labels defined in workflow frontmatter are not parsed into the typed config struct. While they may pass through as raw frontmatter data, they lack compile-time validation and type safety.
Recommendation: Add
Labels []string \json:"labels,omitempty"`` to FrontmatterConfig and ensure serialization in ToMap() method.🟡 MEDIUM: Duplicate timeout Field Names
Location:
pkg/parser/schemas/main_workflow_schema.jsonIssue: Schema defines both
timeout-minutesandtimeout_minutesas top-level properties, creating naming ambiguity.Evidence:
TimeoutMinutesfieldImpact: Users may be confused about which field name to use. Could cause validation issues if both are present.
Recommendation:
timeout_minutes(underscore version)timeout-minutes(hyphen version) as canonical🟡 MEDIUM: Unprocessed 'post-steps' Field
Location:
pkg/parser/schemas/main_workflow_schema.jsonIssue: Schema defines
post-stepsfield but no compiler code accessesfrontmatter["post-steps"].Evidence:
post-stepsin propertiesfrontmatter["post-steps"]access in pkg/workflow/*.goPostStepsfield in FrontmatterConfigImpact: If users define
post-stepsin workflows, the field is silently ignored without error or warning.Recommendation: Either implement post-steps processing or remove from schema and document rationale.
Low Priority Issues
⚪ LOW: Top-Level 'command' Field Not Used
Location:
pkg/parser/schemas/main_workflow_schema.jsonIssue: Schema defines top-level
commandfield, but compiler only usesengine.command(nested within engine config).Evidence:
commandin top-level propertiesengine.commandbut notfrontmatter["command"]Impact: Unclear whether this is deprecated or unimplemented. Could confuse users reading schema.
Recommendation: Clarify intent - either remove if deprecated or document usage if intentional.
⚪ LOW: Weak Type Safety for 'imports' Field
Location:
pkg/workflow/frontmatter_types.goIssue: Schema defines complex oneOf validation for imports (string OR object with path/inputs), but FrontmatterConfig uses loose
anytype.Evidence:
"oneOf": [{"type": "string"}, {"type": "object", "properties": {"path": ..., "inputs": ...}}]Imports any \json:"imports,omitempty"``Impact: No compile-time type safety for imports. Malformed import structures may not produce clear error messages.
Recommendation: Consider creating
ImportItemtype union for better validation and error reporting.Validation Confirmed ✅
The following fields were verified to have proper schema-compiler-documentation alignment:
compiler_orchestrator_engine.go$defs/engine_configdefinitionNetworkPermissionsstructRecommendations
Strategy Performance
Strategy: Hybrid Semantic Field Coverage Analysis (proven from cache)
Approach: Field enumeration + type analysis + cross-referencing
Effectiveness: HIGH (5 issues found)
Should Reuse: YES ✅
This strategy successfully identified:
Next Run Recommendation: Use this strategy again (70% probability selection) or try Strategy 2 (Deep Type Constraint Validation) for complementary analysis.
References:
Beta Was this translation helpful? Give feedback.
All reactions