Module: Legion::Extensions::MindGrowth::Runners::Analyzer

Extended by:
Analyzer
Included in:
Analyzer
Defined in:
lib/legion/extensions/mind_growth/runners/analyzer.rb

Instance Method Summary collapse

Instance Method Details

#cognitive_profile(existing_extensions: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/legion/extensions/mind_growth/runners/analyzer.rb', line 10

def cognitive_profile(existing_extensions: nil, **)
  extensions = existing_extensions || current_extensions
  gap_data   = Helpers::CognitiveModels.gap_analysis(extensions)
  {
    success:          true,
    total_extensions: extensions.size,
    model_coverage:   gap_data,
    overall_coverage: (gap_data.sum { |g| g[:coverage] } / gap_data.size.to_f).round(2)
  }
rescue ArgumentError => e
  { success: false, error: e.message }
end


23
24
25
26
27
28
# File 'lib/legion/extensions/mind_growth/runners/analyzer.rb', line 23

def identify_weak_links(extensions: [], **)
  weak = extensions.select { |e| Helpers::FitnessEvaluator.fitness(e) < Helpers::Constants::IMPROVEMENT_THRESHOLD }
  { success: true, weak_links: Helpers::FitnessEvaluator.rank(weak), count: weak.size }
rescue ArgumentError => e
  { success: false, error: e.message }
end

#recommend_priorities(existing_extensions: nil) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/legion/extensions/mind_growth/runners/analyzer.rb', line 30

def recommend_priorities(existing_extensions: nil, **)
  gaps = Helpers::CognitiveModels.recommend_from_gaps(
    Helpers::CognitiveModels.gap_analysis(existing_extensions || current_extensions)
  )
  { success: true, priorities: gaps.first(10), rationale: 'Based on cognitive model gap analysis' }
rescue ArgumentError => e
  { success: false, error: e.message }
end