Prompts that ship vs prompts that stall
Five patterns that turn chats into dead ends, a reusable prompt skeleton, and habits that keep output tied to something you can merge or publish.
Published 3/12/2026 · 15 min read
Photo: Unsplash
Here is the uncomfortable truth: most "bad AI" stories are bad requests wearing a trench coat. The model did exactly what you asked. The ask was built for daydreaming.
This article names the stall patterns we see over and over, then gives you a copy-paste skeleton you can drop at the top of any serious thread. After that, we talk about how to connect prompts to real artifacts: PR-sized work, tests, and reviewable diffs.
Stall pattern #1: no outcome
"Tell me about databases" produces a textbook. "I need Postgres vs SQLite for a side project capped at 1k users, one writer, cheap hosting" produces a decision.
Great prompts include what you will do with the answer. Shopping for a motorcycle is different from writing a whitepaper. Say which one you are doing.
Stall pattern #2: no context
The model is not psychic. It does not know:
- Your stack, unless you say it
- Your deadline, unless you say it
- What you already tried, unless you paste it
Two lines of context beat twenty lines of hope. "Next 14 app, Prisma, deploying on Vercel, hitting cold start issues on this route" already narrows the answer space massively.
Stall pattern #3: no format
Format is free productivity. If you want a checklist, say checklist. If you want a diff, say diff. If you want a table comparing Option A vs B with risks, say that explicitly.
Ambiguous format encourages the model to ramble in the shape it defaults to, which might not match how you think.
Stall pattern #4: perfection on step one
Treat the first reply as a draft on purpose. Professionals expect review cycles. Beginners treat the first message like a contract they cannot challenge.
Ask: "Give me version A optimized for speed of implementation. I will iterate toward cleanliness after it runs." That single sentence prevents endless bikeshedding in chat.
Stall pattern #5: no connection to the repo
If you are coding, the prompt should eventually name files, folders, or behaviors. Otherwise you get generic advice that sounds smart and does not land in your tree.
Even before Claude Code, you can paste struct snippets, error logs, or your package.json deps. Ground truth beats vibes.
Ship pattern: the skeleton
Paste this near the start of a serious thread and fill the brackets:
- Goal: one sentence on what changes in the world when this is done.
- Constraints: stack, timeline, experience level, hosting, anything immovable.
- Definition of done: a test plan, a URL that loads, a typecheck pass, whatever proves it.
- Current state: what works, what fails, links or pasted errors.
- Unknowns: what you authorize the model to assume if it must guess.
It feels robotic for three days. Then it feels like cheating.
The ambiguity line that saves you
End important prompts with:
If anything is ambiguous, ask me up to three questions before you answer.
You will get fewer confident wrong guesses. You will also surface hidden assumptions before they turn into a bad patch.
Turning answers into shipped work
A prompt is not done when the chat looks good. It is done when:
- There is a next concrete action in your editor or terminal, or
- You have a written decision you can paste into a ticket
If you cannot name the next action in one sentence, stay in the thread until you can. Shipping is a series of small verbs: add, fix, test, deploy.
Try this week
Rewrite your three most common vague prompts using the skeleton. Save them as snippets. After two weeks you will have a personal library that is worth more than any generic "mega prompt" PDF floating around online.
Want the full system?
Claude Academy is a structured course from first prompt to shipping with Claude Code, progress you can track, and projects you can show off.
View pricing & curriculum