I am thinking about how the class abstraction has to be created so that I don't cause error. I am thinking about Major Classes that are shared but don't change much. Minor classes that are application specific and can change frequently. if a Major Class is changed, all applications using will need to be regression tested.
As I see it, you should only keep in the shared modules files that have already been tested and are working AND can/will be used in several projects.
If you create a project specific module, keep it in your project folder in order to avoid issues.