Files
Bill 4d6f81d1e5 v1.2.2: Add Healthcare specialization, mark cancelled courses, rename Digital Marketing
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.
2026-05-09 14:50:26 -04:00

6.8 KiB
Raw Permalink Blame History

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 abbreviation HCR is present in SPECIALIZATIONS

Scenario: Healthcare has no required course

  • WHEN inspecting the Healthcare specialization
  • THEN its requiredCourseId is 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-medical qualifications
  • THEN the list includes both STR (S2) and HCR (standard)

Scenario: Analytics & Machine Learning for Managers qualifies for Healthcare

  • WHEN inspecting spr3-analytics-ml qualifications
  • THEN the list includes both MTO (standard) and HCR (standard)

Scenario: Digital Marketing Strategy in Practice qualifies for Healthcare

  • WHEN inspecting sum2-social-media qualifications
  • THEN the list includes BRM, EMT, MKT, and HCR (all standard)

Scenario: Managing Change qualifies for Healthcare

  • WHEN inspecting fall1-managing-change qualifications
  • THEN the list includes LCM, MGT, STR (S2), and HCR (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: true and remains a member of spr5

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-companies with cancelled: true and 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-insights and sum2-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 name is "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 instructors array 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.