Skip to content

[plan] Document engine-specific feature compatibility in schema #7577

@github-actions

Description

@github-actions

Objective

Add engine compatibility metadata to schema $comment fields for features that only work on specific engines.

Context

Multiple features are engine-specific (firewall only works on copilot and codex, sandbox only on copilot), but the schema provides no compatibility information. Users configure unsupported features and only discover the incompatibility at runtime or through obscure errors.

Engine-Locked Features to Document

Feature Supported Engines Code Reference
firewall copilot, codex pkg/workflow/firewall.go:89,105
sandbox copilot pkg/workflow/firewall.go:135
HTTP transport variations Engine-specific pkg/workflow/engine_validation.go
max-turns behavior Engine-specific pkg/workflow/agent_validation.go:143

Approach

Add $comment metadata to each feature's schema definition:

{
  "firewall": {
    "type": "object",
    "$comment": "Engine compatibility: copilot, codex only. Not supported on claude or custom engines. See pkg/workflow/firewall.go:89",
    "properties": { ... }
  }
}

For the engine field itself, add a compatibility matrix:

{
  "engine": {
    "type": "string",
    "enum": ["copilot", "claude", "codex", "custom"],
    "$comment": "Feature compatibility by engine: firewall (copilot, codex), sandbox (copilot only), http-transport (varies)"
  }
}

Files to Modify

  • pkg/parser/schemas/frontmatter.json - Add $comment fields
  • After changes, run make build to rebuild with embedded schema

Acceptance Criteria

  • All engine-specific features have $comment compatibility notes
  • Comments reference code locations for verification
  • Engine field has feature compatibility matrix
  • Documentation updated to reference schema comments

Testing

Review schema with IDE that displays $comment fields to verify visibility.
Related to #7575

AI generated by Plan Command for discussion #7569

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions