## Why The analysis UI has three usability gaps: the two optimization modes ("Maximize Count" and "Priority Order") have minimal one-line descriptions that don't convey how they differ in practice, there is no visual loading feedback beyond a tiny per-set "analyzing..." label when the solver runs, and achieved specializations don't show their credit breakdown by default—users must discover the click-to-expand behavior on their own. ## What Changes - Replace the terse one-line mode descriptions in `ModeToggle` with clearer, more informative explanations that help users understand the practical difference between the two algorithms. - Add a skeleton loading placeholder to elective set cards while analysis is pending, replacing the minimal "analyzing..." text with a visual placeholder that communicates progress. - Default achieved specializations to expanded state so users always see the per-course credit breakdown without needing to click. ## Capabilities ### New Capabilities - `algorithm-explanations`: Improved descriptive text and presentation for the two optimization mode settings in ModeToggle. - `analysis-skeleton-loading`: Skeleton placeholder UI shown on elective set cards while the decision tree worker is processing. - `expanded-achieved-specializations`: Achieved specializations default to expanded, always showing the AllocationBreakdown credit list. ### Modified Capabilities ## Impact - `app/src/components/ModeToggle.tsx` — updated descriptive text and possibly layout for mode explanations. - `app/src/components/CourseSelection.tsx` — replace "analyzing..." text with skeleton loading placeholder. - `app/src/components/SpecializationRanking.tsx` — change default expansion state for achieved specializations.