Rules & Proposals
Rules are the core policy objects evaluated against traces.
Rule Fields
Each rule includes:
namedescriptionregulationSource(optional)severity:CRITICAL|WARNING|INFOcheckType:STEP_SEQUENCE|SENSITIVE_DATA_SCAN|NUMERIC_THRESHOLD|LLM_POLICYconfig(check-type specific JSON)isActiveisArchivedversion(increments on policy changes)
Check Type Config Shapes
STEP_SEQUENCE
{ "before": "risk_assessment", "after": "final_decision", "requireBefore": true, "requireAfter": true}SENSITIVE_DATA_SCAN
{ "regionPacks": ["GLOBAL", "IN"], "dataTypes": ["TAX_ID", "BANK_ACCOUNT"], "scanInputs": true, "scanOutputs": true, "scanMetadata": false, "customPatterns": [ { "name": "internal_customer_id", "pattern": "CUST-[0-9]{8}" } ]}NUMERIC_THRESHOLD
{ "field": "risk_score", "threshold": 80, "operator": ">=", "decisionField": "decision", "inconsistentDecision": "APPROVE", "spanName": "decision_engine"}LLM_POLICY
{ "evaluationPrompt": "Verify sanctions screening completed before decision.", "temperature": 0, "provider": "openai", "model": "gpt-4.1"}Creation Modes
Manual: define fields and config directlyNatural Language: generate one proposal from a free-text requirementDocument: extract multiple proposals from uploaded policy documents (including PDF)Proposals: approve/reject/edit generated proposals before they become rules
Rule Lifecycle
- Create in inactive mode, then activate when validated
- Toggle single rules or bulk activate/deactivate
- Archive and restore rules
- Hard delete is blocked when historical evaluations reference the rule
Policy changes return policyChanged metadata in the API/UI so you can decide whether to run historical backfill.