{
  "id": 9604657,
  "title": "Learn Empty Diffs by Building a Tiny Prompt Journal",
  "url": "https://urgent.news/2026/09/24/learn-empty-diffs-by-building-a-tiny-prompt-journal",
  "topic": "ai",
  "section": "AI",
  "published": "2026-09-24T18:02:15.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/magickong/learn-empty-diffs-by-building-a-tiny-prompt-journal-5f1k"
  },
  "original_language": "en",
  "account": "The author recounts a frustrating experience with a lab exercise in Halifax where they were sorting student comments into categories, only to hit an empty diff issue when retrying a request. The lab was designed to highlight a sloppy method, and the author kept a scratch note to refine their approach until they achieved a \"fixed\" result. They then resubmitted the original JSON payload and noticed that the note did not get included in the request.\n\nThe author emphasizes the importance of freezing the request and refusing to send when there is an empty diff. They suggest keeping the implementation in the standard library so that even a lab image without pip can still run the functionality. The key takeaway is that the failure should be more visible than optimism, with changed keys displayed on stdout and an exit code that a shell can detect.\n\nTo troubleshoot the issue, the author advises having Python 3.9 or newer, a writable folder, and no third-party packages. They recommend checking the Python version before blaming the fixture. The author then walks through the steps they took to trace the branches and recompute hashes to verify their results. They emphasize that the contract is dull, trusting the json.dumps with sort_keys=True and hashlib.sha256 as pure functions of UTF-8 bytes.\n\nThe author keeps the Python docs for json.dumps and hashlib.sha256 open while writing the script, stating that no model paper is required. The entire concept is built before any model speaks. The journal serves as a coat check, not a diary, where a new ticket is issued only when the coat is different. The author highlights that key order is the lining turned inside out, meaning the same coat will result in the same ticket, even if the lining appears different.",
  "summary": "The third time I hit send, nothing in the terminal even flinched. Same wrong label. complaint , for a sentence that was begging to be a question: \"Where is the rubric?\" I had the failing fixture in retry.json . The bytes were identical to the first attempt. My mood was not. If the canonical request did not change, what new evidence do I think a model is going to hand me? That was a course lab in…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}