If what you're creating isn't shippable to a customer/user then really scrutinize it. Things like AI skills, AI task loops, etc. those are all throw-away artifacts, the equivalent of Jira tickets. If you can get AI to help delivery without them, do that. The AI lab companies want you to use tokens but if you can automate something without AI in the mix, since you're experienced I assume you know shell scripting, automation concepts, etc., then automate it to work without token use. This is especially if you are doing something solo - your process and workflow can change on a whim so the least amount of overhead is going to keep you lean and focused on shipping software.
Cofounder is using agents, I'm directly interacting with Claude and Codex. Self hosted forgejo due to Github issues.
I'm coming to modern software development late. My experience was in things which were in the mini-computer and COBOL genre of machines, or on things that were so tightly controlled that the review process for one change could take a year (combat aircraft and drones).
So CI/CD is something I'm actually trying to grasp because it feels so alien to me.
All that to say: Don't currently have any.
When code is checked in, it tries to compile it to make sure there are no fundamental issues building the software. This, importantly, happens on not your computer. This helps protect against "it works on my machine" but fails for someone else. If you've got tests, and you should have tests, it will run them for you to make sure those complete as well. If both of those pass, it reaches the CD portion of the process and typically just zips up the working build and does whatever is needed for a deployment in your environment automatically. There are tons of other things you could do as well, like run a linting tool to make sure the code is all formatted consistently across the project or run security checks to make sure passwords or .env files aren't included by accident. But the core concept is build the project, test the project (with various different tools), if it passes deploy the project to some environment where you can see the changes. This drastically cuts down the feedback loop time and increases how fast you can iterate on changes.
For my setup, I've got forgejo hosted on my NAS along with various web apps as containers in podman which I use cloudflared tunnels to selectively make them public. I've got a Claude skill which knows about my hosting environment and can setup / manage new web projects for me. When I add a new web project, CC runs a script that CC built to configure the build, test and deploy actions. After that, any pull request to that new repo will automatically build and test and deploy automatically to a new subdomain. CC could call the APIs directly and handle everything without scripts, but that's where some of the non-deterministic aspects of LLMs might creep in. I want it to setup everything the same way every time so all the apps are consistent. So it uses pre-built scripts for those aspects with the direct API calls being an escape hatch if needed.