Module: SmartBrain::Governance::Tiers

Defined in:
lib/smart_brain/governance/tiers.rb

Overview

Mind-model tiers (mempal parity): dao_tian 天道 / dao_ren 人道 / shu 术 / qi 器 / evidence 证据. Lower ORDER index = higher assembly priority.

Constant Summary collapse

ORDER =
%w[dao_tian dao_ren shu qi evidence].freeze
PRIORITY =
ORDER.each_with_index.to_h.freeze
DEFAULT_TIER_BY_TYPE =

Default tier per memory type. dao_tian is never auto-assigned — it is reserved for user-pinned immutable principles.

{
  'profile' => 'dao_ren',
  'decisions' => 'dao_ren',
  'patterns' => 'dao_ren',
  'goals' => 'shu',
  'tasks' => 'shu',
  'preferences' => 'qi',
  'cases' => 'qi',
  'entities' => 'evidence',
  'events' => 'evidence'
}.freeze
DISTILLABLE =

Only dao_ren / qi knowledge can enter the candidate stage via distill (mempal rule: dao_tian and shu are not open to candidate state).

%w[dao_ren qi].freeze
CONTEXT_LIFECYCLE =

lifecycle statuses that participate in automatic context assembly.

%w[raw promoted].freeze

Class Method Summary collapse

Class Method Details

.dao_tian_limit(config) ⇒ Object



50
51
52
# File 'lib/smart_brain/governance/tiers.rb', line 50

def dao_tian_limit(config)
  (config.tiers.fetch(:dao_tian_limit, 1) rescue 1)
end

.distillable?(tier) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/smart_brain/governance/tiers.rb', line 42

def distillable?(tier)
  DISTILLABLE.include?(tier.to_s)
end

.priority(tier) ⇒ Object



38
39
40
# File 'lib/smart_brain/governance/tiers.rb', line 38

def priority(tier)
  PRIORITY.fetch(tier.to_s, PRIORITY.fetch('evidence'))
end

.sort_by_tier(items) ⇒ Object

Sort by tier priority asc (dao_tian first); stable on equal priority.



55
56
57
# File 'lib/smart_brain/governance/tiers.rb', line 55

def sort_by_tier(items)
  items.sort_by.with_index { |i, idx| [priority(i[:tier] || i['tier'] || 'evidence'), idx] }
end

.tier_for(type) ⇒ Object



34
35
36
# File 'lib/smart_brain/governance/tiers.rb', line 34

def tier_for(type)
  DEFAULT_TIER_BY_TYPE.fetch(type.to_s, 'evidence')
end

.valid?(tier) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/smart_brain/governance/tiers.rb', line 46

def valid?(tier)
  PRIORITY.key?(tier.to_s)
end