I asked AI to tidy 20 contacts. It quietly changed 3 values.
What most of us type
Tested in GPT-5.5 (OpenAI API), Oct 2026
I pasted a fictional 20-row contact list with rows like ' maria lopez', 'DEV PATEL' and '555-01O-6620', then typed the usual request.
The tidy table looked fine
Real output · GPT-5.5 (OpenAI API) · Oct 2026
It opened with a note about what it did, and the table looked clean. But in our one run, 19 rows came back, not 20.
Comparing every cell with the original
It merged two Maria Lopez rows and blanked 4 dates, though its notes said so. Three values changed with no mention: a phone digit, an email and a year.
Source: Own test, GPT-5.5 (OpenAI API), Oct 2026
Formatting is not the same as content
'Make it consistent' lets AI change formatting and content, like guessing a date or merging rows. Anthropic's guide: "Be specific about the desired output format and constraints."
Source: Anthropic, Prompting best practices (Claude Platform Docs)
Limit the job, flag the doubt
Tested in GPT-5.5 (OpenAI API), Oct 2026
This version limits the job to formatting, says what to do with doubtful values, and asks for a list of every flagged cell.
All 20 rows came back
Real output · GPT-5.5 (OpenAI API) · Oct 2026
In our one run, 9 cells were flagged [CHECK] and copied unchanged. Nothing was guessed, merged or deleted.
Source: Own test, GPT-5.5 (OpenAI API), Oct 2026
Still check the result
It dropped '+1' from two phone numbers and left the 'exmaple' typo and the duplicate Maria row unflagged, since I never asked it to. A quick check catches the rest.
Try it: Paste a 10-row fictional list with the prompt, then count the rows.
Before you paste a real list
Contact lists are personal data. Remove names, account numbers and other personal details first, and check the tool's data policy or your employer's approved tools before uploading real documents.
Sources and assumptions
- Own test: GPT-5.5 via the OpenAI API, engine/ai-test.js (record.tests ids 'before' and 'after', tool chatgpt): Both outputs shown on the slides; every count (19 rows, 4 dates blanked, 3 unmentioned changes, 9 [CHECK] cells, 2 dropped '+1' prefixes) comes from comparing those outputs cell by cell with the fictional input table (checked 2026-10-11)
- Anthropic, Prompting best practices (Claude Platform Docs), 'Be clear and direct': Verbatim: 'Claude responds well to clear, explicit instructions. Being specific about your desired output can help enhance results.' and the bullet 'Be specific about the desired output format and constraints.' (Written for Claude models; used here as general prompting guidance, not as a claim about GPT-5.5.) (checked 2026-10-11)
- OpenAI, GPT-5 prompting guide (OpenAI Cookbook): Verbatim: 'GPT-5 follows prompt instructions with surgical precision' and 'poorly-constructed prompts containing contradictory or vague instructions can be more damaging to GPT-5 than to other models'. Written for GPT-5, not specifically GPT-5.5. (checked 2026-10-11)
Assumptions:
- The test ran on GPT-5.5 through the OpenAI API (label 'GPT-5.5 (OpenAI API)'), not the ChatGPT app. The idea called for Claude, but the claude CLI failed inside the research sandbox (the two failed 'claude' entries in tests.json have output null), so no Claude result exists and the slides must not claim one.
- Each prompt ran once. The same prompt can give a different result on another run or in another tool, so the post shows one real test, not a guarantee.
- The input table is fictional: invented names and companies, 555-010-xxxx phone numbers and .example email domains. The errors were planted on purpose: ambiguous dates 03/04/2026, 1/2/26 and 12/11/2025; invalid date 2026-02-30; relative date 'yesterday'; two-digit year '6 March 26'; a letter O in a phone number; a missing area code; a phone extension; the email typo 'exmaple'; a near-duplicate Maria Lopez row; a blank company cell.
- 'Content change' means any value whose meaning changed (merged, deleted, guessed, corrected or invented). Case, spacing, phone punctuation and converting an unambiguous date to YYYY-MM-DD count as formatting. Adding '+1' (before run) or dropping it (after run) is borderline and is reported as such.
- 'Quietly changed 3 values' counts changes that appear in neither the before run's notes nor its opening line: Ravi's phone O→0, Ben's email exmaple→example, and Felix's '26 read as 2026. The merge, the blanked dates, the 'yesterday' guess and the 555 area code were all disclosed.
- The before run turned 'yesterday' into 2026-10-11 because the run happened on 2026-10-12 UTC. The table gives no date for when 'yesterday' was written, so this is a guess.
The short version
- A plain 'clean up' changed content in our test
- Ask for formatting only
- Have it copy doubtful values and add [CHECK]
- Count rows, then read every flagged cell


