//! Shadow mode testing for auto-promoted extractors.
//!
//! Auto-promoted extractors run in "shadow mode" alongside production
//! extractors to measure false positive rates before full deployment.
//!
//! # User Journey
//!
//! ```text
//! [Pattern auto-promoted] → [Enters shadow mode]
//!     → [Runs during scans, results stored separately]
//!     → [Engineer reviews shadow output, marks TP/FP]
//!     → [System tracks metrics (100+ scans, <5% FP)]
//!     → [Graduate to production OR rollback]
//! ```
//!
//! # Architecture
//!
//! - **Types**: Core data structures (`ShadowTest`, `ShadowMetrics`, etc.)
//! - **Store**: Persistence layer for shadow test data
//! - **Registry**: Loads shadow extractors from learned/ directory
//! - **Executor**: Runs shadow extractors during scans
//! - **Feedback**: Collects TP/FP feedback from engineers
//! - **Graduation**: Promotes successful extractors to production

mod executor;
mod feedback;
mod graduation;
mod registry;
mod store;
mod types;

pub use executor::ShadowExecutor;
pub use feedback::{FeedbackCollector, FeedbackWithRollback};
pub use graduation::{AutoRollbackResult, GraduationManager};
pub use registry::ShadowExtractorRegistry;
pub use store::ShadowStore;
pub use types::{
    MatchFeedback, ShadowDecision, ShadowDecisionKind, ShadowMatch, ShadowMetrics, ShadowStatus,
    ShadowTest,
};
