Skip to content

Instantly share code, notes, and snippets.

@Thiruppathi
Forked from geoffreylitt/explain-diff-html.md
Created July 3, 2026 19:20
Show Gist options
  • Select an option

  • Save Thiruppathi/4a80914fbb48c1f181ab8a180593061c to your computer and use it in GitHub Desktop.

Select an option

Save Thiruppathi/4a80914fbb48c1f181ab8a180593061c to your computer and use it in GitHub Desktop.
explain-diff
name explain-diff-html
description Use when the user asks for a rich explanation of a code change, diff, branch, or PR. Produces HTML output.

Explain Diff

Please make me a rich, interactive explanation of the specified code change.

It should have these sections:

  • Background: Explain the existing system relevant to this change. (You should broadly explore surrounding code for this.) We don't know how much the reader already knows, so include a deep background for beginners (note that it can be skipped if the reader is already familiar), and then a more narrow background directly relevant to the change.
  • Intuition: Explain the core intuition for the code change. The focus here is to explain the essence, not the full details. Use concrete examples with toy data. Use figures and diagrams liberally.
  • Code: Do a high-level walkthrough of the changes to the code. Group/order the changes in an understandable way.
  • Quiz: Come up with five questions that test the reader's knowledge of this PR. This should be medium difficulty, difficult enough that you actually need to understand the substance of the PR to answer them, but not gotchas. The goal is to help the reader make sure that they've actually understood. These should be presented as interactive multiple-choice questions, and when the user clicks, it tells them whether they were correct and gives feedback.

Format:

  • Output a single self-contained HTML file which includes CSS and JavaScript. Make the whole thing one long page with section headers and a table of contents. Don't use tabs for the top-level structure. Basic responsive styling so you can view it on a phone is nice too. Put the file in a global place on my computer outside of the code repo, and make sure the filename always starts with today's date in YYYY-MM-DD- format, because it helps keep the files time-sorted and out of version control. For example: /tmp/2026-01-12-explanation-.html
  • Please write with the clarity and flow of Martin Kleppmann, making it engaging and written in classic style. Transitions between sections should be smooth.
  • Some tips on diagrams. Ideally, you should pick a small number of diagram families that can be reused throughout the explanation to explain various cases. Some useful kinds of diagrams:
    • A very simplified version of the UI that the user sees in the app, to explain UI changes.
    • A system diagram showing data flow or communication between components. Make sure to include example data here!
  • Don't use ASCII diagrams. Always use simple HTML designs for your diagrams, HTML lists for lists of things, etc.
    • For code blocks, always use <pre> tags. If you use a custom styled div instead, it must have white-space: pre-wrap in its CSS, or the browser will collapse all newlines into a single line. Before saving the file, scan each code block in the HTML source and confirm its CSS includes white-space: pre or pre-wrap.
  • Use callouts for key concepts or definitions, important edge cases, etc.
name explain-diff-notion
description Use when the user asks for a rich explanation of a code change, diff, branch, or PR. Produces a Notion page.

Explain Diff

Please make me a rich, interactive explanation of the specified code change as a Notion page.

It should have these sections:

  • Background: Explain the existing system relevant to this change. (You should broadly explore surrounding code for this.) We don't know how much the reader already knows, so include a deep background for beginners (note that it can be skipped if the reader is already familiar), and then a more narrow background directly relevant to the change.
  • Intuition: Explain the core intuition for the code change. The focus here is to explain the essence, not the full details. Use concrete examples with toy data. Use figures and diagrams liberally.
  • Code: Do a high-level walkthrough of the changes to the code. Group/order the changes in an understandable way.
  • Quiz: Come up with 5 questions that test the reader's knowledge of this PR. This should be medium difficulty, difficult enough that you actually need to understand the substance of the PR to answer them, but not gotchas. The goal is to help the reader make sure that they've actually understood. Each question should have some multiple choice answers with an explanation detailing why an answer is correct or incorrect. Use toggle blocks to represent this. For example:
    1. Question
       ▶ Option 1
        ❌ Explanation for why it was incorrect
       ▶ Option 2
        ❌ Explanation for why it was incorrect
       ▶ Option 3
        ✅ Explanation for why it was correct
       ▶ Option 4
         ❌ Explanation for why it was incorrect
    2. Question
       ...

Format:

  • Use the Notion MCP tools to create a new page and return the URL of the new page.
  • Please write with the clarity and flow of Martin Kleppmann, making it engaging and written in classic style. Transitions between sections should be smooth.
  • Some tips on diagrams. Ideally, you should pick a small number of diagram families that can be reused throughout the explanation to explain various cases. Make sure to include example data!
  • Use callouts for key concepts or definitions, important edge cases, etc.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment