# Nightly Unknowns Decay Batch Worker ## Module Signals ## Status VERIFIED ## Description Scheduled background worker that runs nightly to apply exponential confidence decay to unknown/unresolved findings, automatically reducing their priority scores over time based on configurable decay curves and age thresholds. ## Implementation Details - **Modules**: `src/Signals/StellaOps.Signals/Services/`, `src/Signals/StellaOps.Signals/Options/` - **Key Classes**: - `NightlyDecayWorker` (`src/Signals/StellaOps.Signals/Services/NightlyDecayWorker.cs`) - background service that runs nightly decay processing - `UnknownsDecayService` (`src/Signals/StellaOps.Signals/Services/UnknownsDecayService.cs`) - applies exponential confidence decay to unknown/unresolved findings - `UnknownsDecayOptions` (`src/Signals/StellaOps.Signals/Options/UnknownsDecayOptions.cs`) - configurable decay curves and age thresholds - `UnknownsDecayMetrics` (`src/Signals/StellaOps.Signals/Services/UnknownsDecayMetrics.cs`) - telemetry metrics for decay operations - **Interfaces**: `IUnknownsDecayService` - **Source**: SPRINT_3601_0001_0001_unknowns_decay_algorithm.md ## E2E Test Plan - [ ] Configure `UnknownsDecayOptions` with a decay curve and verify `NightlyDecayWorker` triggers on schedule - [ ] Create unknown findings of varying ages and verify `UnknownsDecayService` reduces scores proportionally to age - [ ] Verify exponential decay: confirm older findings decay faster than newer ones - [ ] Verify age threshold: findings below the threshold are not decayed - [ ] Verify metrics are emitted during decay processing via `UnknownsDecayMetrics`