Apply the J27 (5/6/2026) Stern specialization sheet: - Add Healthcare (HCR) as the 15th specialization, with HCR cross-listings on spr2-health-medical, spr3-analytics-ml, sum2-social-media (renamed), and fall1-managing-change. 10 credits available, no required-course gate. - Rename sum2-social-media to "Digital Marketing Strategy in Practice"; replace its description with new MSKCC-anchored content; clear instructor pending confirmation of new lead. - Switch from delete-and-replace to the previously-unused cancelled flag (Approach B): mark spr5-customer-insights cancelled, add Managing Growing Companies back to Summer Set 2 as a cancelled placeholder per the printed sheet. - Update data integrity tests: course count 46 -> 47, spec count 14 -> 15; per-spec "across sets" helper now filters cancelled courses so future cancellations trigger an obvious assertion failure (BRM 6 -> 5, MKT 7 -> 6, HCR 4 new). - Replace hardcoded 14 in optimizer.test.ts with SPECIALIZATIONS.length.
6.8 KiB
ADDED Requirements
Requirement: Healthcare specialization
The system SHALL include "Healthcare" (abbreviation HCR) as a defined specialization with no required course gate.
Scenario: Healthcare appears in specialization list
- WHEN the data module is loaded
- THEN a specialization with id
HCR, name "Healthcare", and abbreviationHCRis present inSPECIALIZATIONS
Scenario: Healthcare has no required course
- WHEN inspecting the Healthcare specialization
- THEN its
requiredCourseIdis undefined
Scenario: Healthcare reaches four elective sets
- WHEN counting the distinct elective sets containing at least one non-cancelled HCR-qualifying course
- THEN the count is exactly 4 (
spr2,spr3,sum2,fall1), yielding 10.0 credits available (4 × 2.5)
Requirement: Healthcare cross-listings on existing courses
The system SHALL add Healthcare (HCR, standard marker) as an additional qualification on four existing courses without removing their prior qualifications.
Scenario: Business of Health & Medical Care qualifies for Healthcare
- WHEN inspecting
spr2-health-medicalqualifications - THEN the list includes both
STR(S2) andHCR(standard)
Scenario: Analytics & Machine Learning for Managers qualifies for Healthcare
- WHEN inspecting
spr3-analytics-mlqualifications - THEN the list includes both
MTO(standard) andHCR(standard)
Scenario: Digital Marketing Strategy in Practice qualifies for Healthcare
- WHEN inspecting
sum2-social-mediaqualifications - THEN the list includes
BRM,EMT,MKT, andHCR(all standard)
Scenario: Managing Change qualifies for Healthcare
- WHEN inspecting
fall1-managing-changequalifications - THEN the list includes
LCM,MGT,STR(S2), andHCR(standard)
Requirement: Cancelled courses preserved with cancelled flag
The system SHALL retain cancelled course entries in the course data with cancelled: true rather than deleting them. Cancelled courses SHALL NOT be considered selectable, SHALL be excluded from solver computations, and SHALL render in the UI as visibly disabled.
Scenario: Customer Insights is marked cancelled
- WHEN inspecting
spr5-customer-insights - THEN the course has
cancelled: trueand remains a member ofspr5
Scenario: Managing Growing Companies present as cancelled placeholder in Summer Set 2
- WHEN inspecting Summer Elective Set 2 (
sum2) - THEN it contains exactly five course entries, one of which is
sum2-managing-growing-companieswithcancelled: trueand an empty qualifications list
Scenario: Cancelled courses excluded from solver
- WHEN the solver computes specialization assignments
- THEN no cancelled course id contributes credits toward any specialization
MODIFIED Requirements
Requirement: Course definitions
The system SHALL define exactly 47 courses. Each course SHALL have an ID, display name, and the ID of the elective set it belongs to. Courses MAY carry a cancelled: true flag indicating the offering has been withdrawn.
Scenario: Course count
- WHEN the data module is loaded
- THEN exactly 47 courses are defined
Scenario: Each course belongs to one set
- WHEN iterating all courses
- THEN every course references a valid elective set ID, and the set's course list includes that course
Scenario: Cancelled courses are flagged, not deleted
- WHEN filtering courses by
cancelled === true - THEN the result includes both
spr5-customer-insightsandsum2-managing-growing-companies
Requirement: Specialization definitions
The system SHALL define exactly 15 specializations. Each specialization SHALL have an ID, display name, and abbreviation. Specializations with a required course gate SHALL reference the required course ID.
Scenario: Specialization count
- WHEN the data module is loaded
- THEN exactly 15 specializations are defined
Scenario: Healthcare is included
- WHEN searching specializations for id
HCR - THEN a specialization named "Healthcare" is found
Scenario: Required course mappings unchanged
- WHEN inspecting specializations with required courses
- THEN exactly 4 specializations have required course gates: SBI →
spr4-sustainability, ENT →spr4-foundations-entrepreneurship, EMT →sum3-entertainment-media, BRM →fall4-brand-strategy
Requirement: Course-specialization qualification matrix
Each course SHALL declare which specializations it qualifies for, with a marker type of standard (■), S1, or S2. Courses with no qualifying specializations (including cancelled courses) SHALL have an empty qualification list. Reachability counts SHALL exclude qualifications belonging to courses flagged cancelled.
Scenario: Marker types
- WHEN inspecting course qualifications
- THEN every qualification entry uses one of three marker types: standard, S1, or S2
Scenario: Strategy markers
- WHEN counting Strategy-qualifying courses across all (non-cancelled) courses
- THEN exactly 9 courses have S1 markers and exactly 8 courses have S2 markers
Scenario: Reachable distinct-set counts per specialization
- WHEN counting distinct elective sets containing at least one non-cancelled course qualifying for each specialization
- THEN the counts are: MGT 11, STR 9, LCM 9, FIN 9, CRF 8, MKT 6, BNK 6, BRM 5, FIM 6, MTO 6, GLB 5, EMT 4, ENT 4, SBI 4, HCR 4
- AND these counts represent raw distinct-set reachability, not the CSV's published credit totals (which additionally apply S1/S2 and shared-course rules — out of scope for this assertion)
Requirement: Renamed Digital Marketing course
The system SHALL display course sum2-social-media with the name "Digital Marketing Strategy in Practice" and the updated description anchored on the Memorial Sloan Kettering Cancer Center engagement. The course id SHALL remain sum2-social-media (unchanged) so existing lookup tables and tests continue to resolve.
Scenario: Display name updated
- WHEN inspecting the course with id
sum2-social-media - THEN its
nameis "Digital Marketing Strategy in Practice"
Scenario: Description reflects MSKCC engagement
- WHEN the user opens the course info popover for
sum2-social-media - THEN the description references Memorial Sloan Kettering Cancer Center, agentic AI, and digital strategy practice
Scenario: Instructor cleared pending confirmation
- WHEN inspecting the course's instructor list in
COURSE_DESCRIPTIONS - THEN the
instructorsarray is empty
REMOVED Requirements
None. The "Managing Growing Companies" id, previously removed by replace-cancelled-course-with-innovation-design, is reintroduced as a cancelled placeholder per the J27 sheet — see ADDED Requirements above.