[{"data":1,"prerenderedAt":172},["ShallowReactive",2],{"blog-post-\u002Fblog\u002Fyour-agent-is-guessing":3},{"id":4,"title":5,"authors":6,"badge":13,"body":14,"date":162,"description":163,"extension":164,"image":165,"meta":166,"navigation":167,"path":168,"seo":169,"stem":170,"__hash__":171},"blog\u002Fblog\u002Fyour-agent-is-guessing.md","AI is writing code for products it doesn’t understand",[7],{"name":8,"description":9,"to":10,"avatar":11},"Itai Gendler","@itai-gendler","https:\u002F\u002Fgithub.com\u002Fitai-gendler",{"src":12,"alt":8},"\u002Fteam\u002Fitai-gendler.png","Perspective",{"type":15,"value":16,"toc":154},"minimark",[17,21,27,30,33,38,41,44,50,56,60,63,69,73,76,79,85,92,96,99,133,139,145,148,151],[18,19,20],"p",{},"Coding agents can read code, tests, and tickets. Without a reliable product\ndefinition, they still have to reconstruct what the product is supposed to be.",[18,22,23],{},[24,25,26],"strong",{},"We are giving AI control of the codebase without giving it a reliable\ndefinition of the product.",[18,28,29],{},"Ask a coding agent to change what happens when a free trial ends. Should the\nworkspace become read-only? Is there a grace period? Can users export their data?\nDo scheduled actions keep running? What happens to invited teammates?",[18,31,32],{},"The agent can find the relevant code and tests. What it cannot find is which of\nthose answers represent the product's current intent.",[34,35,37],"h2",{"id":36},"evidence-is-not-a-product-definition","Evidence is not a product definition",[18,39,40],{},"The answers are usually scattered across the pricing page, an old launch ticket,\nbilling and permission logic, tests, a support playbook, and somebody's memory.\nEvery source is useful. None defines the current product as a whole.",[18,42,43],{},"Trial expiration crosses billing, permissions, collaboration, data retention,\nexports, and automations. Each system can behave consistently while producing a\ncustomer experience nobody deliberately defined.",[18,45,46,49],{},[24,47,48],{},"The agent does not discover the product. It reconstructs one",", filling every gap\nwith a product decision nobody explicitly made—then writes code as if that\nreconstruction had been approved.",[18,51,52,53],{},"Code is the closest evidence of what shipped, but it cannot explain what the\nbehavior means. A temporary workaround looks much like a deliberate business\nrule. ",[24,54,55],{},"Tests confirm what happens, not why it must happen.",[34,57,59],{"id":58},"better-documentation-is-not-enough","Better documentation is not enough",[18,61,62],{},"Wikis, design documents, and decision logs are good at authoring. Their shared\nweakness is that they cannot tell us when they have become false. When behavior\nchanges underneath a document, nothing fails; it quietly stops being true.",[64,65,66],"blockquote",{},[18,67,68],{},"The problem is not that a product definition is hard to write. The problem is\nthat a written product definition has no way of knowing it is now wrong.",[34,70,72],{"id":71},"agents-turn-ambiguity-into-action","Agents turn ambiguity into action",[18,74,75],{},"People reconstruct the product from the same fragments. Coding agents simply do\nit faster—and then act on the reconstruction.",[18,77,78],{},"More context helps it see more evidence. It does not create the missing decision\nthat only lived in a conversation or distinguish an intentional constraint from\na historical accident.",[18,80,81,84],{},[24,82,83],{},"The result can be reasonable code for a subtly incorrect product."," Reviewers catch\nsome of it. The rest ships.",[18,86,87],{},[88,89],"img",{"alt":90,"src":91},"Tickets, documents, tests, code, chats, and memory flow through reconstruction and produce a plausible product interpretation, shown as different from verified product intent.","\u002Fblog\u002Fagent-product-reconstruction.webp",[34,93,95],{"id":94},"what-a-durable-product-definition-requires","What a durable product definition requires",[18,97,98],{},"Simply documenting the product more clearly is not enough. A durable product\ndefinition must be:",[100,101,102,109,115,121,127],"ul",{},[103,104,105,108],"li",{},[24,106,107],{},"Current and centralized:"," one shared definition of how the product should\nwork, updated as the product changes.",[103,110,111,114],{},[24,112,113],{},"Versioned with the code:"," changing in the same history as implementation.",[103,116,117,120],{},[24,118,119],{},"Readable by people and agents:"," structured without becoming opaque.",[103,122,123,126],{},[24,124,125],{},"Organized around product definition:"," who it serves, where they reach it, what it keeps, what it can do, and which rules must stay true.",[103,128,129,132],{},[24,130,131],{},"Tied to evidence:"," making drift visible when implementation and intent\ndiverge.",[18,134,135],{},[88,136],{"alt":137,"src":138},"A current product definition connects to five requirements: versioned with code, readable by people, readable by agents, tied to evidence, and making drift visible.","\u002Fblog\u002Fproduct-definition-requirements.webp",[18,140,141,142],{},"Call it a Product Model or a product definition. The name matters less than the\nproperty: ",[24,143,144],{},"it cannot quietly become fiction.",[18,146,147],{},"With that definition, people can understand the current product without\narchaeology, and agents can build from explicit decisions instead of inventing\nthe missing ones.",[18,149,150],{},"Over the past few weeks, I have been working on an open standard for product\ndefinitions and an open-source implementation of it. I am planning to release\nthem soon.",[18,152,153],{},"Where does your product definition live today? Have you run into this problem?\nHow does your organization handle it?",{"title":155,"searchDepth":156,"depth":156,"links":157},"",2,[158,159,160,161],{"id":36,"depth":156,"text":37},{"id":58,"depth":156,"text":59},{"id":71,"depth":156,"text":72},{"id":94,"depth":156,"text":95},"2026-08-06","Coding agents can read code, tests, and tickets. Without a reliable product definition, they still have to reconstruct what the product is supposed to be.","md","\u002Fblog\u002Fai-writing-code-for-products.webp",{},true,"\u002Fblog\u002Fyour-agent-is-guessing",{"title":5,"description":163},"blog\u002Fyour-agent-is-guessing","FOqePn4y9plNDNkUqru2Yss-H9scyWFhqnSJwUWIUks",1791840531132]