Skip to content

Add skill versioning and compatibility #5

@jonwraymond

Description

@jonwraymond

Problem

Skills have no versioning. When tool schemas change:

  • Old skills may break silently
  • No way to specify tool version requirements
  • No migration path for skill updates

Proposal

Add skill versioning:

type Skill struct {
    // ... existing fields
    Version      string                    `json:"version,omitempty"`
    ToolVersions map[string]string         `json:"toolVersions,omitempty"` // toolID -> version constraint
    MinRuntime   string                    `json:"minRuntime,omitempty"`   // Minimum toolcompose version
}

type CompatibilityResult struct {
    Compatible bool
    Issues     []CompatibilityIssue
}

type CompatibilityIssue struct {
    ToolID     string
    Required   string
    Available  string
    Severity   string  // "error" | "warning"
}

func (p *Planner) CheckCompatibility(skill Skill, discovery *discovery.Discovery) CompatibilityResult

Benefit

  • Predictable skill behavior
  • Safe upgrades
  • Clear compatibility requirements

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions