Skip to content

Define Agent Spec schema versioning and compatibility semantics #127

Description

@schickling-assistant

Problem

Agent Spec has no explicit schema version or defined compatibility policy. Additive fields can currently ship safely, but a future semantic or grammar change would leave authors and runners without a reliable way to distinguish supported declarations from silently misinterpreted ones.

This should be designed independently from the additive stable-identity/display-name split.

Design questions

  • What identifies the schema and version across canonical KDL and the supported secondary formats?
  • Which changes are additive, deprecated, or breaking?
  • Must unsupported major versions fail closed during discovery and validation?
  • How do renderers, st2, eval fixtures, and external readers advertise their supported range?
  • What migration and rollback evidence is required before retiring a schema version?
  • Should catalog-wide validation require one version, or permit explicitly supported mixtures?

Acceptance direction

  • Version semantics are documented before the first version-gated change.
  • Unsupported declarations fail with stable machine-readable diagnostics.
  • Executable tests cover supported, unsupported, and mixed-version catalogs.
  • The design does not introduce indefinite dual parsing or silent fallback behavior.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agent-specAgent Spec format, parsing, and the agent-spec crate · Set: manualorigin:agentFiled or primarily produced by an AI agent · Set: manualstate:open-design-questionUnresolved design choice requiring explicit alignment before implementation · Set: manualtype:featureNew user-visible or system capability · Set: manual

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions