pub struct SharedRulesManager { /* private fields */ }Expand description
Manages rule promotion, validation, versioning, and approval workflows
This manager integrates with ricecoder-learning components to:
- Promote rules from Project → Team → Organization scope
- Validate rules before promotion
- Track version history with timestamps and metadata
- Support rollback to previous versions
- Track adoption and effectiveness metrics
§Requirements
- Requirement 2.1: Support promotion from Project → Team → Organization
- Requirement 2.2: Support promotion from Team → Organization
- Requirement 2.4: Validate rules before promotion
- Requirement 2.5: Track adoption metrics
- Requirement 2.6: Track effectiveness metrics
- Requirement 2.7: Support rollback to previous versions
- Requirement 2.8: Maintain complete version history
Implementations§
Sourcepub fn new(
rule_promoter: Arc<dyn RulePromoter>,
rule_validator: Arc<dyn RuleValidator>,
analytics_engine: Arc<dyn AnalyticsEngine>,
) -> Self
pub fn new( rule_promoter: Arc<dyn RulePromoter>, rule_validator: Arc<dyn RuleValidator>, analytics_engine: Arc<dyn AnalyticsEngine>, ) -> Self
Create a new SharedRulesManager with the provided components
§Arguments
rule_promoter- Component for handling rule promotionrule_validator- Component for validating rulesanalytics_engine- Component for tracking metrics
Sourcepub async fn promote_rule(
&self,
rule: SharedRule,
from_scope: RuleScope,
to_scope: RuleScope,
) -> Result<()>
pub async fn promote_rule( &self, rule: SharedRule, from_scope: RuleScope, to_scope: RuleScope, ) -> Result<()>
Promote a rule from one scope to another
Supports promotion from Project → Team → Organization. Uses ricecoder-learning RulePromoter for promotion logic.
§Arguments
rule- The rule to promotefrom_scope- Current scope of the ruleto_scope- Target scope for promotion
§Errors
Returns error if promotion fails or rule is invalid
Sourcepub async fn validate_rule(&self, rule: &SharedRule) -> Result<ValidationReport>
pub async fn validate_rule(&self, rule: &SharedRule) -> Result<ValidationReport>
Sourcepub async fn get_rule_history(&self, rule_id: &str) -> Result<Vec<SharedRule>>
pub async fn get_rule_history(&self, rule_id: &str) -> Result<Vec<SharedRule>>
Sourcepub async fn rollback_rule(&self, rule_id: &str, version: u32) -> Result<()>
pub async fn rollback_rule(&self, rule_id: &str, version: u32) -> Result<()>
Rollback a rule to a previous version
Supports rollback to previous rule versions using ricecoder-learning versioning system. This is useful when a promoted rule causes issues.
§Arguments
rule_id- ID of the rule to rollbackversion- Version number to rollback to
§Errors
Returns error if version doesn’t exist or rollback fails
Sourcepub async fn track_adoption(&self, rule_id: &str) -> Result<AdoptionMetrics>
pub async fn track_adoption(&self, rule_id: &str) -> Result<AdoptionMetrics>
Sourcepub async fn track_effectiveness(
&self,
rule_id: &str,
) -> Result<EffectivenessMetrics>
pub async fn track_effectiveness( &self, rule_id: &str, ) -> Result<EffectivenessMetrics>
Track effectiveness metrics for a rule
Tracks effectiveness metrics measuring positive outcomes from rule application. Uses ricecoder-learning AnalyticsEngine for metric calculation.
§Arguments
rule_id- ID of the rule to track effectiveness for
§Returns
EffectivenessMetrics with effectiveness score and impact trend