save checkpoint
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# Unknown Budget Policy Enforcement
|
||||
|
||||
## Module
|
||||
Policy
|
||||
|
||||
## Status
|
||||
IMPLEMENTED
|
||||
|
||||
## Description
|
||||
Unknown budget enforcement with environment-aware thresholds, supporting policy evaluation that can fail/warn based on unknown counts by type.
|
||||
|
||||
## Implementation Details
|
||||
- **UnknownsBudgetEnforcer**: `src/Policy/__Libraries/StellaOps.Policy.Unknowns/Services/UnknownsBudgetEnforcer.cs`
|
||||
- Enforces budget constraints based on unknown counts by type
|
||||
- Threshold levels: Green (within limits), Yellow (warning), Red (over budget), Exhausted (blocked)
|
||||
- Environment-aware: different thresholds for production vs staging vs development
|
||||
- **UnknownBudgetService**: `src/Policy/__Libraries/StellaOps.Policy.Unknowns/Services/UnknownBudgetService.cs`
|
||||
- Budget management: create, query, consume, replenish
|
||||
- Per-type budget tracking (reachability unknowns, identity unknowns, VEX gaps, etc.)
|
||||
- **UnknownRanker**: `src/Policy/__Libraries/StellaOps.Policy.Unknowns/Services/UnknownRanker.cs`
|
||||
- Ranks unknowns by two-factor score: (Uncertainty * 50) + (ExploitPressure * 50)
|
||||
- Reason codes: AnalyzerLimit, Reachability, Identity, Provenance, VexConflict, FeedGap, ConfigUnknown
|
||||
- Band assignment: Hot >= 75, Warm >= 50, Cold >= 25, Negligible < 25
|
||||
- **PolicyGateEvaluator Uncertainty Tier gate**: `src/Policy/StellaOps.Policy.Engine/Gates/PolicyGateEvaluator.cs`
|
||||
- Uncertainty Tier gate (4th in pipeline) evaluates unknown counts against thresholds
|
||||
- Tiers: T1 (High uncertainty -> strictest enforcement), T4 (Negligible -> most permissive)
|
||||
- **BudgetEndpoints**: `src/Policy/StellaOps.Policy.Engine/Endpoints/BudgetEndpoints.cs` -- API for budget management
|
||||
- **RiskBudgetEndpoints**: `src/Policy/StellaOps.Policy.Engine/Endpoints/RiskBudgetEndpoints.cs` -- API for budget evaluation
|
||||
|
||||
## E2E Test Plan
|
||||
- [ ] Set budget limit for reachability unknowns=10; report 5 unknowns; verify status Green
|
||||
- [ ] Set budget limit for reachability unknowns=10; report 8 unknowns; verify status Yellow (warning)
|
||||
- [ ] Set budget limit for reachability unknowns=10; report 12 unknowns; verify status Red/Exhausted
|
||||
- [ ] Verify environment-aware thresholds: production has stricter limits than development
|
||||
- [ ] Evaluate through PolicyGateEvaluator with T1 uncertainty tier; verify Uncertainty gate blocks
|
||||
- [ ] Evaluate through PolicyGateEvaluator with T4 uncertainty tier; verify Uncertainty gate passes
|
||||
- [ ] Consume unknowns budget; resolve some unknowns; verify budget capacity restored
|
||||
- [ ] Query budget status via API; verify response includes per-type counts and thresholds
|
||||
- [ ] Verify Hot-band unknowns consume more budget than Cold-band unknowns
|
||||
- [ ] Verify Exhausted budget escalates gate level in PolicyGateEvaluator
|
||||
Reference in New Issue
Block a user