If you haven't worked with Issue Tracking that was linked to the code repository, here's the idea....
All of what would be feature requirements should go into the Issue tracker as "enhancements". You might need to break them up into smaller steps such that they can be tackled in shorter amounts of time.
This way, everyone can see what's planned. Questions and discussions about the issues themselves can take place in the comments in the issue tracker.
Working on code means choosing an issue to work on, and writing code to implement or fix that issue. When the feature is implemented, or the problem is fixed, you commit the code. When you commit, you include a comment that updates the issue. An example comment might be:
Handle parsing of XML from Twilio
Fixes #32
Git hub will link this code commit to the Issue in the issue tracker.
Doing things this way leads to a few benefits:
Linking code implementation directly to the discussions about the feature or bug is a very good thing. The code not only shows how the feature was implemented, but we can also link over to why it was needed, the history of the problem, and all the discussions about this feature.
It forces developers to take things in small, incremental steps, instead of trying to tackle everything all at once. This can speed up development by avoiding all the confusion of not know what state the code is in.
Everyone can follow progress. This is especially true if you take the time to try and map out the feature requirements into issues ahead of time. (Which you should). Then people can see progress towards completion by watching each issue get implemented. Now, progress to completion is certainly not exact. More issues are going to be added all the time as new things are discovered about the features. Things that were not thought of will be discovered and will need to be added to the issue tracker and dealt with. But it still gives everyone a sense of how far along we are.