sprints and audit work
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
namespace StellaOps.Policy.Explainability;
|
||||
|
||||
/// <summary>
|
||||
/// Renders verdict rationales in multiple formats.
|
||||
/// </summary>
|
||||
public interface IVerdictRationaleRenderer
|
||||
{
|
||||
/// <summary>
|
||||
/// Renders a complete verdict rationale from verdict components.
|
||||
/// </summary>
|
||||
VerdictRationale Render(VerdictRationaleInput input);
|
||||
|
||||
/// <summary>
|
||||
/// Renders rationale as plain text (4-line format).
|
||||
/// </summary>
|
||||
string RenderPlainText(VerdictRationale rationale);
|
||||
|
||||
/// <summary>
|
||||
/// Renders rationale as Markdown.
|
||||
/// </summary>
|
||||
string RenderMarkdown(VerdictRationale rationale);
|
||||
|
||||
/// <summary>
|
||||
/// Renders rationale as canonical JSON (RFC 8785).
|
||||
/// </summary>
|
||||
string RenderJson(VerdictRationale rationale);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Input for verdict rationale rendering.
|
||||
/// </summary>
|
||||
public sealed record VerdictRationaleInput
|
||||
{
|
||||
public required VerdictReference VerdictRef { get; init; }
|
||||
public required string Cve { get; init; }
|
||||
public required ComponentIdentity Component { get; init; }
|
||||
public ReachabilityDetail? Reachability { get; init; }
|
||||
public required string PolicyClauseId { get; init; }
|
||||
public required string PolicyRuleDescription { get; init; }
|
||||
public required IReadOnlyList<string> PolicyConditions { get; init; }
|
||||
public AttestationReference? PathWitness { get; init; }
|
||||
public IReadOnlyList<AttestationReference>? VexStatements { get; init; }
|
||||
public AttestationReference? Provenance { get; init; }
|
||||
public required string Verdict { get; init; }
|
||||
public double? Score { get; init; }
|
||||
public required string Recommendation { get; init; }
|
||||
public MitigationGuidance? Mitigation { get; init; }
|
||||
public required DateTimeOffset GeneratedAt { get; init; }
|
||||
public required string VerdictDigest { get; init; }
|
||||
public string? PolicyDigest { get; init; }
|
||||
public string? EvidenceDigest { get; init; }
|
||||
}
|
||||
Reference in New Issue
Block a user