An ad hoc workout was only launched ad hoc — any schedule referencing the same routine (through the clone redirect) still says what the user trains it for. Infer the goal from those schedules, tie-breaking by the user's goal order; only truly unassigned workouts stay in Unassigned. Claude-Session: https://claude.ai/code/session_01PKptrgbx74peTwHGRxBojv