This commit is contained in:
StellaOps Bot
2025-12-14 23:20:14 +02:00
parent 3411e825cd
commit b058dbe031
356 changed files with 68310 additions and 1108 deletions

View File

@@ -1,4 +1,5 @@
using System.Text.Json.Serialization;
using StellaOps.Policy.Scoring;
namespace StellaOps.Policy.Engine.Scoring;
@@ -142,4 +143,18 @@ public sealed record RiskScoringResult(
[property: JsonPropertyName("signal_contributions")] IReadOnlyDictionary<string, double> SignalContributions,
[property: JsonPropertyName("override_applied")] string? OverrideApplied,
[property: JsonPropertyName("override_reason")] string? OverrideReason,
[property: JsonPropertyName("scored_at")] DateTimeOffset ScoredAt);
[property: JsonPropertyName("scored_at")] DateTimeOffset ScoredAt)
{
private IReadOnlyList<ScoreExplanation> _explain = Array.Empty<ScoreExplanation>();
/// <summary>
/// Structured explanation of score contributions.
/// Sorted deterministically by factor name.
/// </summary>
[JsonPropertyName("explain")]
public IReadOnlyList<ScoreExplanation> Explain
{
get => _explain;
init => _explain = value ?? Array.Empty<ScoreExplanation>();
}
}

View File

@@ -5,3 +5,4 @@ This file mirrors sprint work for the Policy Engine module.
| Task ID | Sprint | Status | Notes |
| --- | --- | --- | --- |
| `POLICY-GATE-401-033` | `docs/implplan/SPRINT_0401_0001_0001_reachability_evidence_chain.md` | DONE (2025-12-13) | Implemented PolicyGateEvaluator (lattice/uncertainty/evidence completeness) and aligned tests/docs; see `src/Policy/StellaOps.Policy.Engine/Gates/PolicyGateEvaluator.cs` and `src/Policy/__Tests/StellaOps.Policy.Engine.Tests/Gates/PolicyGateEvaluatorTests.cs`. |
| `DET-3401-011` | `docs/implplan/SPRINT_3401_0001_0001_determinism_scoring_foundations.md` | DONE (2025-12-14) | Added `Explain` to `RiskScoringResult` and covered JSON serialization + null-coercion in `src/Policy/__Tests/StellaOps.Policy.Engine.Tests/Scoring/RiskScoringResultTests.cs`. |