One of the ideas for allowing branches to have extra functionality is the addition of some kind of functionality which adds buttons for doing extra stuff to a branch.
For instance if you have a Makefile type project, then instead of ground control detecting that and presenting a ‘compile’ button, we’d let the author of the branch decide to offer that to ground control users and they could add a script call to a file in say .gc_methods with an appropriate button label.
This would allow even the learning materials branch to offer a compile feature, while being separate and not tied to ground control per say, the functionality would work though the existing button bar that appears.
This would put the burden of offering such functionality to project maintainers, and if you find a project maintainer who hates ground control, they may not be happy about adding a file full of script pointers to their trunk branch for newbie contributors.
Another option I saw someone mention was some sort of UML file which could specify the internal project workflow and somehow that could be used to help users edit projects correctly.