[Schema Consistency] Schema Consistency Check — 2026-06-01 #36193
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Schema Consistency Checker. A newer discussion is available at Discussion #36416. |
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
main)strategy-19, naming-convention consistency)Day-of-year selection landed in proven-strategy mode (152 mod 10 = 2). All previously-cached findings were re-verified against the current tree and still reproduce, and two new findings were discovered via a fresh naming-convention strategy.
Critical Issues
None. No correctness bug that would let an invalid value silently compile was found this run. All issues below are documentation, deprecation-signalling, or naming-hygiene gaps.
Schema ↔ Parser / Compiler Mismatches
applyTois accepted by the parser allowlist but is not a schema property and is undocumentedpkg/parser/include_processor.go:267("applyTo": trueinvalidFields); absent frommain_workflow_schema.jsonproperties$def:templatable_integeris defined but never$ref'dmain_workflow_schema.json—templatable_integeroccurs once (the definition only); siblingtemplatable_booleanis referenced 10×create-code-scanning-alertplural/singular splitpkg/workflow/create_code_scanning_alert.go:24readsoutputMap["create-code-scanning-alert"]), but the Go struct yaml tag is pluralcreate-code-scanning-alerts(pkg/workflow/compiler_types.go:647). The plural tag is effectively dead since parsing uses manual map access.dispatch_repositorybreaks the kebab-case conventionmain_workflow_schema.jsonsafe-outputs key uses snake_casedispatch_repositorywhile every sibling (e.g.dispatch-workflow,create-issue) uses kebab-caseSchema ↔ Documentation Mismatches
check-for-updates,disable-model-invocation,run-install-scripts— 0 hits indocs/src/content/docs/reference/frontmatter.mdand sibling reference pages (excluding auto-generatedfrontmatter-full.md)check-for-updatesandrun-install-scriptsschema descriptions link toreference/frontmatter/#<field>anchors that have no matching heading infrontmatter.mduser-invokable(inIgnoredFrontmatterFields,pkg/constants/constants.go:315) is silently dropped but appears nowhere indocs/docs/returns no hitsDeprecation-Signalling Gaps
inline-sub-agentsdescription begins "Deprecated switch..." but.deprecatedisnulland it has nox-deprecation-messagemain_workflow_schema.json(schema otherwise usesdeprecated:true+x-deprecation-messagein 14 places, so this is a genuine omission)rate-limitdescription begins "Legacy alias for 'user-rate-limit'" but.deprecatedisnull, nox-deprecation-message, and the parser only logs the legacy use at debug level (pkg/workflow/role_checks.go:301,roleLog.Print) — no user-visible deprecation warningDefault-Value Inconsistency
expiresdefault is asymmetric across siblingsdefault: 7oncreate-discussion.expiresbutcreate-issue.expireshas no default (null)Dead / Defensive Allowlist Entries (observations)
SharedWorkflowForbiddenFieldsinpkg/constants/constants.goreferencescommandandroles, which are not top-level schema properties (the top-level schema isadditionalProperties:false). These are harmless but dead/defensive entries worth pruning or documenting.Recommendations
deprecated: true+x-deprecation-messagetoinline-sub-agentsandrate-limitso tooling and editors surface the deprecation (findings 8, 9). Forrate-limit, also emit a user-visible warning instead of a debug-only log.check-for-updates,disable-model-invocation,run-install-scripts, and fix their broken#<field>doc anchors (findings 5, 6).applyTo: either add it to the schema + docs, or remove it from the parservalidFieldsallowlist (finding 1).create-code-scanning-alertsingular/plural: align the Go struct yaml tag (compiler_types.go:647) with the singular schema key, or add a documented alias (finding 3).dispatch_repositoryto kebab-case (or document the intentional exception) for convention consistency (finding 4).templatable_integerdef, andcommand/rolesfromSharedWorkflowForbiddenFieldsif no longer needed; documentuser-invokable(findings 2, 7, observations).Strategy Performance
main.strategy-19(safe-output key naming/plurality consistency) — 2 new findings, effectiveness HIGH, will reuse.field_gapsdiff (noisy due to map-access fields and flattened nested keys).Next Steps
applyToschema/allowlist mismatchcreate-code-scanning-alertsingular/plural anddispatch_repositorycasing$def/ forbidden-field entriesNote: a parallel multi-agent fan-out was attempted but the dynamic workflow required interactive approval unavailable in this headless run; analysis fell back to batched inline detection. All findings above are independently verified against the current tree.
Beta Was this translation helpful? Give feedback.
All reactions