Installing a development environment that is not easily reproducable is technical debt.
Exceptions that should not be automated:
System updates - you don’t want risking things to break in the middle of a development session.
The bootstrap script (~/.dotfiles/bin/dotfiles) is run as the regular user, but contains sudo ... statements where necessary, e.g. if this is being run on a new system and Ansible needs to be installed.
ansible-galaxy install -r requirements.yml installs all collections specified in a requirements.yml file.