[Schema Consistency] Schema Namespace Collision Analysis - 10 Issues Found (1 Critical, 5 High Severity) #6312
Closed
Replies: 2 comments 1 reply
-
|
/plan |
Beta Was this translation helpful? Give feedback.
1 reply
-
|
⚓ 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.
-
Overview
This schema consistency audit analyzed field namespace collisions and path ambiguity across the schema. Out of 279 unique field names, 96 fields (34.4%) have name collisions. Most collisions are benign (intentional oneOf patterns), but 10 are problematic, including 1 critical YAML compatibility issue and 5 high-severity naming conflicts.
Key Discovery: The
onfield (YAML 1.1 reserved keyword) breaks external validation tooling. PyYAML parses it as a boolean, while goccy/go-yaml correctly treats it as a string key.Full Analysis Report
Critical Finding
🚨 YAML Reserved Keyword -
onFieldSeverity: CRITICAL
Impact: External tooling ecosystem completely broken
Problem:
onis a reserved boolean keyword in YAML 1.1 (along withyes,no,off)on:as a field nameon:becomes booleanTrueon:correctly parsed as string keyEvidence:
Impact: IDEs, linters, and CI/CD validation tools using PyYAML cannot validate gh-aw workflows.
Recommendations:
$commentfieldHigh Severity Findings
1. Network Configuration Namespace Collision
Severity: HIGH
Field:
networkCollision Contexts:
$defs.stdio_mcp_tool.network- MCP tool network isolationallowedarray for domain allowlistnetwork- Top-level engine network permissionsallowedarray for ecosystem identifiers and domainsProblem: Same field name, completely different semantics, no schema disambiguation
Confusion Potential: HIGH - Users might expect engine network rules to apply to MCP servers
Current Documentation: Separate docs (reference/network.md vs guides/mcps.md) without cross-references
Recommendations:
network-isolationoregress-allowlist2. Command Field Overloading (5 Contexts)
Severity: HIGH
Field:
commandCollision Contexts:
$defs.stdio_mcp_tool.command- MCP server executable command.allOf[0].on.command- Command trigger validation constraintcommand- Top-level command configurationon.oneOf[1].command- Command event trigger configsandbox.oneOf[1].agent.oneOf[2].command- Agent sandbox commandConfusion Potential: VERY HIGH - "command" means 5 completely different things
Recommendations:
on.commandvstools.mcp-servers.command)mcp-command,trigger-command)3. Environment Variables Scope Hierarchy (13 Contexts)
Severity: HIGH
Field:
env13 Different Scopes:
Problem:
Recommendations:
$commentdocumenting merge order4. Config Object Hierarchy Ambiguity
Severity: HIGH
Field:
configCollision Contexts:
$defs.engine_config.oneOf[1].config- Engine-specific configurationsandbox.oneOf[1].agent.oneOf[2].config- Agent sandbox configurationsandbox.oneOf[1].config- General sandbox configurationProblem: Generic name "config" at multiple nesting levels - ambiguous without path context
Recommendations:
engine-config,agent-config,sandbox-config5. Permissions Scope Shadowing
Severity: MEDIUM (upgraded from LOW due to GitHub Actions convention)
Field:
permissionsCollision Contexts:
jobs.permissions- Job-level GitHub permissionspermissions- Workflow-level GitHub permissionssafe-outputs.jobs.permissions- Safe-outputs job permissionsProblem: Classic shadowing - job-level overrides workflow-level
Current State: Token precedence documented, but not permissions shadowing
Recommendations:
Medium Severity Findings
6. Runs-On Configuration Precedence
Severity: MEDIUM
Field:
runs-on4 Scope Levels:
jobs.runs-onruns-on(workflow-level)safe-outputs.jobs.runs-onsafe-outputs.runs-onProblem: Four scopes without clear precedence documentation
Recommendations:
7. Timeout-Minutes Hierarchy
Severity: MEDIUM
Field:
timeout-minutes4 Scope Levels:
githubActionsStep.timeout-minutesjobs.steps.timeout-minutesjobs.timeout-minutestimeout-minutes(workflow-level)Note: Deprecated in favor of
timeout, but still supportedRecommendations:
timeoutfield8. Engine Field Reuse
Severity: MEDIUM
Field:
engineCollision Contexts:
engine- Top-level engine configuration (object)safe-outputs.threat-detection.oneOf[1].engine- Threat detection engine (string)Problem: Same name for object vs string, related but distinct concepts
Recommendations:
detection-engineorengine-id9. Timeout Field Namespace Separation
Severity: LOW
Field:
timeoutCollision Contexts:
safe-inputs.timeouttools.timeoutStatus: Acceptable - different namespaces make context clear
Recommendation: Schema descriptions should clarify scope (no action urgently needed)
Benign Patterns (Intentional Repetition)
The following fields appear multiple times by design in oneOf/anyOf patterns:
github-token(29 occurrences) - Safe-outputs configuration patterntarget,target-repo(11-21 occurrences) - Safe-outputs target specificationmax(24 occurrences) - Safe-outputs limit configurationallowed(8 occurrences) - Allowlist patterns across featuresbranches,branches-ignore,paths,paths-ignore(3-4 each) - Event filterstypes(19 occurrences) - GitHub event type filtersversion(14 occurrences) - Version specs across tools/configsThese repetitions follow consistent patterns and are structurally necessary.
Root Causes
on,env,permissions)Impact Assessment
Critical Impact
High Impact
Medium Impact
Recommendations Summary
Immediate Actions
$commentabout YAML 1.2 requirementShort-term Improvements
Long-term Considerations
engine-network,mcp-network)timeout-minutesto reduce collision surfacePositive Findings
Statistics
Strategy Metadata
Strategy: Namespace Collision & Field Path Ambiguity Detection (Strategy-023)
Novel Approach: ✅ Yes - First analysis focused specifically on naming conflicts
Findings: 10 distinct issues
Effectiveness: VERY HIGH
Methodology:
Complementary Strategies:
Next Steps: Review recommendations and prioritize based on user impact. The YAML 1.1 compatibility issue should be addressed first as it blocks external tooling adoption.
References:
Beta Was this translation helpful? Give feedback.
All reactions