## ADDED Requirements ### Requirement: Specialization status summary The system SHALL display all 14 specializations with their current status: achieved, achievable, missing_required, or unreachable. Achieved specializations SHALL be visually prominent. The list SHALL follow the user's priority ranking order. #### Scenario: Mixed statuses displayed - **WHEN** the optimization produces 2 achieved, 5 achievable, 1 missing_required, and 6 unreachable specializations - **THEN** all 14 are displayed in priority rank order, each with its status clearly indicated through distinct visual styling (color, icon, or badge) #### Scenario: No courses pinned - **WHEN** no courses are pinned (all sets open) - **THEN** all specializations show as achievable or unreachable based on upper-bound reachability ### Requirement: Credit progress display Each specialization SHALL display its current credit progress toward the 9-credit threshold. Achieved specializations SHALL show allocated credits. Achievable specializations SHALL show upper-bound potential credits. Unreachable specializations SHALL show maximum possible credits. #### Scenario: Achieved specialization credits - **WHEN** Finance has 9.5 credits allocated by the optimizer - **THEN** Finance shows "9.5 / 9.0 credits" with a filled progress indicator #### Scenario: Achievable specialization potential - **WHEN** Marketing has 5.0 allocated credits from pinned courses and 3 open sets with qualifying courses - **THEN** Marketing shows current allocation plus potential (e.g., "5.0 allocated, up to 12.5 potential") ### Requirement: Credit allocation breakdown The system SHALL allow the user to view the detailed credit allocation for achieved specializations: which courses contribute credits and the amount from each course. #### Scenario: Expand allocation detail - **WHEN** the user expands an achieved specialization - **THEN** a breakdown shows each contributing course name and the credit amount allocated from it (e.g., "Valuation: 2.5, Corporate Finance: 2.5, The Financial Services Industry: 2.5, Behavioral Finance: 1.5") ### Requirement: Decision tree for open sets The system SHALL display a decision tree section showing open (unpinned) elective sets ordered by decision impact. For each open set, each course choice SHALL display its ceiling outcome: the best achievable specialization count and set assuming optimal choices in remaining open sets. #### Scenario: High-impact set displayed first - **WHEN** Spring Set 4 has high variance in ceiling outcomes across its courses (one choice enables 3 specs, another only 2) and Fall Set 2 has no variance (all choices lead to same ceiling) - **THEN** Spring Set 4 appears before Fall Set 2 in the decision tree #### Scenario: Course choice outcomes shown - **WHEN** viewing an open set in the decision tree - **THEN** each course shows: ceiling specialization count, the names of ceiling specializations, and any specs that become permanently unreachable if this course is chosen ### Requirement: Decision tree loading state When the background Web Worker is computing ceiling outcomes, the system SHALL show a loading indicator on the decision tree. Results SHALL appear progressively as each open set's analysis completes. #### Scenario: Progressive loading - **WHEN** the Web Worker has completed analysis for 3 of 6 open sets - **THEN** the 3 completed sets show full ceiling results and the remaining 3 show a loading indicator #### Scenario: Instant fallback - **WHEN** the Web Worker has not yet returned results - **THEN** the decision tree shows upper-bound reachability per course choice (computed instantly on main thread) as a preliminary result ### Requirement: Mode comparison When the two optimization modes (maximize-count and priority-order) produce different results for the current pinned courses, the system SHALL highlight the difference to help the user understand the trade-off. #### Scenario: Modes agree - **WHEN** both modes produce the same achieved specialization set - **THEN** no comparison is shown; the result is displayed normally #### Scenario: Modes disagree - **WHEN** maximize-count achieves {Corp Finance, Strategy, Management} (3 specs) but priority-order achieves {Finance, Corp Finance} (2 specs, Finance is rank #1) - **THEN** the system displays both outcomes with an explanation: maximize-count achieves more specializations, but priority-order guarantees the user's top-ranked specialization ### Requirement: Mutual exclusion warnings When a course selection or open-set state creates a mutual exclusion (two specializations that cannot both be achieved), the system SHALL display a warning explaining the conflict. #### Scenario: SBI vs E&I conflict - **WHEN** Spring Set 4 is open - **THEN** the system notes that choosing Sustainability for Competitive Advantage eliminates Entrepreneurship and Innovation (and vice versa) because both required courses are in the same set #### Scenario: Conflict already resolved - **WHEN** Spring Set 4 is pinned to Foundations of Entrepreneurship - **THEN** the SBI specialization shows status missing_required with an explanation that its required course was in the same set as the pinned choice