[Schema Consistency] Schema Consistency Check — 2026-06-03 #36588
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Schema Consistency Checker. A newer discussion is available at Discussion #36862. |
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
All findings below were re-confirmed against the live tree on 2026-06-03 (HEAD
97aef66). These are persistent divergences carried from prior audits — none have regressed, but none are yet fixed.Critical Issues
No correctness-breaking (would-cause-runtime-bug) issues found this run. All 7 findings are consistency/maintainability divergences. The highest-impact items are the two missing deprecation flags (users get no machine-readable deprecation signal) and the three fully-undocumented fields.
Schema ↔ Parser/Compiler Mismatches
Deprecation described in prose but not flagged (
deprecated: truemissing)inline-sub-agents— description begins "Deprecated switch for inline sub-agent support..." yet.deprecatedisnulland there is nox-deprecation-message.rate-limit— description begins "Legacy alias for 'user-rate-limit'..." yet.deprecatedisnulland there is nox-deprecation-message.deprecated: true, so these two are genuine omissions, not a convention the project avoids.deprecatedgive no warning for these fields.create-code-scanning-alert— singular schema/parser key vs plural Go struct tagsafe-outputsproperty key:create-code-scanning-alert(singular).outputMap["create-code-scanning-alert"](singular) atpkg/workflow/create_code_scanning_alert.go:24,29.pkg/workflow/compiler_types.go:647→yaml:"create-code-scanning-alerts,omitempty".Dead allowlist entries in
SharedWorkflowForbiddenFieldspkg/constants/constants.go:334(command) and:342(roles) forbid fields that are not top-level schema properties (top-level schema isadditionalProperties: false, and neither key exists in.properties).Schema ↔ Documentation Mismatches
Three schema fields have ZERO curated documentation (only appear in the auto-generated
frontmatter-full.md):check-for-updatesdisable-model-invocationrun-install-scriptsBroken in-schema doc anchor for
check-for-updates.../reference/frontmatter/#check-for-updates, butfrontmatter.mdcontains 0 occurrences ofcheck-for-updates— no such heading/anchor exists.Schema ↔ Workflows / Naming-Convention Mismatches
dispatch_repositoryuses snake_case among kebab-case siblingspkg/parser/schemas/main_workflow_schema.json:8329definesdispatch_repositorywhile every sibling safe-output (dispatch-workflow,create-issue,create-discussion, ...) uses kebab-case.Parser ↔ Documentation Mismatches
IgnoredFrontmatterFieldsis undocumentedpkg/constants/constants.go:315→IgnoredFrontmatterFields = ["user-invokable"]— silently dropped during validation, butuser-invokableappears in 0 files underdocs/.Recommendations
"deprecated": true(and ideallyx-deprecation-message) toinline-sub-agentsandrate-limitin the schema.compiler_types.go:647to singularcreate-code-scanning-alert, matching schema + parse handler.dispatch_repository→dispatch-repositoryin the schema (with a back-compat alias if any workflows already use the snake_case form).check-for-updates,disable-model-invocation, andrun-install-scripts; add the missing#check-for-updatesheading so the schema link resolves.user-invokable(the loneIgnoredFrontmatterFieldsentry) or remove it if obsolete.command/rolesentries inSharedWorkflowForbiddenFields.Strategy performance (this run)
Noise note (not findings):
field_gaps.in_schema_not_parserandin_used_not_schemafrom the pre-computed diff remain low-signal — top-level fields are handled viamap[string]anyaccess (no yaml tags), andused_in_workflowsflattens nested expression keys (authors,model,title,repo,task,try,else,date,https). These were excluded.Next Steps
deprecated: trueflags toinline-sub-agentsandrate-limitcreate-code-scanning-alertplural struct tagdispatch_repositoryto kebab-casecheck-for-updates,disable-model-invocation,run-install-scripts+ add missing anchoruser-invokablecommand/rolesforbidden-field entriesReferences: §26868884519
Beta Was this translation helpful? Give feedback.
All reactions