Module: Shai::Commands::Skills

Included in:
Shai::CLI
Defined in:
lib/shai/commands/skills.rb

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/shai/commands/skills.rb', line 6

def self.included(base)
  base.class_eval do
    desc "skills [SUBCOMMAND]", "Manage AI agent skills"
    method_option :global, type: :boolean, default: false, desc: "Target global skills"
    method_option :local, type: :boolean, default: false, desc: "Target local skills"
    method_option :agent, type: :string, desc: "Target a specific agent (e.g. claude, codex)"
    def skills(subcommand = nil, *args)
      case subcommand
      when nil, "list"
        skills_list
      when "enable"
        name = args.first
        unless name
          ui.error("Usage: shai skills enable <name> [--global|--local] [--agent <agent>]")
          exit EXIT_INVALID_INPUT
        end
        skills_enable(name)
      when "disable"
        name = args.first
        unless name
          ui.error("Usage: shai skills disable <name> [--global|--local] [--agent <agent>]")
          exit EXIT_INVALID_INPUT
        end
        skills_disable(name)
      else
        ui.error("Unknown subcommand: #{subcommand}. Use `shai skills`, `shai skills enable`, or `shai skills disable`")
        exit EXIT_INVALID_INPUT
      end
    end
  end
end