# 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