mockforge_intelligence/incidents/mod.rs
1//! Drift-incident management — semantic side.
2//!
3//! Issue #562 phase 9: the AI-coupled pieces of `mockforge_core::incidents` moved
4//! here. The structural incident manager (`IncidentManager`), in-memory store
5//! (`IncidentStore`), and shared types (`IncidentSeverity`, `IncidentStatus`,
6//! etc., which live in `mockforge_foundation::incidents_types`) stay in core /
7//! foundation respectively — they don't depend on AI primitives.
8//!
9//! What's here:
10//!
11//! - [`semantic_manager`]: tracks **semantic** drift incidents (cross-linked
12//! with structural incidents in core but built on top of the LLM-driven
13//! semantic-change taxonomy from `crate::ai_contract_diff::semantic_analyzer`).
14//! - [`integrations`]: Jira / Linear / generic-webhook configuration types
15//! used to push incident notifications to external systems.
16//! - [`slack_formatter`] (`integrations/slack.rs`) and [`jira_formatter`]
17//! (`integrations/jira.rs`): payload-formatting helpers for the two
18//! built-in integrations. Aliased under the same names as in the legacy
19//! `mockforge_core::incidents` layout so existing call sites that go
20//! through the core re-export shim resolve unchanged.
21
22pub mod integrations;
23pub mod semantic_manager;
24
25// Match the legacy core layout exactly — the two formatter aliases share
26// the same files as their parent `integrations` submodules. Existing
27// `mockforge_core::incidents::{slack_formatter, jira_formatter}` callers
28// pick these up via the core re-export shim.
29#[path = "integrations/slack.rs"]
30pub mod slack_formatter;
31
32#[path = "integrations/jira.rs"]
33pub mod jira_formatter;
34
35pub use semantic_manager::{SemanticIncident, SemanticIncidentManager};