{"id":1404,"date":"2026-08-25T18:00:00","date_gmt":"2026-08-25T17:00:00","guid":{"rendered":"https:\/\/wade.one\/blog\/?p=1404"},"modified":"2026-08-25T18:00:00","modified_gmt":"2026-08-25T17:00:00","slug":"a-definition-of-done-is-the-best-coding-agent-prompt","status":"publish","type":"post","link":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/","title":{"rendered":"A Definition of Done Is the Best Coding Agent Prompt"},"content":{"rendered":"<p>The weakest coding-agent prompts describe a change and leave completion as an exercise for the agent. Add a button. Fix the API. Refactor the service. That might be enough to generate a diff, but a diff is not the same thing as finished work. The best improvement is usually a clear definition of done.<\/p>\n<p>For me, that means observable checks: the route returns the expected status, the old behaviour still passes, the UI renders at the relevant widths, the migration works on existing data, and the production-safe dry run is clean. OpenAI&#8217;s original <a href=\"https:\/\/openai.com\/index\/introducing-codex\/\">Codex guidance<\/a> makes the same practical point from another angle: agents do better with configured environments, reliable tests, and clear documentation.<\/p>\n<p>A definition of done also helps the agent make smaller decisions without repeatedly asking what matters. It can choose an implementation while staying anchored to the acceptance criteria. When something cannot be verified locally, the gap becomes explicit instead of disappearing behind a confident summary. That makes review faster because the evidence arrives with the change.<\/p>\n<p>This is not special prompt magic. It is the same discipline good engineering work has always needed, made more visible because an agent will follow vague instructions literally. Tell it what to change, where the boundary is, and how both of you will know the job is complete. That will improve the result more reliably than adding another paragraph of motivational prose.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Coding agents work better when the prompt defines observable completion instead of only describing the code change.<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[25],"tags":[118,115,231,181],"class_list":["post-1404","post","type-post","status-publish","format-standard","hentry","category-software-engineer","tag-code-review","tag-coding-agents","tag-software-delivery","tag-testing"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Definition of Done Is the Best Coding Agent Prompt - wade.one<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Definition of Done Is the Best Coding Agent Prompt - wade.one\" \/>\n<meta property=\"og:description\" content=\"Coding agents work better when the prompt defines observable completion instead of only describing the code change.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/\" \/>\n<meta property=\"og:site_name\" content=\"wade.one\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-25T17:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1518\" \/>\n\t<meta property=\"og:image:height\" content=\"1506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:site\" content=\"@wadewomersley\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"A Definition of Done Is the Best Coding Agent Prompt\",\"datePublished\":\"2026-08-25T17:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/\"},\"wordCount\":243,\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"keywords\":[\"code-review\",\"coding-agents\",\"software-delivery\",\"testing\"],\"articleSection\":[\"Software Engineer\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/\",\"name\":\"A Definition of Done Is the Best Coding Agent Prompt - wade.one\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\"},\"datePublished\":\"2026-08-25T17:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/2026\\\/08\\\/25\\\/a-definition-of-done-is-the-best-coding-agent-prompt\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wade.one\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Definition of Done Is the Best Coding Agent Prompt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/\",\"name\":\"wade.one\",\"description\":\"wade womersley - york based software engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wade.one\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/#\\\/schema\\\/person\\\/8b4739f8f8bb2cff5d792d4b8779fcc3\",\"name\":\"Wade Womersley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"url\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"contentUrl\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\",\"width\":202,\"height\":200,\"caption\":\"Wade Womersley\"},\"logo\":{\"@id\":\"https:\\\/\\\/wade.one\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/02\\\/200px.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Definition of Done Is the Best Coding Agent Prompt - wade.one","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/","og_locale":"en_GB","og_type":"article","og_title":"A Definition of Done Is the Best Coding Agent Prompt - wade.one","og_description":"Coding agents work better when the prompt defines observable completion instead of only describing the code change.","og_url":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/","og_site_name":"wade.one","article_published_time":"2026-08-25T17:00:00+00:00","og_image":[{"width":1518,"height":1506,"url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/Wade-Logo-cropped.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@wadewomersley","twitter_site":"@wadewomersley","twitter_misc":{"Estimated reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/#article","isPartOf":{"@id":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/"},"author":{"name":"","@id":""},"headline":"A Definition of Done Is the Best Coding Agent Prompt","datePublished":"2026-08-25T17:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/"},"wordCount":243,"publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"keywords":["code-review","coding-agents","software-delivery","testing"],"articleSection":["Software Engineer"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/","url":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/","name":"A Definition of Done Is the Best Coding Agent Prompt - wade.one","isPartOf":{"@id":"https:\/\/wade.one\/blog\/#website"},"datePublished":"2026-08-25T17:00:00+00:00","breadcrumb":{"@id":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wade.one\/blog\/2026\/08\/25\/a-definition-of-done-is-the-best-coding-agent-prompt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wade.one\/blog\/"},{"@type":"ListItem","position":2,"name":"A Definition of Done Is the Best Coding Agent Prompt"}]},{"@type":"WebSite","@id":"https:\/\/wade.one\/blog\/#website","url":"https:\/\/wade.one\/blog\/","name":"wade.one","description":"wade womersley - york based software engineer","publisher":{"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wade.one\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/wade.one\/blog\/#\/schema\/person\/8b4739f8f8bb2cff5d792d4b8779fcc3","name":"Wade Womersley","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","url":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","contentUrl":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png","width":202,"height":200,"caption":"Wade Womersley"},"logo":{"@id":"https:\/\/wade.one\/blog\/wp-content\/uploads\/2015\/02\/200px.png"}}]}},"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1333,"url":"https:\/\/wade.one\/blog\/2026\/06\/01\/codex-on-mobile-changes-the-shape-of-background-coding\/","url_meta":{"origin":1404,"position":0},"title":"Codex on Mobile Changes the Shape of Background Coding","author":"Wade","date":"June 1, 2026","format":false,"excerpt":"Codex on mobile is less about writing code on a phone and more about supervising background engineering work away from the desk.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/wade.one\/blog\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1259,"url":"https:\/\/wade.one\/blog\/2026\/05\/07\/the-next-developer-skill-is-agent-direction\/","url_meta":{"origin":1404,"position":1},"title":"The Next Developer Skill Is Agent Direction","author":"Wade","date":"May 7, 2026","format":false,"excerpt":"As coding agents become more capable, the valuable skill shifts toward direction: defining the task, setting boundaries, reviewing output, and owning the decision.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/wade.one\/blog\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1335,"url":"https:\/\/wade.one\/blog\/2026\/06\/03\/claude-code-routines-make-agents-feel-more-like-ci-jobs\/","url_meta":{"origin":1404,"position":2},"title":"Claude Code Routines Make Agents Feel More Like CI Jobs","author":"Wade","date":"June 3, 2026","format":false,"excerpt":"Claude Code routines are interesting because they move coding agents toward scheduled, event-driven, reviewable work.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/wade.one\/blog\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1336,"url":"https:\/\/wade.one\/blog\/2026\/06\/04\/overtasked-coding-agents-need-lead-dev-boundaries\/","url_meta":{"origin":1404,"position":3},"title":"Overtasked Coding Agents Need Lead Dev Boundaries","author":"Wade","date":"June 4, 2026","format":false,"excerpt":"Coding agents need bounded tasks, tests, and review because out-of-scope actions are exactly the kind of thing a lead developer has to catch.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/wade.one\/blog\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1305,"url":"https:\/\/wade.one\/blog\/2026\/05\/17\/ai-coding-agents-need-better-configuration-not-just-better-models\/","url_meta":{"origin":1404,"position":4},"title":"AI Coding Agents Need Better Configuration, Not Just Better Models","author":"Wade","date":"May 17, 2026","format":false,"excerpt":"The next gains from AI coding agents will come from model improvements and from clearer repo instructions, permissions, tests, and workflows.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/wade.one\/blog\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1341,"url":"https:\/\/wade.one\/blog\/2026\/06\/08\/android-studio-gemma-4-is-really-about-local-agent-trust\/","url_meta":{"origin":1404,"position":5},"title":"Android Studio Gemma 4 Is Really About Local Agent Trust","author":"Wade","date":"June 8, 2026","format":false,"excerpt":"Android Studio's Gemma 4 support matters because local coding agents change the trust model for mobile teams.","rel":"","context":"In &quot;AI&quot;","block_context":{"text":"AI","link":"https:\/\/wade.one\/blog\/category\/ai\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1404","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/comments?post=1404"}],"version-history":[{"count":1,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1404\/revisions"}],"predecessor-version":[{"id":1427,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/posts\/1404\/revisions\/1427"}],"wp:attachment":[{"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/media?parent=1404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/categories?post=1404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wade.one\/blog\/wp-json\/wp\/v2\/tags?post=1404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}