-
Notifications
You must be signed in to change notification settings - Fork 209
Closed
Labels
Description
Objective
Eliminate the engine field duplication risk by changing the included schema to use $ref instead of an inline definition.
Context
Priority: CRITICAL
Category: Schema Structure / Maintenance Burden
Currently:
- Main Schema: Uses
$ref: "#/$defs/engine_config"(centralized definition) - Included Schema: Uses inline definition with identical oneOf structure
This creates a maintenance burden where every engine schema change must be manually duplicated across two files, with risk of schema drift.
Approach
- Open
pkg/parser/schemas/included_file_schema.json - Locate the
enginefield definition (currently inline with oneOf structure) - Replace the inline definition with:
"$ref": "#/$defs/engine_config" - Ensure the
$defs/engine_configdefinition exists in the included schema (if not, copy from main schema) - Rebuild the binary with
make build(schemas are embedded via//go:embed) - Test with a workflow that uses included files with engine configurations
Files to Modify
- Update:
pkg/parser/schemas/included_file_schema.json- Change engine field from inline to
$ref - Ensure
$defs/engine_configis present
- Change engine field from inline to
Acceptance Criteria
- Included schema uses
$ref: "#/$defs/engine_config"for engine field - No inline duplication of engine config structure
- Schema validates correctly with test workflows
- Binary rebuilds successfully with
make build - Included files with engine configs compile correctly
Testing
# Rebuild binary after schema changes
make build
# Test compilation with included file
./gh-aw compile test-workflow-with-includes.mdAI generated by Planning Assistant
Related to #7944
AI generated by Plan Command for discussion #7935
Reactions are currently unavailable