Class: Aidp::Skills::Wizard::Builder
- Inherits:
-
Object
- Object
- Aidp::Skills::Wizard::Builder
- Defined in:
- lib/aidp/skills/wizard/builder.rb
Overview
Builds Skill objects from wizard responses
Takes user input from the wizard and constructs a valid Skill object. Handles template inheritance by merging metadata and content.
Instance Attribute Summary collapse
-
#base_skill ⇒ Object
readonly
Returns the value of attribute base_skill.
Instance Method Summary collapse
-
#build(responses) ⇒ Skill
Build a Skill from wizard responses.
-
#initialize(base_skill: nil) ⇒ Builder
constructor
Initialize builder.
-
#to_skill_md(skill) ⇒ String
Generate YAML frontmatter + content for writing.
Constructor Details
#initialize(base_skill: nil) ⇒ Builder
Initialize builder
28 29 30 |
# File 'lib/aidp/skills/wizard/builder.rb', line 28 def initialize(base_skill: nil) @base_skill = base_skill end |
Instance Attribute Details
#base_skill ⇒ Object (readonly)
Returns the value of attribute base_skill.
23 24 25 |
# File 'lib/aidp/skills/wizard/builder.rb', line 23 def base_skill @base_skill end |
Instance Method Details
#build(responses) ⇒ Skill
Build a Skill from wizard responses
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/aidp/skills/wizard/builder.rb', line 46 def build(responses) # Merge with base skill if provided merged = if base_skill merge_with_base(responses) else responses end # Create skill with merged attributes # Note: source_path will be set by Writer when saved Skill.new( id: merged[:id], name: merged[:name], description: merged[:description], version: merged[:version] || "1.0.0", expertise: Array(merged[:expertise]), keywords: Array(merged[:keywords]), when_to_use: Array(merged[:when_to_use]), when_not_to_use: Array(merged[:when_not_to_use]), compatible_providers: Array(merged[:compatible_providers]), content: merged[:content], source_path: merged[:source_path] || "<pending>" ) end |
#to_skill_md(skill) ⇒ String
Generate YAML frontmatter + content for writing
75 76 77 78 |
# File 'lib/aidp/skills/wizard/builder.rb', line 75 def to_skill_md(skill) frontmatter = build_frontmatter(skill) "#{frontmatter}\n#{skill.content}" end |