I have a closed source project that is built on my open source framework. I want to know how I should structure my workflow. Below is my best guess using git with submodules
git submodules allows you to define a configuration (see this question), that is a reference to one commit of another component (in another repo).
You can develop both codes (your and the submodules) within the same repo, but when you are talking about multiple private directories within your public code, that calls for a subtree merge strategy.
It will allow you to consider your directories (the private and public ones) as one natural working tree.
And to better manage the push and pull of parts of your global repo to a private one, I would recommend the git subtree script tool.