# Mode Profile Library Plan ## Goal Add a long-term cabin mode configuration layer that can be matched from natural-language requests before normal CAN compilation. ## Scope - Add repository-backed mode YAML files under `config/modes/`. - Convert matched mode operations into the same model-plan requests already used by seat, climate, roof, and ambient-light adapters. - Preserve current behavior for unmatched or extra user goals by letting the AI/local parser generate temporary requests. - Allow a recent successful action set to be saved as a long-term mode profile when the user explicitly asks to solidify a mode. - Expose available modes to the web console and wire the existing quick-mode/save controls to the new workflow. ## Tests First - Unit-test mode profile loading, matching, request conversion, and save-to-YAML behavior. - Integration-test zero-gravity matching alone. - Integration-test zero-gravity plus a temporary roof request producing a cross-domain `SceneConfig`. - Integration-test saving the previous successful action set as a long-term mode file without emitting CAN. ## Design Notes - The mode library stores semantic operations, not CAN frames. CAN remains generated by the existing domain compilers. - Seat-related operations in modes still pass through vehicle-profile angle/percentage calibration. - Save-mode detection is intentionally narrower than seat posture preset saving to avoid changing existing preset behavior.