Tangentially related, sometimes I find Stacked Git helpful when figuring out complex features or refactoring. Until it's nearly finished I'm not sure what would be worthwhile submitting as a PR but once it's ready then several smaller PRs are much easier to understand.
It's local stacked PRs and you can jump between them to edit as the ideas evolve.
It's local stacked PRs and you can jump between them to edit as the ideas evolve.
https://stacked-git.github.io/
But if the nearby code is evolving quickly from other people this can be a bad approach because of merge hell when the work is finally submitted.