-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
enhancementNew feature or requestNew feature or requestfeature:phase2-governancePhase 2 Governance featuresPhase 2 Governance featuresphase:P2.1Core GovernanceCore Governance
Description
Task: Add RuleMetadata struct
Phase: 2.1 - Core Governance
Estimated: 0.5 day
File: cch_cli/src/models/mod.rs
Description
Create the RuleMetadata struct to support rule provenance tracking.
Acceptance Criteria
- Create
RuleMetadatastruct inmodels/mod.rs - Fields:
author,created_by,reason,confidence,last_reviewed,ticket,tags - All fields are
Option<T> - Create
Confidenceenum:High,Medium,Low - Implement
DeserializeandSerialize - Add unit tests
Code Reference
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct RuleMetadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub author: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub confidence: Option<Confidence>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_reviewed: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ticket: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<String>>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum Confidence {
High,
Medium,
Low,
}Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestfeature:phase2-governancePhase 2 Governance featuresPhase 2 Governance featuresphase:P2.1Core GovernanceCore Governance