2.8 KiB
2.8 KiB
Unknowns Grey Queue with Conflict Detection and Reanalysis Fingerprints
Module
Policy
Status
IMPLEMENTED
Description
Deterministic reanalysis fingerprints, conflict detection routing (VEX/reachability contradiction, static/runtime contradiction, VEX status conflict), grey queue with Disputed state and manual adjudication gates, versioned signal event handling.
Implementation Details
- UnknownRanker:
src/Policy/__Libraries/StellaOps.Policy.Unknowns/Services/UnknownRanker.cs- Reason codes for conflict detection: VexConflict (conflicting VEX claims), Reachability (unknown reachability), Identity (unknown identity), Provenance (unknown provenance)
- Uncertainty factor: Conflicting signals +0.20 to uncertainty score
- Stale evidence +0.10 to uncertainty score
- K4Lattice conflict detection:
src/Policy/__Libraries/StellaOps.Policy/TrustLattice/K4Lattice.cs- K4Value.Conflict (value=3) when True join False occurs
- Conflict detection in lattice evaluation routes to grey queue
- TrustLatticeEngine:
src/Policy/__Libraries/StellaOps.Policy/TrustLattice/TrustLatticeEngine.cs- Pipeline detects conflicts during VEX normalization and claim ingestion
- Conflicting claims flagged for manual adjudication
- ClaimScoreMerger:
src/Policy/__Libraries/StellaOps.Policy/TrustLattice/ClaimScoreMerger.cs- ConflictPenalizer applies 0.25 penalty to conflicting claims
- RequiresReplayProof flag set when conflicts detected
- Deterministic merge ordering ensures reproducible conflict resolution
- DeterminizationGate:
src/Policy/StellaOps.Policy.Engine/Gates/Determinization/DeterminizationGate.cs- Gates using DecayedConfidenceCalculator for stale signal detection
- Reanalysis triggering based on confidence decay below threshold
- ObservationDecay:
src/Policy/__Libraries/StellaOps.Policy.Determinization/Models/ObservationDecay.cs- Reanalysis fingerprint: ObservedAt + RefreshedAt + HalfLifeDays + DecayedMultiplier
- CheckIsStale(now) triggers reanalysis when decay below StalenessThreshold
E2E Test Plan
- Ingest conflicting VEX claims (True + False for same subject); verify K4 Conflict state detected
- Verify conflicting claims route to grey queue with Disputed state
- Verify ConflictPenalizer applies 0.25 penalty to conflicting claims
- Verify RequiresReplayProof=true when conflicts detected
- Verify UnknownRanker adds +0.20 uncertainty for VexConflict reason code
- Detect stale reachability evidence; verify reanalysis triggered (ObservationDecay.CheckIsStale)
- Verify reanalysis fingerprint is deterministic: same inputs produce same fingerprint
- Verify versioned signal events: newer signal supersedes older signal
- Verify manual adjudication gate prevents automated resolution of Disputed unknowns
- Verify stale evidence adds +0.10 to uncertainty in UnknownRanker