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
Problem
Skills have no versioning. When tool schemas change:
Proposal
Add skill versioning:
Benefit