I use the standard $20/ChatGPT Pro sub, and run Thinking 5.5 as a chat interface.
I use it like a "trusted personal advisor," as opposed to a "black box employee."
I'm intimately involved in almost every step of the development process. Most of what I ask from the LLM, is function-length snippets.
It's made a huge difference in the velocity and scope of my work.
I have learned that I need to be very careful, though. The LLM sometimes really borks things, and I have to rip out the garbage, and rewrite the code, myself. I can't even imagine the quality of "vibe-coded" software.
Sounds like you like having stuff, not building stuff.
Did you ever bring anything to life? Whatever it is, you are also relying on the work others have done before you and standing on the shoulders of giants.
It seems you wouldn't give them credit for it, but most of them appear to feel quite a bit of responsibility for bringing those to life.
I plant a seed, a human being carries it to fruition for 9 months through her determination, love and literal life blood, and I can claim I brought the seed to life.
He plants an idea and patiently coaxes a machine to spit out the code that matches it, you're giving the machine the credit.
I don't get it.
A carpenter can build a house with commercially produced dimensional lumber without having to harvest the trees, cut them into boards of standard dimensions, kiln-dry it, and transport it to the building site. We still say he "built" the house.
At some point, though, it's fair to ask "what did I add?"
If you are directing other people (or maybe robots, someday) to do the actual building, you can't really claim to have "built a house" even though it all happened under your direction.
I guess bottom line for me to feel I had a real part in "building" a thing would be whether I added anything I am specifically qualified or skilled at doing, or did I do what anyone could have done?
All of those elements are present for me while using AI to augment my output. I have started using voice to interact with my coding harness though and I think that has maybe influenced my opinion. I also don't let things go fully autonomously and look at the diffs along the way.
I asked for examples of how the algorithm worked. I asked for examples of how to call the code. I asked for a happy-path unit test and a simple error-handling unit test. I asked it to rewrite something as a pure function. I pointed out an obvious race condition and told it to guard against that issue. I asked it to rewrite a function in the style of this other function. I told it to separate one function into two separate functions that handle the first step and the second step separately.
Etc etc.
If you don't understand it, ask for more or better comments, or better variable names, or cut down the scope into a smaller section, or more examples.
Edit: also I almost entirely leave the LLM in read only mode... I tell it to make the smallest change possible, and tell it I will only copy paste it in its proposed change when I understand the change and where it needs to be made. That way it's my hands on the keyboard, interacting with the code by making recommended changes... 80% of the code is touched by me (via copy-paste) most-of-the-way before I will 'git commit'.
Sure, there was one recursive folder descent function that found the most recent file modification time that I didn't fully understand, but it's self-contained in a function, I don't care to learn every corner of file modification times, and it appears to work, so I left it as is for my static site generator.