Deterministic classification spine (D-0028): detect -> correlate -> classify -> decide #9
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/deterministic-classification"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What does this PR do?
Completes the deterministic pipeline spine per D-0028: incidents now flow detect -> correlate -> classify -> policy-decide -> persisted Decision with zero inference dependency. LLM classification remains a fully optional future enrichment (Phase 6), per Hannah's requirement that the platform be fully operational without a (slow) LLM.
DeterministicIncidentClassifier(deterministic-evidence-v1): converts incident evidence into schema-valid Classifications: normalized confidence from total evidence score, severity scaling, keyword-derived categories (credential-attack, path-traversal, sql-injection, command-injection, vulnerability-scanner, reconnaissance),block-source-iprecommendation only for IP-keyed incidents at or above the D-0027 provisional evidence threshold; mail incidents flag-for-review only (email actions are Phase 7). All tunables inClassifierOptionswith validation.IncidentWorkItem/ClassificationWorkItemqueues ("incidents", "classifications") registered for both persistence providers and feeding queue telemetry (D-0012).ClassificationWorker(classification role): lease incident -> classify -> persist -> audit -> enqueue for policy.PolicyWorker(policy role, placeholder replaced): lease classification ->DefaultPolicyEngine-> persist Decision -> audit -> incident marked Decided. Posture (dry-run/approval/emergency-stop) bound from configuration with D-0027 shipped defaults.Fixes #
How was this tested?
dotnet build Viegard.slnx- 0 errors, 0 warningsdotnet test Viegard.slnx- 240/240 pass (agent run + independent re-run)Deterministic_spine_end_to_end_produces_dry_run_decision: hostile HTTP event -> correlator -> classifier -> policy engine -> persisted Decision with DryRun outcome and full guardrail chainImplementation drafted by a coding agent against the D-0027/D-0028 spec, independently reviewed and re-verified.
Checklist