Extract the framework module generator into a separate module as a local plugin.
Use "vinyl" directly.