The first thing I do after creating a new branch, is write the changelog. Stating what new features go in the branch helps to focus my coding and keeps the branch clean and focused.
As I work I do a reread and fix the changelog to match the implementation reality. There have been countless instances where I have started coding a second feature, realized it doesn’t fit, and used that signal to know that this branch is done and should be merged.
If you write the changelog after you code, you probably won’t write a changelog. If you do it will be incomplete, because you won’t remember everything. Either way your branches will be less focused, and more difficult to merge.
Write the changelog first! Your fellow developers, including future you will thank you for it!