My view on mentor involvement in design is fairly simple, students should be able to use our larger knowledge base (with respect to designing robots) but at their discretion. Our team is fairly student run (as in lead mentors will only step in if there is a major issue that needs adult attention), so it follows that our design process should also be student lead. I think that teams with more student leaders and experience with design should have the mentors take a bit more of a step back, allowing the student leaders to do their work, while on less experienced teams (especially new teams, or those with large turnover) it becomes a lot more important for students to take into account mentor input seeing as they won’t have much.
While FIRST is all about students learning, that doesn’t mean they can’t have help. If FIRST was solely about students doing 100% of the work then why does FIRST have the Woodie Flowers award or encourage mentors at all? It is because they recognize that for teams to function and students to have a good experience there has to be mentors.
Now, specifically to CAD and the programs. IMO mentors should not be making any portion of the CAD or programs. Their role should be reviewing the code/CAD and giving suggestions to improve it along the way. There are cases where students do not know how to do something, and in that case I see it as fitting for a mentor to either direct them to an online resource they know of, or create an example. By example, I mean that it should not be something they can copy & paste, but more of an overview of how something is done.
A good example of this is where I went out and dug through the WPILib code to figure out if it was possible to have multiple USB camera inputs and have a single stream to the dashboard that was switched, and then gave the students breadcrumbs to lead them to a method to do it.