How do we help devs unlearn the usage of `git add .`?
The problem/challenge is that it is optimistic that you every single change being made is meant to be commited.
Using a -p gets people to think through what they're changing and avoid accidentally adding changes for things outside the scope of the current task at hand.
It's a training problem that I see with interns/jr. devs. Their first few PRs often result in, "did you mean to update this lock file?" "what is this new empty file in the app root directory named 'sudo'?" misc. debugging things creep into PRs.