Jujutsu is perfect for that - you create new changeset upfront, providing message at the same time (which can be later amended as needed). Feels so much more logical to declare the topic first, rather than come back to some accidentally uncommitted changes and wonder what was doing there.
Exactly! For anyone interested, I guess the previous comment refers to the Squash Workflow, which happens to be very idiomatic in Jujutsu
https://arialdo.codeberg.page/ju-ju-tsu/tutorial/moving/squa...
"Topic" is usually covered by branch name. Commit message goes with a set of code changes, it feels more logical to me for the message to describe the actual code as it was written (as it might have changed from the idea phase).
Agreed. You can preplan a bunch of small steps and then fill in changes.
You can start to write the commit message first in Git too. (And I do that.)