[Schema Consistency] Cross-Schema Type Inconsistencies: Version Fields and Feature Availability #5156
Closed
Replies: 1 comment
-
|
⚓ Avast! This discussion be marked as outdated by Schema Consistency Checker. |
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.
-
🔍 Schema Consistency Check - 2025-12-01
This analysis reveals critical inconsistencies between the three JSON schemas that govern workflow validation. The main schema diverges significantly from both the included file schema and MCP config schema, creating validation gaps and undocumented feature limitations.
Executive Summary
Key Findings:
Impact: Workflows that validate against one schema may fail validation against another. Advanced features advertised in main schema are silently unavailable in included files without documentation.
Full Report Details
Critical Issues
1. MCP Tool Version Type Mismatch
Problem: The three schemas disagree on what types the
versionfield accepts for MCP tools.Schema Comparison:
Impact:
version: 20validates against main schema but fails against included/MCP schemasLocation:
pkg/parser/schemas/main_workflow_schema.json-$defs.stdio_mcp_tool.versionpkg/parser/schemas/included_file_schema.json-$defs.stdio_mcp_tool.versionpkg/parser/schemas/mcp_config_schema.json-properties.versionRecommendation: Unify type definitions. Either:
["string", "number"]with documented type coercion"string"only and document numeric version rejection2. Engine Configuration Field Mismatch
Problem: Main schema defines 10+ engine configuration fields, but included schema only supports 6 basic fields.
Missing from Included Schema:
concurrency- Controls concurrent workflow executionuser-agent- Custom user agent for GitHub MCP (codex engine)error_patterns- Custom error pattern validationconfig- Additional TOML configuration (codex engine)args- Command-line arguments for engine CLISchema Comparison:
Impact:
Location:
pkg/parser/schemas/main_workflow_schema.json-$defs.engine_configpkg/parser/schemas/included_file_schema.json-properties.engineRecommendation:
$commentto included schema explaining the limitation3. Network Field Structural Difference
Problem: Main schema has rich network configuration with AWF (Agent Workflow Firewall) support, but included schema has minimal configuration.
Schema Comparison:
Differences:
enum: ["defaults"], Included usesconst: "defaults"["string", "number"], Included N/AImpact:
constvsenumcreates minor validation difference (both work but semantically different)Location:
pkg/parser/schemas/main_workflow_schema.json-properties.networkpkg/parser/schemas/included_file_schema.json-properties.networkRecommendation:
4. MCP Config anyOf Requirement Discrepancy
Problem: MCP config schema has permissive validation requirements that differ from main/included schemas.
Schema Comparison:
Impact:
commandorcontainerfor stdio toolsLocation:
pkg/parser/schemas/mcp_config_schema.json- rootanyOfpkg/parser/schemas/main_workflow_schema.json-$defs.stdio_mcp_tool.anyOfpkg/parser/schemas/included_file_schema.json-$defs.stdio_mcp_tool.anyOfRecommendation: Fix MCP config anyOf to match stdio_mcp_tool requirements:
Or document why MCP config intentionally has different requirements.
Moderate Issues
5. Version Field Description Inconsistency
Problem: Version field descriptions don't consistently document type coercion behavior.
Comparison:
Impact: Users reading included schema don't know if numeric versions work
Recommendation: Standardize descriptions to always mention type coercion (if supported) or explicitly state "string only"
Positive Findings
✅ http_mcp_tool Definition Identical
The
http_mcp_tooldefinition is perfectly consistent across main and included schemas:type,registry,url,headers,allowed✅ Permissions Field Present in Both
Both main and included schemas define the
permissionsfield with GitHub Actions permission scopes. Structure appears consistent (deeper validation needed).Type Coercion Pattern Analysis
Main Schema Pattern: Consistently uses
["string", "number"]for version fields with documented runtime conversion:engine.versionengine.firewall.versionstdio_mcp_tool.versionIncluded/MCP Schema Pattern: Only accepts
"string"type, no numeric support documentedThis suggests an intentional design where:
Schema Architecture Insights
The three schemas serve different purposes:
Main Workflow Schema (
main_workflow_schema.json)Included File Schema (
included_file_schema.json)MCP Config Schema (
mcp_config_schema.json)Design Question: Is the feature limitation in included files intentional or accidental?
Recommendations by Priority
Priority 1: CRITICAL - Fix Type Definitions
Action: Unify version field type definitions across all schemas
["string", "number"]with documented coercion"string"only with clear documentationFiles:
pkg/parser/schemas/main_workflow_schema.jsonpkg/parser/schemas/included_file_schema.jsonpkg/parser/schemas/mcp_config_schema.jsonPriority 2: CRITICAL - Document Feature Availability
Action: Add documentation explaining which features are available in main vs included files
Changes:
Add
$commentfields to included schema explaining limitations:Update frontmatter documentation (
docs/src/content/docs/reference/frontmatter.md)Add "Included File Limitations" section to docs
Priority 3: HIGH - Unify Network Configuration
Action: Either add firewall to included schema OR document why it's main-only
Decision needed: Should included files support AWF firewall configuration?
Priority 4: MEDIUM - Fix MCP Config Validation
Action: Update MCP config schema anyOf requirements to match stdio_mcp_tool
File:
pkg/parser/schemas/mcp_config_schema.jsonChange:
Priority 5: LOW - Standardize Descriptions
Action: Use consistent language for version field descriptions across all schemas
Pattern: Always mention type coercion if supported, or explicitly state "string only"
Testing Recommendations
To prevent future schema drift:
Create Schema Consistency Tests
stdio_mcp_toolversion types match across schemasAdd Documentation Validation
Create Schema Diff Tool
Strategy Performance
Strategy Used: Strategy-004 (Cross-Schema Consistency & Type Analysis)
Key Strengths:
Next Steps
Analysis Method: Strategy-004 selected from cache using deterministic selection (day 335 mod 10 = 5, within proven strategy range). Previous run 2025-11-28 found 6 issues. This run found 7 issues with different focus areas, confirming strategy's continued effectiveness.
Strategy Database: Updated with success count 5, findings 7, last_used 2025-12-01
Beta Was this translation helpful? Give feedback.
All reactions