# Skill: Structure prompts with WHAT, WHERE, DONE, and DON'T to get correct results on the first try > Apply this skill before sending any task request to an AI agent -- it eliminates the most common cause of wrong results by explicitly answering the four questions the agent would otherwise answer itself, badly. Source: sodigi·learn -- vibecoding/prompt-s-pervogo-raza · https://sodigi.io/learn/vibecoding/prompt-s-pervogo-raza ## When to use - Any time a task is more complex than a one-word fix (essentially every real task). - When reviewing a draft prompt before sending -- run it through the four-question checklist. - When the agent keeps doing the wrong thing on repeat -- the root cause is almost always a missing DONE criterion or missing DON'T boundary. - When handing a task to someone else (human or agent) who knows nothing about the project context. ## Core rules - An agent does exactly what is written, filling all gaps with its own assumptions. Every assumption it makes is a potential miss. - A working prompt must answer four questions: WHAT (concrete action + object), WHERE (file, page, location), DONE (observable result), DON'T (what is off-limits). - The DON'T boundary is the most commonly skipped part and the most painful to omit -- without it the agent will "helpfully" rewrite things that were not broken. - Fuzzy adjectives ("pretty", "better", "clean", "modern") are not instructions. Replace them with specific, observable criteria. - Big tasks must be sliced into pieces -- one prompt, one verifiable result. - Before sending, re-read the prompt as someone who knows nothing about the project. Every unanswered question is a gap the agent will fill. ## Procedure 1. WHAT: State a concrete verb and object. "Add a 'Sign up' button to the home page" -- not "improve the site." 2. WHERE: Name the file, page, or location. If you do not know the file name, say "find the file that contains X and make the change there." 3. DONE: Describe what you will see on screen when it is correct. Write it from the perspective of an ordinary user, not a developer. 4. DON'T: List what must not change: other pages, existing libraries, the header, files you did not mention. 5. Read the complete prompt as a stranger. List any questions they would have. Answer those questions inline. 6. If the task is large, split it. Send one chunk, verify it, then send the next. ## Ready-to-use prompt ``` Add a contact form to the contacts page. WHAT: a form with three fields -- name, email, message -- and a "Send" button. WHERE: on the contacts page, below the text with the address. Find the correct file yourself; if you are not sure, ask before changing anything. DONE: the screen shows a form with three fields and a button. Clicking "Send" with empty fields shows the hint "fill in the fields." On mobile the form does not overflow the edge. DON'T: do not change other pages, do not touch the header or menu, do not add new libraries without my permission. ``` ## Pitfalls - Fuzzy words: "pretty", "decent", "modern" have no objective meaning. The agent will choose its own interpretation, which will not match yours. - Omitting WHERE: the agent either searches blindly or creates a new file instead of editing the right one. - No DONE criterion: "done" by the agent's standard and "done" by your standard are two completely different things. - No DON'T boundary: the agent will "improve" adjacent code it was never asked to touch, breaking things that were working. - One giant prompt for a large project: "build me a social network" causes the agent to choke or produce an unverifiable pile. - Sending without rereading: 30 seconds of proofreading eliminates 30 minutes of redoing.