{"slug": "ai-coding-tip-031-stop-over-prompting-reasoning-models", "title": "AI Coding Tip 031 - Stop Over-Prompting Reasoning Models", "summary": "A developer advises against over-prompting reasoning models, noting that modern models already verify and pace themselves, so extra instructions like 'double-check your work' cause over-verification and wasted tokens. The guidance recommends using explicit effort settings, clear decision criteria, and a structured prompt template instead of vague or redundant instructions.", "body_md": "*The perfect prompt doesn't instruct the model on what it already knows how to do.*\n\nTL;DR: Reasoning models already verify and pace themselves, so drop those prompts and set real effort, scope, length, autonomy.\n\nYou still write prompts for a model that evolved and stopped needing them.\n\n\"Double-check your work,\" \"think step by step,\" \"be concise,\" and a wall of REQUIRED/MANDATORY rules get pasted into every request, the same [gratuitous context](https://dev.to/mcsee/code-smell-197-gratuitous-context-4gk) you'd flag in a variable name, on the assumption that more instruction always buys better output, as if the model just needed one more all-caps reminder to remember how to think.\n\nCurrent reasoning models (as of August 2026) already verify their own steps and pace their own depth.\n\nThose extra lines don't add safety, they add friction, waste tokens, and the model spends effort fighting your instructions instead of the task.\n\nForced verification instructions cause reasoning models to over-verify, [burning tokens](https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9) on redundant checks the model would have run anyway.\n\n\"Think deeply\" as a universal prefix no longer maps to anything: modern APIs expose an explicit effort level, so a vague plea does nothing a real setting wouldn't do better.\n\nALWAYS/NEVER absolutes written for judgment calls turn a nuanced decision into a rule the model follows literally, even when the literal reading is wrong.\n\n\"Be concise\" without specifics leaves the model guessing what to cut, so it either [pads the response](https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9) or cuts something you needed.\n\nContradictions inherited from older prompt versions, the same rule stated twice, slightly differently, in two sections, leave the model to arbitrate a conflict you never meant to create, sometimes by hallucinating its own resolution.\n\nMissing autonomy rules mean the model either stalls asking permission for trivial calls or barrels ahead on changes you wanted to review first.\n\nDelete forced verification lines like \"double-check your work\" or \"review before answering,\" since Anthropic's guidance on Opus 5 states directly: *\"If your prompt contains explicit verification instructions... remove them: they cause over-verification in modern models.\"*\n\nReplace \"think deeply\" or \"think hard\" with the model's official effort selector (`low`\n\n/`medium`\n\n/`high`\n\n/`max`\n\n), and start low, raising it only when a task actually needs the extra depth.\n\nTurn ALWAYS/NEVER language into decision criteria instead of blanket orders, and reserve absolute words for invariants that are genuinely always true, the same way you'd [force the model to obey](https://dev.to/mcsee/ai-coding-tip-015-force-the-ai-to-obey-you-49mc) only the rules that are actually non-negotiable.\n\nReplace a bare \"be concise\" with [what to keep and what to cut](https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9): name the sections that matter and the ones that don't.\n\nDeduplicate inherited rules so each constraint lives in exactly one place in the prompt, stated once.\n\nState an explicit autonomy policy as [a harness](https://dev.to/mcsee/ai-coding-tip-022-give-ai-a-harness-to-work-with-274a), the way OpenAI's GPT-5.6 guide does: *\"For requests to analyze, review, or plan, inspect and report. Don't implement changes unless asked,\"* the same [read-only planning step](https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m) you'd force on any other run.\n\nSet explicit length in the request itself, a paragraph, a table, three bullets, instead of leaving \"how long\" to the model's judgment.\n\nRewrite the prompt using the 2026 template: Role, Objective, Success criteria, Constraints, Output format, and Stopping rules, the same explicit exit condition you'd [force before closing out any task](https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij), and drop step-by-step process instructions in favor of describing the outcome.\n\nState [clear, verifiable exit criteria](https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij), the same ones you'd expect from a human collaborator.\n\n**Better results, not just shorter ones:** [OpenAI reports](https://developers.openai.com/cookbook/examples/gpt-5/gpt-5-6_prompting_guide) that trimming their internal agent prompts, cutting repeated instructions, unnecessary examples, and irrelevant tool descriptions, raised evaluation scores by 10 to 15%.\n\n**Lower token cost:** The same trimming dropped token consumption between 41 and 66%, and cost by up to 67%.\n\n**Less over-verification:** Removing forced double-check instructions stops the model from re-verifying work it already verified as part of normal reasoning.\n\n**Effort matches the task:** An explicit effort level replaces a vague \"think hard,\" so simple requests stay cheap and hard ones get the depth they need.\n\n**Fewer surprise expansions:** A stated scope stops the model from turning a one-file fix into a refactor of the whole module.\n\n**No arbitration needed:** A prompt with one copy of each rule leaves nothing for the model to reconcile on its own.\n\nThis shift tracks a change in what the model already does by default.\n\nOlder models needed to be told to verify, to slow down, to stay on topic, because without that scaffolding they skipped steps.\n\nReasoning models like GPT-5.6, Opus 5, and Kimi-3 already run an internal verification pass and already pace their depth against the task, so the same scaffolding stops helping and starts duplicating work the model was going to do anyway.\n\nThe fix isn't a shorter prompt for its own sake, since a short but vague prompt still fails.\n\nIt's a prompt where every remaining line does something no default behavior already covers: the real role, the real objective, the real constraints, and the four settings the model can't infer on its own, effort, scope, length, and autonomy.\n\nAutonomy is the one most prompts still skip, because apparently deciding when the model gets to act on its own is less fun than writing a ninth verification clause nobody needed.\n\nA three-level policy works for most tasks: act without asking on reversible, low-risk steps, confirm before anything destructive or hard to undo, and for pure analysis or planning requests, [inspect and report without touching code](https://dev.to/mcsee/ai-coding-tip-003-force-read-only-planning-1d1m), exactly as OpenAI's guidance states.\n\nAs always, you need a [human in the loop](https://dev.to/mcsee/ai-coding-tip-006-review-every-line-before-commit-bmm) to verify the task is complete.\n\n```\nThink deeply about this task and be very careful.\nAlways double-check your work before answering.\nNever skip validation, ever, no matter what.\nBe concise.\nRefactor the payment module.\nRole: Senior backend engineer refactoring a payment module.\nObjective: Extract the retry logic in PaymentGateway into its\nown class.\nSuccess criteria: Existing tests pass. Retry behavior stays\nthe same. No new public methods on PaymentGateway.\nConstraints: Don't touch the database schema. Don't add new\ndependencies.\nOutput format: A diff, followed by a two-sentence summary of\nwhat moved.\nStopping rules: If a test needs new mocking infrastructure to\npass, stop and ask before adding it. Otherwise proceed without\nconfirming each file.\nEffort: medium.\n```\n\n[Trimming a prompt](https://dev.to/mcsee/ai-coding-tip-009-compact-your-context-3io9) isn't the same as leaving out real constraints.\n\n[Business rules](https://dev.to/mcsee/what-is-wrong-with-software-5pa), security limits, and data boundaries stay in the prompt no matter how short the rest of it gets, since those aren't scaffolding, they're the same kind of non-negotiable rule you'd [force through a hook](https://dev.to/mcsee/ai-coding-tip-027-force-code-standards-58nf) instead of a wish.\n\nThe effort selector is model-specific.\n\nConfirm the exact parameter name and accepted values for the model you're calling before relying on it, since `low`\n\n/`medium`\n\n/`high`\n\n/`max`\n\ndoesn't map identically across every provider.\n\nAn autonomy policy still needs [real stopping rules](https://dev.to/mcsee/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-51ij), not just permission to act freely.\n\n\"Act without asking\" without a boundary is how a reversible-looking step turns into an irreversible one.\n\nOlder prompts you've relied on for months may still carry verification and hedging language written for older models.\n\nRe-check them against the current model's defaults instead of assuming last year's tuning still applies.\n\nYou don't have to do that rewrite by hand.\n\nFeed the old prompt into a meta-prompt that applies this tip's own rules and hands back a trimmed version.\n\n```\nRewrite the prompt below for a reasoning model.\n\nRemove: forced verification lines (\"double-check your work\",\n\"review before answering\"), \"think deeply\" or \"think hard\"\nphrasing, SIEMPRE/NUNCA rules written for judgment calls\ninstead of real invariants, a bare \"be concise\" with no\nspecifics, and any rule that's stated more than once.\n\nAdd: an explicit effort level (low, medium, high, or max),\nan explicit scope boundary, an explicit output length, and\nan explicit autonomy policy (act without asking, confirm\nfirst, or inspect and report only).\n\nKeep every real business rule, security limit, and data\nboundary from the original prompt untouched. Don't invent\nnew constraints that weren't already there.\n\nOutput using this structure: Role, Objective, Success\ncriteria, Constraints, Output format, Stopping rules.\n\nOld prompt:\n<PASTE THE OLD PROMPT HERE>\n```\n\n[X] Semi-Automatic\n\nThis trimming approach targets reasoning models with an explicit effort parameter and strong default self-verification.\n\nOlder or smaller models without those defaults may still need the explicit scaffolding this tip removes.\n\n[X] Beginner\n\nA prompt written for last year's model is a prompt full of instructions the current model already follows on its own.\n\nVerification, depth, and caution used to be things you had to ask for.\n\nNow they're defaults, and asking for them again just adds noise the model has to work around, like reminding a surgeon to wash their hands before every single incision.\n\nOnce useful.\n\nNow just insulting.\n\nKeep the four things a model still can't infer, effort, scope, length, and autonomy, and delete everything else that was only ever compensating for a model that's no longer the one answering.\n\n[Prompting 2026 - Guía Definitiva](https://aimafia.substack.com/p/guia-prompting-gratis)\n\nThe `reasoning_effort`\n\nparameter (OpenAI) and the extended-thinking budget parameter (Anthropic) set explicit depth instead of a \"think hard\" instruction.\n\nThe views expressed here are my own.\n\nI am a human who writes as best as possible for other humans.\n\nI use AI proofreading tools to improve some texts.\n\nMost AI detectors will flag this article as AI-generated. That's expected. It's a technical article. It has a rigid format and clear steps to follow.\n\nThat's exactly the pattern those tools are trained to catch. I've apparently been \"writing like an AI\" for decades, long before AI existed. This is a technical article, not a novel.\n\nI welcome constructive criticism and dialogue.\n\nI shape these insights through 30 years in the software industry, 25 years of teaching, and writing over 500 articles and a book.\n\nThis article is part of the *AI Coding Tip* series.", "url": "https://wpnews.pro/news/ai-coding-tip-031-stop-over-prompting-reasoning-models", "canonical_source": "https://dev.to/mcsee/ai-coding-tip-031-stop-over-prompting-reasoning-models-3m2k", "published_at": "2026-08-12 11:00:00+00:00", "updated_at": "2026-08-12 11:16:43.624304+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-tools", "developer-tools"], "entities": ["Anthropic", "OpenAI", "Opus 5", "GPT-5.6"], "alternates": {"html": "https://wpnews.pro/news/ai-coding-tip-031-stop-over-prompting-reasoning-models", "markdown": "https://wpnews.pro/news/ai-coding-tip-031-stop-over-prompting-reasoning-models.md", "text": "https://wpnews.pro/news/ai-coding-tip-031-stop-over-prompting-reasoning-models.txt", "jsonld": "https://wpnews.pro/news/ai-coding-tip-031-stop-over-prompting-reasoning-models.jsonld"}}