CommandPost is made up of two seperate components:
The goal of CommandPost-App is to always stay compatible with Hammerspoon, to allow us to always be able to bring across bug fixes and new features from the Hammerspoon repository to the ComamndPost-App fork.
In most cases, you should never really need to make changes to CommandPost-App, as all the user interfaces and features are built with Lua scripts.
However, if there is something missing from CommandPost-App that you want to add to the application (for example we added the "Drag & Drop to Dock" callbacks), ideally you would commit this to the main Hammerspoon repository first (so that the Hammerspoon community can also benefit from it), and then update CommandPost-App from Hammerspoon/master.
For more information on contributing to Hammerspoon, refer to their Contribution Guide.
There's also a fantastic Hammerspoon Module Walkthrough here, which includes examples of how to make Objective-C extensions.
If you have any questions about this, feel free to submit an issue.