Class: ClaudeMemory::Core::ConceptRanker

Inherits:
Object
  • Object
show all
Defined in:
lib/claude_memory/core/concept_ranker.rb

Overview

Pure business logic for ranking facts by concept similarity Follows Functional Core pattern (Gary Bernhardt) - no I/O, just transformations

Class Method Summary collapse

Class Method Details

.rank_by_concepts(concept_results, limit) ⇒ Array<Hash>

Rank facts by average similarity across multiple concepts Only returns facts that match ALL concepts

Parameters:

  • concept_results (Array<Array<Hash>>)

    Array of result arrays, one per concept

  • limit (Integer)

    Maximum results to return

Returns:

  • (Array<Hash>)

    Ranked results with :fact, :receipts, :source, :similarity, :concept_similarities



13
14
15
16
17
18
19
# File 'lib/claude_memory/core/concept_ranker.rb', line 13

def self.rank_by_concepts(concept_results, limit)
  fact_map = build_fact_map(concept_results)
  multi_concept_facts = filter_by_all_concepts(fact_map, concept_results.size)
  return [] if multi_concept_facts.empty?

  rank_by_average_similarity(multi_concept_facts, limit)
end