Isn't a “convention-based framework” just... a convention? With such a generous definition of “framework”, is it even realistic to solve this problem without accidentally creating one? Would you need to purposefully avoid any type of consistency between the different modules, and solve the same problem in different ways if it comes up more than once?