When architecting a system from scratch it's a bit easier since you don't deal with legacy systems at the beginning. Then when doing specifications I tend to divide the system into parts: actuation, sensing, logic. Then depending on the application I try to choose the best systems for doing the job.
For example if the robot is meant to be used in an agricultural context you know you need some kind of global localization (RTK GPS is probably best), usually you will need an IMU as well (this one will depend on the platform, budget etc). Then if you are expecting some occlusion (e.g. treetops) you might start thinking on what will happen to the GPS signal and what other sensors to add.
I do similar considerations for the actuators and software logic, trying to think of all possible scenario in a representative environment. From my experience if the work is fully remote it takes between 30 minutes to 1 hour just to discuss the environment, allowing me then to propose the best systems for the job.