# Feature Specification: Drift MVP **Feature Branch**: `feat/044-drift-mvp` **Created**: 2026-01-07 **Status**: Draft ## Purpose Detect and report drift between expected and observed states using inventory and run metadata. This MVP focuses on reporting and triage, not automatic remediation. ## User Scenarios & Testing ### Scenario 1: View drift summary - Given inventory sync has run at least twice - When the admin opens Drift - Then they see a summary of changes since the last baseline ### Scenario 2: Drill into a drift finding - Given a drift finding exists - When the admin opens the finding - Then they see what changed, when, and which run observed it ### Scenario 3: Acknowledge/triage - Given a drift finding exists - When the admin marks it acknowledged - Then it is hidden from “new” lists but remains auditable ## Functional Requirements - FR1: Define a baseline concept (e.g., last completed run for a selection scope). - FR2: Produce drift findings for adds/removals/metadata changes based on inventory/run state. - FR3: Provide drift UI with summary and details. - FR4: Allow acknowledgement/triage states. ## Non-Functional Requirements - NFR1: Drift generation must be deterministic for the same baseline and scope. - NFR2: Drift must remain tenant-scoped and safe to display. ## Success Criteria - SC1: Admins can identify drift across supported types in under 3 minutes. - SC2: Drift results are consistent across repeated generation for the same baseline. ## Out of Scope - Automatic revert/promotion. ## Related Specs - Program: `specs/039-inventory-program/spec.md` - Core: `specs/040-inventory-core/spec.md` - Compare: `specs/043-cross-tenant-compare-and-promotion/spec.md`