That’s one of the appeals of infrastructure as code. For my own hobby work (where I might put down a project for months between serious work sessions, I often am that replacement). Some projects I have well enough structured or documented to pick right back inside of 30 minutes; others are more archeological in nature.
bin/publish.sh is better than remembering whether the service is on kubernetes, containers or a raw ec2 box, and "do I need to restart the service after update or just wait"
I wish there was a statically typed version of Ansible. There is Pulumi but it's mostly tied to cloud API's and not Linux system administration (setting up HAProxy, NGINX, PostgreSQL, users)
I wish Ansible just had better data handling. Adding variable assignment plays and jamming things in Jinja is pretty clunky (if you want to, say, pull some data from a REST API and loop over a subset of the info)
You could always make an Ansible module but then there's the overhead to managing/installing that
Data wrangling can also make idempotent playbooks a bit clunky, too. You get into this 2-4 play "run check, reshape results, conditionally run play" pattern