ailiteracynepal 🇳🇵
Text size

Chapter 02 · Section IV · 10 min read

Common prompting anti-patterns

A short catalogue of the prompts that will reliably eat your afternoon. Reading them once helps you notice yourself typing them, which is when the money is made.

You will type one of these prompts within your first week. Everyone does. Recognising them for what they are — traps that produce plausible-looking work you cannot verify — is the fastest way to level up.

The Clean Sweep

“Clean up this file.”

You will get: a hundred lines of “improvements” — renamed variables, extracted helpers, restructured control flow, added comments. Some will be genuinely nice. Some will introduce subtle bugs. All of them are hard to review because the diff is huge and touches everything.

Fix: ask for exactly one thing. “Rename x1, x2, x3 to something readable” is scoped. “Clean up” is not.

The Everything Fix

“Fix all the bugs in this repo.”

You will get: a firehose of file edits, some correct, some inventing bugs that were not there. Because no test was named as a pass criterion, nothing tells you when Claude was done.

Fix: hand it one failing test at a time. “The test in __tests__/api.test.ts for GET /users/:id is failing with a 500. Read the error output, find the bug, fix it, rerun the test.”

The 10x Prompt

“You are a senior staff engineer with 20 years of experience. Rewrite this to be production-ready.”

Persona prompts do not make the model smarter. They also do not give it any of the context it actually needed — what “production-ready” means in your codebase, which invariants exist, what the test story is. You get a longer, more confident-sounding version of the same work.

Fix: replace the persona with actual constraints. “Follow the pattern in src/api/*.ts: no top-level try/catch, all validation in a middleware, use the shared Result type for return values.”

The Silent Assumption

“Make it work like the old system.”

There is no way for Claude to know what the old system did. You know. It does not.

Fix: describe the old behaviour. Even one paragraph. Even a screenshot pasted in.

The Never-Ending Refactor

“Actually, on second thought — could you also…” [repeated seven times, each time expanding scope]

Every additional “also” bloats the diff, doubles the review cost, and increases the chance of a subtle regression. By turn seven you have no idea what actually changed relative to the branch you started on.

Fix: if it is a new ask, commit the current work first, then start a new prompt.

The Guess-and-Check Loop

“Try again.” (with no additional information)

Claude does not have an oracle. If it produced the wrong output and you say “try again” with no correction, the second attempt is just a re-roll.

Fix: always tell it what was wrong. “It failed because the test expects the array to be sorted descending, not ascending” is useful. “Try again” is not.

Check your understanding

Quick check

Which of these prompt habits reliably wastes the most time in practice?