Class: RubyLLM::Skills::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_llm/skills/validator.rb

Overview

Validates skill structure according to the Agent Skills specification.

Validation rules based on agentskills.io specification:

  • name: required, max 64 chars, lowercase + hyphens only, no leading/trailing hyphens
  • description: required, max 1024 chars
  • license: optional, max 128 chars
  • compatibility: optional, max 500 chars

Examples:

errors = Validator.validate(skill)
puts errors # => [] if valid, or list of error messages

Constant Summary collapse

NAME_MAX_LENGTH =
64
DESCRIPTION_MAX_LENGTH =
1024
LICENSE_MAX_LENGTH =
128
COMPATIBILITY_MAX_LENGTH =
500
NAME_PATTERN =
/\A[a-z0-9]+(-[a-z0-9]+)*\z/

Class Method Summary collapse

Class Method Details

.valid?(skill) ⇒ Boolean

Check if a skill is valid.

Parameters:

  • skill (Skill) —

    skill to validate

Returns:

  • (Boolean) —

    true if skill passes validation



43
44
45
# File 'lib/ruby_llm/skills/validator.rb', line 43

def valid?(skill)
  validate(skill).empty?
end

.validate(skill) ⇒ Array<String>

Validate a skill and return all errors.

Parameters:

  • skill (Skill) —

    skill to validate

Returns:

  • (Array<String>) —

    list of error messages (empty if valid)



29
30
31
32
33
34
35
36
37
# File 'lib/ruby_llm/skills/validator.rb', line 29

def validate(skill)
  errors = []
  validate_name(skill, errors)
  validate_description(skill, errors)
  validate_license(skill, errors)
  validate_compatibility(skill, errors)
  validate_path_name_match(skill, errors)
  errors
end