Why My AI Prompts Kept Failing (And What Finally Fixed Them)
For months I blamed the AI. Wrong tool, not smart enough, bad at my use case. Then I looked at what I was actually typing — and everything changed.
For the first few months of building with AI, I had a theory.
The theory was that I had picked the wrong tool.
I'd open Claude, type what I wanted, get something almost-right, then go looking for a better AI. Try Cursor. Try GPT-4. Try the new thing someone posted about on Twitter. Get another almost-right result. Conclude that one was also broken.
I went through this loop for longer than I'd like to admit.
Then one day I looked at what I was actually typing.
"Build me a dashboard."
That was my entire request. Four words. I had typed four words and expected the AI to produce exactly what I imagined.
I wouldn't hire a contractor and hand them a napkin that said "build me a dashboard." I'd give them a brief. Layout. Data sources. What goes where. What success looks like. What not to touch.
I was applying the "you know what I mean" shortcut — the thing that works with friends and coworkers who share your context — to a machine that has no context at all. It doesn't know what I built last week. It doesn't know what I mean by "dashboard." It makes its best guess, and its best guess is never exactly mine.
Once I understood this, I stopped chasing better AI tools and started writing better inputs.
The four things I now include in every prompt
What I'm actually building — specifically. Not "a form" but "an email capture form with one text field, a submit button, and an inline success message. On submit, POST to /api/waitlist. Store the email in a Supabase table called waitlist_emails." If I can't describe the output that specifically, I don't actually know what I want yet — which is useful to figure out before I start typing.
What I already have. The AI has no memory of our previous sessions. It doesn't know I'm using Next.js 14. It doesn't know my auth is already set up, or that the Supabase client lives at lib/supabaseClient.ts. If I don't say it, the AI invents it — usually differently from how I'd do it.
What not to do. This felt odd at first. Why tell the AI what not to do? Because AI is enthusiastic. It will improve things you didn't ask it to touch, install packages you didn't ask for, add features you didn't mention. "Don't install any new packages without asking" and "only change the files I mentioned" are now in almost every prompt I write.
What success looks like. "I can enter an email, click submit, see the confirmation message, and find the new row in Supabase." When I define success before I send the prompt, the AI has something to aim at. When I don't define it, the AI declares success the moment the code compiles — which has almost nothing to do with whether it works for me.
What happened when I started doing this
My first-attempt success rate went from maybe four in ten to closer to eight or nine in ten. Same AI tools. Different inputs.
The AI didn't get smarter. I got clearer.
The four or five minutes of thinking I'd been skipping — actually figuring out what I wanted before I asked for it — turned out to be the most important part of the whole process. I'd been trying to outsource that thinking to the AI, and AI can't do it. Only I know what I mean.
If you take nothing else from this: before you send your next prompt, write one sentence for each of the four things above. The output quality will surprise you.
Briefli automates this — it interviews you, asks the right questions, and writes the structured prompt. But even if you do it by hand, the difference is real. Give it a try on your next session.
Get your free AI prompt
Enter your email and we’ll send you a custom prompt for your project.
Stop re-writing prompts. Let Briefli build them for you.
Two-minute interview → precise, first-attempt prompt. Free to start.
Try It Free →