The current dotfiles role is buggy and overly complex
First and foremost, make it simple
So far it seems best to either...
split different environment configs and dotfile folders into their own collection roles
ie vim, bash, zsh, xdg, gopass, etc. get their own collection role
each role is then super specific for the need of that program or environment config
problem is this means all edits need to be done in a seperate repo, making it harder to add dotfiles because it means editing the collection, going to the playbook monorepo, updating the ansible-galaxy installed collection, then reruning the playbook
This means good testing is crucial even for unimportant dotilfes
same as above, but all role development is at least initially contained in the roles section of the playbook monorepo
Benefit here is the development workflow because everything is easily accessible through one repository
Problem is it makes CICD complicated (though it's a future goal, not a particularly current one)
It also makes testing workflows more complicated
For now each dotfile or configuration set should be their own role, which also installs programs and dependencies needed to run it properly. IE zsh will actually install zsh and set it as the default shell, vim will install vim, fzf installs vim and does the complex configurations needed, etc.
Do some research to figure out which approach, including new ones seem best, especially check up on what devops developers are up to on the issue.
The current dotfiles role is buggy and overly complex