Class: OllamaAgent::Skills::Base
- Inherits:
-
Object
- Object
- OllamaAgent::Skills::Base
- Defined in:
- lib/ollama_agent/skills/base.rb
Overview
Template Method base for deterministic, JSON-contract skills. Subclasses implement #prompt(input) and define a SCHEMA constant. The base class drives the pipeline:
prompt → llm.generate → JsonExtractor.parse → SchemaValidator.validate!
Direct Known Subclasses
ArchitectureRefactorer, DebugEngineer, FeatureBuilder, PerformanceOptimizer
Defined Under Namespace
Classes: ContractError
Class Method Summary collapse
-
.register_as(id) ⇒ Object
Self-register the skill in the shared registry.
- .skill_id ⇒ Object
Instance Method Summary collapse
- #call(input) ⇒ Object
-
#initialize(llm: nil) ⇒ Base
constructor
A new instance of Base.
Constructor Details
Class Method Details
.register_as(id) ⇒ Object
Self-register the skill in the shared registry.
21 22 23 24 |
# File 'lib/ollama_agent/skills/base.rb', line 21 def self.register_as(id) @skill_id = id.to_sym Skills.registry.register(@skill_id, self) end |
.skill_id ⇒ Object
16 17 18 |
# File 'lib/ollama_agent/skills/base.rb', line 16 def self.skill_id @skill_id || raise(NotImplementedError, "#{name} must declare skill_id via `register_as`") end |
Instance Method Details
#call(input) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/ollama_agent/skills/base.rb', line 30 def call(input) validated_input!(input) raw = @llm.generate(prompt(input)) parsed = JsonExtractor.parse(raw) validate_contract!(parsed) parsed end |