[Schema Consistency] Schema Consistency Check — 2026-04-03 #24227
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Schema Consistency Checker. A newer discussion is available at Discussion #24442. |
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.
-
Analysis of schema, parser/compiler, documentation, and workflows using the Cross-Layer Field Diff strategy (proven, success_count: 5). Most recent commit analyzed:
c0865b8— feat: Expose MCP gateway keepalive-interval in workflow config schema.Summary
Critical Issues
1.
create-code-scanning-alertvscreate-code-scanning-alerts— Singular/Plural MismatchSeverity: High — could silently prevent struct-based deserialization
main_workflow_schema.json:6177)create-code-scanning-alert(singular)safe_outputs_config.go:161,create_code_scanning_alert.go:21)create-code-scanning-alert(singular)compiler_types.go:460)create-code-scanning-alerts(plural)daily-semgrep-scan.md:15,daily-malicious-code-scan.md:17)create-code-scanning-alert(singular)The struct yaml tag
create-code-scanning-alerts(plural) does not match the schema key or the actual workflow files which use the singular form. Struct-based YAML deserialization of a config using the singular key will silently fail to populateCreateCodeScanningAlerts. Only the raw-map accessor path (outputMap["create-code-scanning-alert"]) correctly handles the field.Fix: Change
compiler_types.go:460yaml tag fromcreate-code-scanning-alertstocreate-code-scanning-alert, or make the raw-map parser populate the struct field explicitly.Schema Description Inaccuracies
2.
status-commentAuto-Enable Behavior Not Reflected in Schema or DocsSeverity: Medium — behavior surprise for users of
slash_command/label_commandThe schema description for
activation.status-comment(main_workflow_schema.json:1888) states:docs/src/content/docs/reference/frontmatter.md:33echoes this:However,
compiler_safe_outputs.go:193–196auto-enablesstatus-comment: truefor any workflow usingslash_commandorlabel_commandtriggers:This behaviour was expanded in the current batch of changesets (
minor-enable-reaction-status-comment-by-default) to also coverlabel_command.Fix: Update schema description and frontmatter.md to read: "Defaults to
truewhenslash_commandorlabel_commandtriggers are used; must be explicitly set totruefor other trigger types."Documentation Gaps
3. NEW:
sandbox.mcp.keepalive-intervalMissing fromfrontmatter-full.mdSeverity: Medium — introduced in commit
c0865b8(yesterday)keepalive-intervalwas added to:main_workflow_schema.json:3234tools_types.go:515(yaml:"keepalive-interval,omitempty")frontmatter_extraction_security.go:500docs/src/content/docs/reference/mcp-gateway.md:253✅But not added to
docs/src/content/docs/reference/frontmatter-full.md. Thesandbox.mcpsection there (around line 1711) documentsmounts,env,port,api-key, anddomain— but omitskeepalive-interval.Fix: Add
keepalive-intervalto thesandbox.mcpsection infrontmatter-full.md.4.
sandbox.mcpMissingcontainer,version,entrypoint,args,entrypointArgsfromfrontmatter-full.mdSeverity: Low — pre-existing gap
Schema defines 11 properties for
sandbox.mcp:container,version,entrypoint,args,entrypointArgs,mounts,env,port,api-key,domain,keepalive-interval.frontmatter-full.mdonly documents 5 of them:mounts,env,port,api-key,domain. The container image fields (container,version,entrypoint,args,entrypointArgs) are undocumented in the frontmatter reference.5.
rate-limitNot Referenced infrontmatter.mdSeverity: Low — discoverability issue
rate-limitis a top-level schema field (inmain_workflow_schema.json) with full Go implementation (frontmatter_types.go:113,compiler.go:304). It is documented indocs/src/content/docs/reference/rate-limiting-controls.md:114, but not mentioned indocs/src/content/docs/reference/frontmatter.md. A user reading the frontmatter reference would not discover this field exists.6.
import-schemaNot Documented infrontmatter.mdSeverity: Low — discoverability issue
import-schemais a top-level schema field (main_workflow_schema.json) implemented infrontmatter_types.go:178andexpression_extraction.go:252. It is only shown infrontmatter-full.md. The mainfrontmatter.mdreference has no section for it.7.
check-for-updatesNot Documented infrontmatter.mdSeverity: Low — broken reference link
Schema at line 8418 links to anchor
https://github.github.com/gh-aw/reference/frontmatter/#check-for-updateswhich does not exist infrontmatter.md. Only appears infrontmatter-full.md:5982.8.
observabilityNot Documented infrontmatter.mdSeverity: Low — pre-existing gap
observabilityis a top-level schema field (line 8316), implemented incompiler_yaml_ai_execution.go, present infrontmatter-full.md:5902, but entirely absent fromfrontmatter.md.9.
mark-pull-request-as-ready-for-reviewandset-issue-typeMissing fromsafe-outputs.mdSeverity: Low — pre-existing gap
Both fields are in the schema, implemented, and documented in
frontmatter-full.mdandglossary.md, butdocs/src/content/docs/reference/safe-outputs.mdhas no section for either. Every other safe output has a dedicated section in that file.Naming Inconsistencies
10.
dispatch_repositoryUses Underscore While All Peers Use Kebab-CaseSeverity: Low — user-facing inconsistency
Schema key at line 7257 and the Go test file use
dispatch_repository(underscore), while every other safe-outputs key uses kebab-case. The test confirms bothdispatch_repositoryanddispatch-repository(dash) are accepted via aliasing, but the primary schema key uses underscore, creating inconsistency in the documentation and schema.Recommendations
create-code-scanning-alertsplural struct tag incompiler_types.go:460— or add an explicit mapping from raw-map to the struct field to ensure consistency.activation.status-commentto document the auto-enable behavior forslash_command/label_commandtriggers.keepalive-intervalto thesandbox.mcpsection infrontmatter-full.md(regression from commitc0865b8).sandbox.mcpcontainer fields (container,version,entrypoint,args,entrypointArgs) tofrontmatter-full.md.rate-limit:section tofrontmatter.mdwith a cross-reference torate-limiting-controls.md.import-schema:andcheck-for-updates:sections tofrontmatter.md.mark-pull-request-as-ready-for-reviewandset-issue-typesections tosafe-outputs.md.Strategy Performance
References: §23933760200
Beta Was this translation helpful? Give feedback.
All reactions