Module: Legion::Extensions::MindGrowth::Helpers::CognitiveModels

Defined in:
lib/legion/extensions/mind_growth/helpers/cognitive_models.rb

Constant Summary collapse

MODELS =
{
  global_workspace: {
    name:        'Global Workspace Theory (Baars)',
    required:    %i[attention global_workspace broadcasting working_memory consciousness],
    description: 'Conscious access via global broadcasting to specialized processors'
  },
  free_energy:      {
    name:        'Free Energy Principle (Friston)',
    required:    %i[prediction free_energy predictive_coding belief_revision active_inference error_monitoring],
    description: 'Minimize surprise through predictive models and active inference'
  },
  dual_process:     {
    name:        'Dual Process Theory (Kahneman)',
    required:    %i[intuition dual_process inhibition executive_function cognitive_control],
    description: 'System 1 (fast/automatic) vs System 2 (slow/deliberate) processing'
  },
  somatic_marker:   {
    name:        'Somatic Marker Hypothesis (Damasio)',
    required:    %i[emotion somatic_marker interoception appraisal embodied_simulation],
    description: 'Emotion-cognition integration for decision making'
  },
  working_memory:   {
    name:        'Working Memory Model (Baddeley)',
    required:    %i[working_memory episodic_buffer attention executive_function cognitive_load],
    description: 'Multi-component model with central executive and slave systems'
  }
}.freeze

Class Method Summary collapse

Class Method Details

.gap_analysis(existing_extensions) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/legion/extensions/mind_growth/helpers/cognitive_models.rb', line 38

def gap_analysis(existing_extensions)
  existing_names = existing_extensions.map { |e| e.to_s.downcase.to_sym }
  MODELS.map do |key, model|
    missing  = model[:required] - existing_names
    coverage = 1.0 - (missing.size.to_f / model[:required].size)
    {
      model:          key,
      name:           model[:name],
      coverage:       coverage.round(2),
      missing:        missing,
      total_required: model[:required].size
    }
  end
end

.recommend_from_gaps(gap_results) ⇒ Object



53
54
55
# File 'lib/legion/extensions/mind_growth/helpers/cognitive_models.rb', line 53

def recommend_from_gaps(gap_results)
  gap_results.flat_map { |g| g[:missing] }.tally.sort_by { |_, count| -count }.map(&:first)
end