4.9 KiB
4.9 KiB
Declarative Multi-Modal Policy Engine
Module
Policy
Status
VERIFIED
Description
Policy engine with 12+ gate types, trust lattice merge, OPA adapter integration, policy DSL, evidence-weighted scoring, and determinization gates covering CVSS, EPSS, VEX trust, reachability, unknowns, SBOM presence, and signature requirements.
Implementation Details
- Policy Evaluator:
src/Policy/StellaOps.Policy.Engine/Evaluation/PolicyEvaluator.cs-- core policy evaluation with expression evaluationPolicyExpressionEvaluator.cs-- evaluates policy expressions against findingsPolicyEvaluationContext.cs-- evaluation context with tenant, snapshot, and environment infoVerdictSummary.cs-- verdict summary generation
- Policy Gates:
src/Policy/StellaOps.Policy.Engine/Gates/PolicyGateEvaluator.cs-- multi-gate orchestrator with 5 gate stages (Evidence, Lattice, VEX Trust, Uncertainty, Confidence)VexTrustGate.cs-- VEX trust score and signature verification per environmentDriftGateEvaluator.cs-- drift-based gate for cross-release deltaStabilityDampingGate.cs-- stability damping to prevent flappingIDeterminizationGate.cs-- interface for determinization gatesGates/Determinization/-- determinization gate implementations
- Trust Lattice:
src/Policy/__Libraries/StellaOps.Policy/TrustLattice/TrustLatticeEngine.cs-- K4 four-valued logic evaluation pipelineClaimScoreMerger.cs-- lattice-based merge with conflict penalization- VEX normalizers for CycloneDX, OpenVEX, CSAF formats
- Policy DSL:
src/Policy/StellaOps.PolicyDsl/-- declarative policy language compiler- Compiles YAML-based policy definitions into executable evaluation rules
- Scoring Engines:
src/Policy/StellaOps.Policy.Engine/Scoring/SimpleScoringEngine.cs,AdvancedScoringEngine.cs,ProofAwareScoringEngine.csEvidenceWeightedScore/-- evidence-weighted scoring with proof integrationProfileAwareScoringService.cs-- risk profile-driven scoringScoringEngineFactory.cs-- engine selection based on configuration
- CVSS Scoring:
src/Policy/StellaOps.Policy.Scoring/-- multi-version CVSS engine (v2, v3.x, v4.0) - Determinism Guards:
src/Policy/StellaOps.Policy.Engine/DeterminismGuard/DeterminismGuardService.cs-- runtime determinism enforcementProhibitedPatternAnalyzer.cs-- static analysis for non-deterministic patternsGuardedPolicyEvaluator.cs-- wraps evaluator with determinism checks
- Policy Compilation:
src/Policy/StellaOps.Policy.Engine/Compilation/-- policy pack compilationPolicyCompilationService-- compiles policy YAML into evaluation bundles- Endpoints:
PolicyCompilationEndpoints.cs,PolicyLintEndpoints.cs
- Effective Decision Map:
src/Policy/StellaOps.Policy.Engine/EffectiveDecisionMap/-- materialized decision lookup - Counterfactuals:
src/Policy/__Libraries/StellaOps.Policy/Counterfactuals/-- "what-if" analysis for blocked findings - Simulation:
src/Policy/StellaOps.Policy.Engine/Simulation/-- risk simulation with breakdowns - Unknowns Integration:
src/Policy/__Libraries/StellaOps.Policy.Unknowns/-- unknowns ranking and budget enforcement
E2E Test Plan
- Compile a YAML policy with CVSS threshold, EPSS threshold, and VEX trust gates; verify compiled bundle is valid
- Evaluate a finding against compiled policy; verify verdict includes gate decisions from all applicable gates
- Evaluate with VEX trust gate; verify per-environment threshold enforcement (production stricter than development)
- Evaluate with determinism guard enabled; verify GuardedPolicyEvaluator wraps evaluation and reports no violations
- Submit policy YAML with wall-clock usage; verify ProhibitedPatternAnalyzer detects violation
- Evaluate finding with evidence-weighted scoring; verify proof-aware score includes evidence references
- Evaluate finding with ClaimScoreMerger; verify conflicting claims are penalized and winning claim selected
- Use counterfactual engine on blocked finding; verify paths to pass are returned
- POST policy lint endpoint with invalid YAML; verify lint errors returned
- Compile and evaluate same policy+finding twice; verify deterministic verdict (identical results)
Verification
- Run ID: run-002
- Date: 2026-02-12
- Tests: 2621 tests passed across 4 projects (PolicyDsl: 140, Policy: 781, Determinization: 438, Engine: 1262); 1 pre-existing unrelated failure in Engine.Tests
- Bugs Fixed: 8 test/implementation bugs in Determinization.Tests (EWS risk tier assertion, kev_floor guardrail interaction, ArgumentException/ArgumentNullException type mismatch x2, score bounds min/max swap in DeltaIfPresentCalculator, triage priority threshold vs decay floor mismatch x2, speculative cap overriding kev_floor)
- Evidence:
docs/qa/feature-checks/runs/policy/declarative-multi-modal-policy-engine/run-002/