{"id":"vibe-pm-fix-double-vote-bug-prompt","audience":"product-managers","category":"coding","track":"coding","technique":"constraints","title":"Ask an AI builder to fix one bug without a rewrite","free":false,"task":"Your AI-built feedback board has one bug, and last time the builder rewrote the whole app. Write a follow-up prompt as exactly 4 numbered lines labeled Bug, Where, Change only, Check. Name the component, say what must not change, and give one check you can click. No code blocks, under 110 words.","materialLabel":"The bug report and your notes (attached to your prompt automatically)","material":"Feedback board (built with an AI app builder) - internal tool for our support team\n\nBug report from Dana (support):\n\"When I double-click the upvote arrow on a feature request, the count goes up by 2. Single click is fine. Happens on every request card. Chrome and Firefox.\"\n\nWhat I know about the app (from the builder's file list):\n- components/RequestCard.tsx - the card with title, description, vote count\n- components/VoteButton.tsx - the upvote arrow and the click handler\n- pages/Board.tsx - the list of all cards, sorting by votes\n- styles/theme.css - colors and fonts\n\nLast time I asked \"fix the voting bug\" and the builder rewrote Board.tsx, changed our colors, and removed the sort-by-newest option. Took me 2 hours to undo.\n\nExpected: each person can add only 1 vote per request, however fast they click.\n\nOther things that are annoying but NOT for today: the search is slow, the dark mode toggle is ugly.\n","rules":[{"type":"numberedItems","count":4},{"type":"codeBlocks","count":0},{"type":"maxProseWords","max":110}],"mistakes":[{"title":"A vague fix request","why":"'Fix the voting bug' lets the builder rewrite whatever it wants.","fix":"Add: \"Bug: double-click adds 2 votes. Where: VoteButton.tsx.\"","checks":["r0","r1"]},{"title":"No fence around the change","why":"Builders 'improve' nearby code, styles and features.","fix":"Add: \"Change only VoteButton.tsx. Don't touch other files, colors or sorting.\"","checks":["r1"]},{"title":"Bundling other fixes","why":"The AI adds search and dark mode fixes 'while it's there'.","fix":"Add: \"Fix only this bug. Leave search and dark mode alone.\"","checks":["r2"]},{"title":"No way to verify","why":"The AI ends the prompt without a test you can run.","fix":"Add: \"Check: double-click the upvote; count goes up by 1.\"","checks":["r2"]},{"title":"A long explanation","why":"The AI writes headings and code snippets of a possible fix.","fix":"Say: \"Exactly 4 numbered lines, no code blocks.\"","checks":["numberedItems","codeBlocks","maxProseWords"]}],"promptHints":[{"label":"Names the file","patterns":["votebutton"]},{"label":"Fences the change","patterns":["change only","don.t (touch|change)","only (this|that) file"]},{"label":"Gives a check","patterns":["check","double.click"]},{"label":"Uses the line labels","patterns":["\\bwhere\\b","\\bbug\\b"]},{"label":"Caps the length","patterns":["\\d+\\s*words"]}],"hint":"AI builders treat 'fix it' as permission to rewrite. Name the exact spot, fence off everything else, and say how you'll check it.","rubricLabels":["The 4 lines are labeled, in this order: Bug, Where, Change only, Check","Where names VoteButton.tsx (or the VoteButton component), and Change only says not to change other files, styling or the sort options","Check describes one clickable test: double-clicking the upvote adds only 1 vote; the search speed and dark mode toggle are not mentioned as things to fix"]}