Skip to content

fix(scripts): add missing fields and fix types in agent-frontmatter.schema.json #425

@katriendg

Description

@katriendg

Note

Partial Completion Status (assessed 2026-02-13)

Completed:

  • Schema covers key VS Code 1.106+ features (description, tools, handoffs with label, agent, prompt)
  • HVE-Core specific maturity field present and documented

Remaining:

  • agents field missing from schema (array or * string)
  • user-invokable field missing (boolean, default true)
  • disable-model-invocation field missing (boolean, default false)
  • model type is string-only — should be oneOf string or array
  • handoffs.prompt is still required — should be optional
  • handoffs.model field missing (optional string)

Issue Description

The schema at scripts/linting/schemas/agent-frontmatter.schema.json is missing fields and has incorrect type definitions compared to VS Code's official custom agents specification.

Missing Fields to Add:

Field Type Default Purpose
agents array or * string all allowed List of subagent names
user-invokable boolean true Controls dropdown visibility
disable-model-invocation boolean false Prevents subagent invocation

Type Definitions to Fix:

Field Current Should Be
model string oneOf string or array
handoffs.prompt required optional
handoffs.model missing add as optional string

Schema Additions:

{
  "agents": {
    "oneOf": [
      { "type": "array", "items": { "type": "string" } },
      { "type": "string", "enum": ["*"] }
    ]
  },
  "model": {
    "oneOf": [
      { "type": "string" },
      { "type": "array", "items": { "type": "string" } }
    ]
  },
  "user-invokable": { "type": "boolean", "default": true },
  "disable-model-invocation": { "type": "boolean", "default": false }
}

Handoffs Item Update:

  • Change required from ["label", "agent", "prompt"] to ["label", "agent"]
  • Add model property (optional string)

Additional Context

  • Keep HVE-Core specific maturity field (extension channel control)
  • VS Code reference:
  • All existing agent files pass current schema; changes are additive except handoffs.prompt becoming optional

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions