{"id":"sheet-col-dedupe-club-signups","audience":"college","category":"spreadsheets","track":"data","technique":"constraints","title":"Write dedupe rules for a club sign-up sheet","free":false,"task":"Your club's sign-up form has duplicates, and people re-submit to change their shirt size, so the newest entry should win. Ask for exactly 4 numbered lines: 3 dedupe rules, then a line starting Result: with how many rows remain and which pair needs a human check. Same name with a different email must be flagged, not merged. Plain text, under 130 words.","materialLabel":"Your sign-up responses (attached to your prompt automatically)","material":"Club sign-up form responses (Hollis Outdoors Club, fall 2026)\n\nTimestamp | Name | Email | Shirt size\n9/2 10:14 | Maya Chen | mchen@hollis.edu | M\n9/2 10:20 | Jordan Pike | jpike@hollis.edu | L\n9/2 11:02 | maya chen | MChen@hollis.edu | S\n9/3 9:45 | Sam Ortiz | sortiz@hollis.edu | M\n9/3 9:47 | Sam Ortiz | sam.ortiz22@gmail.com | M\n9/4 13:30 | Priya Nair | pnair@hollis.edu | XL\n9/4 13:31 | Priya Nair | pnair@hollis.edu | XL\n9/5 8:00 | Leo Grant | lgrant@hollis.edu | L\n9/6 16:10 | Jordan Pike | jpike@hollis.edu  | M\n\nNotes:\n- 9 rows total right now; the full sheet will have about 150\n- Some emails have a space at the end\n- Shirt order goes to the printer Friday","rules":[{"type":"numberedItems","count":4},{"type":"maxWords","max":130},{"type":"plainText"}],"mistakes":[{"title":"Matching on exact text","why":"The AI treats \"MChen@\" and \"mchen@\" as different people.","fix":"Add: \"Same email ignoring capitals and extra spaces is a duplicate.\"","checks":["r0"]},{"title":"Keeping the first entry","why":"Spreadsheet remove-duplicates keeps the first row, so people get their old shirt size.","fix":"Add: \"Keep the newest timestamp.\"","checks":["r1"]},{"title":"Merging by name","why":"The AI merges the two Sam Ortiz rows, which might be two people.","fix":"Add: \"Same name, different email: flag for a human check, don't merge.\"","checks":["r2"]},{"title":"No count at the end","why":"The AI lists rules but doesn't apply them, so you can't check them.","fix":"Add: \"Line 4: Result: rows left and the pair to check.\"","checks":["r2","numberedItems"]},{"title":"Long or formatted output","why":"AI writes a step-by-step guide with bold headings.","fix":"Add: \"Each line under 22 words. Plain text.\"","checks":["maxWords","plainText"]}],"promptHints":[{"label":"Defines a duplicate","patterns":["same email","capital","case","spaces"]},{"label":"Says which row wins","patterns":["newest","latest","most recent"]},{"label":"Flags same-name pairs","patterns":["flag","human check","don'?t merge","same name"]},{"label":"Asks for a result line","patterns":["result:","how many rows","count"]},{"label":"Sets the shape","patterns":["\\b(4|four)\\b.{0,20}lines","plain","exactly"]}],"hint":"\"Remove duplicates\" hides three decisions: what counts as the same, which row wins, and what's too close to call. Make each one for the AI.","rubricLabels":["A rule says rows with the same email count as duplicates even with different capitals or extra spaces (so the two Maya Chen rows match)","A rule says to keep the row with the newest timestamp, so Maya ends with size S and Jordan with size M","A rule flags same-name, different-email rows for a human check instead of merging, and the Result: line says 6 rows remain with the Sam Ortiz pair to check"]}