[Schema Consistency] Schema Consistency Check — 2026-05-02 #29700
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-05-03T06:10:17.726Z.
|
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 run on 2026-05-02. Workflow run: §25245322929
Summary
main_workflow_schema.json), Parser/Compiler (pkg/parser/*.go,pkg/workflow/*.go), Documentation (docs/src/content/docs/reference/), Workflows (.github/workflows/*.md)Critical Issues
1.
deprecated: trueMissing from Schema for Compiler-Deprecated FieldsThe strict-mode validator (
validateStrictDeprecatedFieldsinpkg/workflow/strict_mode_permissions_validation.go:44) reads the list of deprecated fields from the schema usingparser.GetMainWorkflowDeprecatedFields(). That function only detects fields with"deprecated": trueas a JSON property.Currently, only two fields have
"deprecated": truein the schema:tools.greptools.serenaBut these fields are treated as deprecated by the compiler yet lack
"deprecated": truein the schema:deprecated: true?dependenciescompiler_orchestrator_tools.go:166warns "deprecated and no longer supported"inferinclude_processor.go:202comment marks it deprecatedImpact: In strict mode, workflows using
dependencies:orinfer:will compile without adeprecated fielderror. The schema's description forinfercorrectly says "DEPRECATED" but without"deprecated": true, the automated check cannot enforce it.Fix: Add
"deprecated": truetoproperties.dependenciesandproperties.inferinmain_workflow_schema.json.2. Experimental Features Not Flagged in Schema
The compiler (
pkg/workflow/compiler_validators.go:264-278) emits runtime warnings for three features:None of these have an
"experimental","x-status", or equivalent marker in the JSON schema. The schema descriptions for all three read as stable features:rate-limit: "Rate limiting configuration to restrict how frequently users can trigger the workflow."safe-outputs.dispatch_repository: "Dispatch repository_dispatch events to external repositories."safe-outputs.merge-pull-request: "Enable AI agents to merge pull requests under configured policy gates."Impact: IDE schema validation and documentation generators show no indication these features are experimental. Users discover the experimental status only at compile time via stderr warnings. The documentation correctly calls
dispatch_repositoryandmerge-pull-requestexperimental, but the schema itself is silent.Fix: Add
"x-stability": "experimental"(or similar) to these three schema nodes, and add a note torate-limit's description referencing its experimental status.Documentation Gaps
3.
featuresSub-Keys Not Enumerated in SchemaThe
featuresfield uses"additionalProperties": truewith onlyaction-tagshown in examples. However, the compiler actively validates several specific sub-keys:action-tagfeatures_validation.gofrontmatter.md✅action-modecompiler_validators.go:52frontmatter.md✅copilot-requestsconstants/feature_constants.goglossary.mdonlyawf-diagnostic-logsawf_helpers.go:308glossary.mdonlyintegrity-reactionscompiler_difc_proxy.go:164frontmatter.md✅cli-proxycompiler_difc_proxy.go:415frontmatter.md✅mcp-gatewaymcp_gateway.goglossary.mdonlybyok-copilotglossary.mdonlyThe
features.copilot-requestsflag is used in 15+ production workflow files in.github/workflows/(private preview, perglossary.md), yet the schema provides no guidance, and IDEs cannot validate or auto-complete it.Fix: Add a
"properties"object tofeaturesin the schema enumerating known sub-keys with descriptions. Keep"additionalProperties": truefor forward compatibility. Addfeatures.copilot-requestsand other used keys tofrontmatter.md.4. Schema Fields Missing from
frontmatter.mdThe following top-level schema fields have full, valid schema definitions and working implementations but are absent from the main
docs/src/content/docs/reference/frontmatter.mdreference page:check-for-updatesfrontmatter-full.mdonlyrun-install-scriptsfrontmatter-full.mdonlyexperimentsgithub-tools.md,artifacts.md) but no frontmatter sectionmcp-serverstools.md(not cross-linked from frontmatter.md)secret-maskingarchitecture.mdxandfrontmatter-hash-specification.mdbut no frontmatter sectiontracker-idfooters.mdandfrontmatter-hash-specification.mdrate-limitrate-limiting-controls.md(not cross-linked from frontmatter.md)The
experimentsfield is particularly notable: the schema defines a comprehensive A/B testing system (variants, weights, hypotheses, metrics, guardrail metrics), butfrontmatter.mdhas no section for it. Users relying onfrontmatter.mdas the primary reference won't discover this capability.Fix: Add stub sections to
frontmatter.mdfor each missing field with cross-links to the dedicated documentation pages.5.
inferField: Description Says Deprecated, Schema Property Does NotThe
inferfield's description in the schema reads:But there is no
"deprecated": trueJSON property. This is inconsistent with the pattern used fortools.grepandtools.serena(which have both the description text and the boolean property). BecauseextractDeprecatedFields()inpkg/parser/schema_deprecation.go:73checks only the boolean property,inferescapes strict-mode detection.This is a subset of finding #1, highlighted separately because it is an internal schema inconsistency (description contradicts structure).
6.
dependenciesField: Compiler Warning vs Schema Description MismatchThe
dependenciesfield's schema description reads:The compiler emits:
The main
frontmatter.mdcorrectly documents this as deprecated:But the schema itself provides no deprecation signal, creating a three-way inconsistency: schema says "supported," docs say "deprecated," compiler warns "not supported."
Schema Improvements Needed
Recommended schema changes
Add
"deprecated": truetoproperties.dependenciesand update its description to reference theimports: - uses: shared/apm.mdmigration path.Add
"deprecated": truetoproperties.infer(the description already says DEPRECATED — just needs the boolean property to match).Add
"x-stability": "experimental"(or a$comment) to:properties.rate-limitproperties.safe-outputs.properties.dispatch_repositoryproperties.safe-outputs.properties.merge-pull-requestEnumerate
featuressub-keys by adding"properties"toproperties.featuresfor:action-tag,action-mode,copilot-requests,awf-diagnostic-logs,integrity-reactions,cli-proxy,mcp-gateway,byok-copilot(deprecated).Recommendations
"deprecated": truetoproperties.dependenciesandproperties.inferinmain_workflow_schema.jsonso strict mode correctly rejects these fields.rate-limit,safe-outputs.dispatch_repository, andsafe-outputs.merge-pull-requestin the schema.featuressub-keys in the schema with descriptions; promotecopilot-requests,awf-diagnostic-logs,cli-proxy,mcp-gateway, andbyok-copilotfrom glossary-only tofrontmatter.mdsections.frontmatter.mdfor:check-for-updates,run-install-scripts,experiments,mcp-servers,secret-masking,tracker-id,rate-limit.properties.dependenciesdescription to match compiler warning andfrontmatter.md("deprecated and no longer supported; migrate toimports: - uses: shared/apm.md").Strategy Performance
deprecated: trueagainst compiler warnings is a high-signal, low-noise approachNext Steps
"deprecated": truetoproperties.dependenciesinmain_workflow_schema.json"deprecated": truetoproperties.inferinmain_workflow_schema.jsonrate-limit,dispatch_repository,merge-pull-requestin schemafeaturessub-key enumeration to schemafrontmatter.mdReferences:
Beta Was this translation helpful? Give feedback.
All reactions