Open every PR and commit with a problem statement. Lacking features is not a problem, but failing to properly do X is a problem, and that can lead to a feature. It is a problem when there are no tests for a feature. Every PR and commit must have a problem statement.
The second paragraph in a commit should start "Solution: " and that's where you have a written description of how you solve the problem.
If there is a discussion regarding a feature, consider duplicating the discussion in the commit message, at least as a summary, to provide more insight into why or how a feature came to be.
For more information on this idea, please see https://www.youtube.com/watch?v=xFVDNTXIC_Y