Improve analysis UX: algorithm explanations, skeleton loading, auto-expand achieved specs

- Replace terse one-line optimization mode descriptions with clearer multi-sentence
  explanations of how Maximize Count and Priority Order algorithms behave
- Add skeleton loading placeholders on course buttons while analysis is pending
- Auto-expand achieved specializations to show credit breakdown by default
- Add instructional subtitles to Course Selection and Specializations sections
- Make Clear and Clear All buttons more prominent with visible backgrounds
This commit is contained in:
2026-02-28 21:56:06 -05:00
parent 6af24d9270
commit 969d4ff5a9
10 changed files with 201 additions and 17 deletions

View File

@@ -0,0 +1,25 @@
## ADDED Requirements
### Requirement: Mode description explains practical behavior
The ModeToggle component SHALL display a multi-sentence description for each optimization mode that explains the algorithm's practical behavior and when a user would choose it.
For "Maximize Count", the description SHALL convey that:
- The algorithm finds the combination of specializations that achieves the highest count (up to 3).
- The user's ranking is used only to break ties when multiple combinations achieve the same count.
For "Priority Order", the description SHALL convey that:
- The algorithm processes specializations in the user's ranked order, top to bottom.
- It locks in the highest-ranked achievable specialization first, then adds more if feasible.
- The user's ranking directly controls which specializations are prioritized.
#### Scenario: User selects Maximize Count mode
- **WHEN** the optimization mode is set to "maximize-count"
- **THEN** a description is displayed that explains the algorithm finds the largest possible set of specializations and uses ranking only as a tiebreaker
#### Scenario: User selects Priority Order mode
- **WHEN** the optimization mode is set to "priority-order"
- **THEN** a description is displayed that explains the algorithm guarantees the top-ranked specialization first and greedily adds more in rank order
#### Scenario: Description updates on mode switch
- **WHEN** the user switches from one mode to the other
- **THEN** the description text SHALL update immediately to reflect the newly selected mode