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
- .dao_tian_limit(config) ⇒ Object
- .distillable?(tier) ⇒ Boolean
- .priority(tier) ⇒ Object
-
.sort_by_tier(items) ⇒ Object
Sort by tier priority asc (dao_tian first); stable on equal priority.
- .tier_for(type) ⇒ Object
- .valid?(tier) ⇒ Boolean
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
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
46 47 48 |
# File 'lib/smart_brain/governance/tiers.rb', line 46 def valid?(tier) PRIORITY.key?(tier.to_s) end |