[Schema Consistency] Schema Consistency Analysis - 2026-01-21: Critical Documentation Gap & Missing Field #11121
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-01-28T23:56:01.684Z. |
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 consistency across the main workflow schema, MCP config schema, parser implementation, compiler code, and documentation.
Summary
Critical Issues
🔴 Issue #1: Schema File Removed, Documentation Outdated
Problem: The
included_file_schema.jsonfile was removed from the codebase, but multiple documentation files still reference it.Status:
pkg/parser/schemas/included_file_schema.json- NO (removed)pkg/parser/*.goCurrent Architecture (2 schemas):
main_workflow_schema.json- Used for BOTH main workflows AND included/shared workflowsmcp_config_schema.json- Used for MCP tool configurationsFiles Requiring Updates:
specs/schema-validation.md:15, 91- Remove included_file_schema referencesskills/developer/SKILL.md:1094- Update schema files table.github/workflows/schema-consistency-checker.md:85- Remove from key files list.github/workflows/schema-consistency-checker.lock.yml:690- Update workflow instructionsImpact: Documentation misleads developers and users about the schema architecture.
Recommendation: Update all documentation to reflect the current two-schema architecture.
🔴 Issue #2: safe-jobs Field Missing from Schema
Problem: The
safe-jobstop-level field is accessed in compiler code but NOT defined inmain_workflow_schema.json.Evidence:
pkg/workflow/safe_jobs.go:40-frontmatter["safe-jobs"]pkg/workflow/compiler_orchestrator.go:744- extractSafeJobsFromFrontmatter()pkg/workflow/compiler_safe_output_jobs.go:55-60- buildSafeJobs()Analysis:
safe-jobsappears to be an internal implementation detail that users shouldn't use directly. Users should usesafe-outputs.jobsinstead.Impact:
safe-jobsconfigurationsRecommendation: Choose one approach:
safe-jobsto schema with proper validation (if it's valid user-facing)safe-outputs.jobsfrontmatter["safe-jobs"]access if truly not user-facingModerate Findings
Problem: 18 properties defined in schema are NOT accessed via
frontmatter["key"]in compiler.View Properties Not Accessed
Properties in schema but not accessed in
pkg/workflow/*.go:cachecommandconcurrencycontainerenvenvironmentimportslabelsmetadatapost-stepsrun-nameruns-onruntimesservicesstepsstricttimeout-minutestimeout_minutesAnalysis:
Impact: LOW if passthrough is intentional, MEDIUM if some should be removed.
Recommendation: Document which fields are "GitHub Actions passthrough" vs "compiler-processed".
Documentation Issues
📝 Issue #4: safe-jobs Mentioned But Not Documented
Problem:
safe-jobsmentioned in compilation-process.md but not in frontmatter reference.Evidence:
docs/src/content/docs/reference/compilation-process.md:270- "use safe-jobs for custom logic"docs/src/content/docs/reference/frontmatter.md- No mentionsRecommendation: If user-facing, document it properly. If internal-only, remove the reference.
Positive Findings
✅ Schema Consolidation Complete in Code: Parser and compiler successfully updated to use only 2 schemas with no remaining
included_file_schemareferences. Clean migration!✅ Comprehensive MCP Validation: MCP config schema properly integrated with dedicated
ValidateMCPConfigWithSchema()function and clear error messages.Recommendations
🔥 High Priority:
Update Documentation - Remove all
included_file_schema.jsonreferences from:Clarify safe-jobs - Either:
Document safe-jobs vs safe-outputs.jobs - Clear usage guidance
⚡ Medium Priority:
Document Passthrough Fields - Clearly identify which schema fields are GitHub Actions passthroughs vs compiler-processed
Verify "Unused" Properties - Confirm all 18 properties are intentionally passthrough or should be removed
📋 Low Priority:
Schema Architecture Evolution
Previous (3 schemas):
Current (2 schemas):
Key Insight: Code migration completed cleanly, but documentation lagged behind. This is a classic refactoring debt pattern.
Strategy Performance
Why This Strategy Works:
Files Analyzed
Schemas (2 files):
pkg/parser/schemas/main_workflow_schema.json(287,994 bytes, 38 top-level properties)pkg/parser/schemas/mcp_config_schema.json(7,905 bytes, 14 top-level properties)Parser (63 Go files, 24,315 lines):
pkg/parser/*.go- Frontmatter parsing, schema validation, import processingCompiler (239 Go files):
pkg/workflow/*.go- Workflow compilation, safe-outputs, jobs generationDocumentation:
docs/src/content/docs/reference/- Frontmatter reference, compilation docsspecs/schema-validation.md- Schema architecture specs.github/workflows/schema-consistency-checker.md- This workflow's instructions🔎 Next Steps: Address the critical documentation gaps to prevent developer confusion and ensure accurate reference materials.
References:
Beta Was this translation helpful? Give feedback.
All reactions