Spaces:
Running
Running
| ### Control Module — Overrides and Explainability | |
| Directory: `scheduler/control/` | |
| This package houses the manual control plane that allows judges or operators to override algorithmic decisions and to inspect the reasoning behind suggestions. | |
| #### Files overview | |
| - `overrides.py` | |
| - Purpose: Define override types, manage override drafts per cause list, validate changes, and collect judge preferences and audit trails. | |
| - Key elements: | |
| - `OverrideType` (Enum): categories like ripeness override, capacity change, add/remove case. | |
| - `Override`: a single change request with metadata; `to_dict()`, `to_readable_text()` helpers. | |
| - `JudgePreferences`: persistent preferences per judge; `to_dict()`. | |
| - `CauseListDraft`: a draft editable list for a given date/courtroom/judge; exposes `get_acceptance_rate()` and `get_modifications_summary()`. | |
| - `OverrideValidator`: validates requested changes; surface `get_errors()`; targeted validate methods for each override kind (ripeness, capacity, add/remove case). | |
| - `OverrideManager`: creates drafts, applies overrides, finalizes drafts, fetches preferences, produces statistics, and exports an audit trail. | |
| - Interactions: Consumed by `core/algorithm.py` to apply judge preferences and manual modifications before final allocation. | |
| - `explainability.py` | |
| - Purpose: Human‑readable explanations for why cases were selected or not. | |
| - Typical content: utilities that convert ripeness/eligibility checks and policy scores into readable reasons for UI display and audit logs. | |
| - Interactions: Used by dashboard pages and potentially during `SchedulingAlgorithm.schedule_day` explanation generation. | |