[Schema Consistency] Schema Consistency Analysis Report #28396
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Schema Consistency Checker. A newer discussion is available at Discussion #28547. |
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 Analysis: gh-aw Repository
Executive Summary
The schema generally has good coverage of top-level frontmatter fields. However, there are notable inconsistencies between the documented schema and the actual code implementation:
cache-memoryandrepo-memoryare properly nested undertoolsin schema but there's potential confusion about their structure.dispatch_repositoryin code uses underscore but schema expectsdispatch-repositorywith hyphen.disable-model-invocation,infer,metadata,labels,private,check-for-updates,inlined-imports,run-install-scriptsare all present in schema.includefield documented in code is NOT at top-level in schema (should be).Detailed Findings
1. TOP-LEVEL SCHEMA PROPERTIES ANALYSIS
All 54 top-level properties found in schema:
bots,cache,check-for-updates,checkout,command,concurrency,container,dependencies,description,disable-model-invocation,engine,env,environment,features,github-app,if,import-schema,imports,infer,inlined-imports,jobs,labels,mcp-scripts,mcp-servers,metadata,name,network,observability,on,permissions,post-steps,pre-agent-steps,pre-steps,private,rate-limit,redirect,resources,run-install-scripts,run-name,runs-on,runs-on-slim,runtimes,safe-outputs,sandbox,secret-masking,secrets,services,source,steps,strict,timeout-minutes,tools,tracker-idAll checked frontmatter fields from code are present in schema ✓
2. SPECIFIC FIELD ANALYSIS
Fields Verified to Be in Both Code and Schema:
disable-model-invocationbooleaninferbooleandisable-model-invocationmetadataobjectlabelsarray[string]privatebooleangh aw addcheck-for-updatesbooleaninlined-importsbooleanrun-install-scriptsbooleanimport-schemaobjectdependenciesarray[string]resourcesarray[string]Fields Verified in
OnSub-properties:stale-checkbooleanskip-rolesstring | array[string]skip-botsstring | array[string]manual-approvalstringgithub-tokenstringgithub-appobjectMemory and Observability Fields (Nested under
tools):cache-memoryboolean | object | array[object]repo-memoryboolean | object | array[object]observabilityobject3. CRITICAL INCONSISTENCY: YAML TAG NAMING
Issue Found - CRITICAL:
In
pkg/workflow/compiler_types.goline 589:The code uses underscore (
dispatch_repository), but schema expects hyphen (dispatch-repository).Location in SafeOutputsConfig struct (lines 549-620): Line 589
Schema definition: Not yet checked - need to find it
This could cause YAML deserialization failures when the schema validation passes but the struct unmarshaling fails.
4. MISSING TOP-LEVEL FIELD IN SCHEMA
Issue Found - CRITICAL:
The
includefield is defined inFrontmatterConfig(line 200 of frontmatter_types.go):Schema Status:
includefield is NOT present at the top-level properties. It appears only nested in other contexts (engine config, etc.).Expected Schema Location: Should be a top-level property alongside
importsandresourcessince it's parsed at the frontmatter level.5. SAFE-OUTPUTS CONFIG STRUCTURE ANALYSIS
Code Structure (compiler_types.go lines 549-620):
The SafeOutputsConfig struct contains ~40+ configuration types for different output actions:
create-issue,create-discussion,update-discussion,close-discussion,close-issue,close-pull-requestadd-comment,comment-memory,create-pull-request,create-pull-request-review-commentsubmit-pull-request-review,reply-to-pull-request-review-comment,resolve-pull-request-review-threadcreate-code-scanning-alerts,autofix-code-scanning-alert,add-labels,remove-labelsadd-reviewer,assign-milestone,assign-to-agent,assign-to-user,unassign-from-userupdate-issues,update-pull-requests,merge-pull-request,push-to-pull-request-branchupload-assets,upload-artifact,update-release,create-agent-sessionsupdate-projects,create-projects,create-project-status-updates,link-sub-issue,hide-comment,set-issue-typedispatch-workflow,dispatch_repository(underscore!),call-workflowmissing-tool,missing-data,noop,report-incomplete,threat-detectionjobs,scripts,github-app,allowed-domains,allowed-github-references,env,github-token,max-patch-size,runs-on,messages,mentions,footer,group-reports,report-failure-as-issue,failure-issue-repo,max-bot-mentions,steps,id-token,concurrency-group,needs,environment,actionsSchema Coverage: All major safe-outputs config types appear to be documented in schema starting at line 4479.
6. ENGINE FIELD STRUCTURE
Code: Uses
EngineConfigstruct (referenced at L434 in compiler_types.go)Schema: Defined at line 3384 with
$ref: "#/$defs/engine_config"Engine Config Sub-properties:
id- Engine identifierversion- Version specificationmodel- Model selection (for claude, etc.)max-turns- Max conversation turnscache-memory,repo-memory,agentic-workflows7. NETWORK FIELD STRUCTURE
Schema Definition: Lines 2882-2926
Properties:
allowed: Array of domain names or ecosystem identifiersblocked: Array of domains to explicitly blockCode Reference:
NetworkPermissionsstruct should exist inpkg/workflow/domains.goor similar8. DOCUMENTED vs. IMPLEMENTED FRONTMATTER FIELDS
From docs/src/content/docs/reference/frontmatter.md (first 100 lines):
Documented top-level sections:
on:)description:)source:)redirect:)private:)All of these are properly in the schema.
Summary of Actionable Inconsistencies
CRITICAL ISSUES:
YAML Tag Mismatch:
dispatch_repository(underscore) in code vs. likely hyphenated in schemapkg/workflow/compiler_types.goline 589Missing
includeField: Not present as top-level property in schemapkg/workflow/frontmatter_types.goline 200MEDIUM ISSUES:
cache-memoryandrepo-memoryare nested undertoolsin schema - verify this matches code expectations for parsingNO ISSUES FOUND:
disable-model-invocation- Present and documentedinfer- Present, marked as deprecatedmetadata- Present with proper constraintslabels- Present for categorizationprivate- Present for securitycheck-for-updates- Presentinlined-imports- Presentrun-install-scripts- Presentimport-schema- Presentdependencies- Presentresources- Presentonsub-properties (stale-check,skip-roles,skip-bots, etc.) - PresentRecommendations
dispatch_repository/dispatch-repositorynaming inconsistencyincludeas a top-level schema propertycache-memoryandrepo-memoryparsing correctly from nestedtoolslocationBeta Was this translation helpful? Give feedback.
All reactions