I'm not convinced about ignoring everything, but one of the best changes I ever made to my git workflow was ignoring all dotfiles by default by adding `.*` to ~/.config/git/ignore.
My projects do now have to have a boiler plate of unignoring the common ones (!.gitignore, !.gitattributes, !.github, !.editorconfig, etc), but then I'm free at any point to throw .foo.lang files, or .tmp/.cache dirs, or Claude helpers like .code_analysis.md, or .todos.txt, or whatever in my project without managing the fallout of forgetting to manage the .gitignore. I'm surprised more people don't go this route.
I normally go with `.*/` -- I find that hidden files are much more likely than hidden directories to be useful.
I have `playground/` in my ignore config, that way I can just create a playground directory for any project and do stuff in there
I do the same
Couldn't you put !.gitignore et al in your global config file?