Skip to content

[Feat]: Support proper version specifiers in Skill requirements validation #14

@rosspeili

Description

@rosspeili

Feature Description

Currently, the SkillLoader strips version specifiers from a skill's manifest.yaml dependencies and only checks if the base package string exists using a primitive req.split(">")[0] method.

We need to implement robust, standard version validation. If a skill requires pandas>=2.0.0 and the host agent environment only has 1.5.3 installed, the loader should actively raise an ImportError detailing the version mismatch prior to executing any of the skill's code.

Rationale

Many AI-adjacent libraries (like pydantic, langchain, or google-generativeai) have major breaking API changes across minor versions. Hard-executing a skill with the wrong dependency version will cause confusing runtime crashes inside an Agent loop, which degrades the "plug and play" modularity of Skillware.

Implementation Idea

  1. Replace the crude string splitting in skillware/core/loader.py with robust parsing.
  2. Utilize standard built-in libraries like importlib.metadata to retrieve the currently installed version of a required package.
  3. Compare the installed version against the specifier string. If it fails, throw a highly descriptive ImportError.

Metadata

Metadata

Assignees

No one assigned

    Labels

    core frameworkChanges to loader, env, or base classes.enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions