Geoffrey Litt, Design Engineer at Notion, thinks the answer is yes, but not for the reason most people give. His talk lays out three techniques he uses himself, including a skill he runs every day.
Geoffrey Litt, a Design Engineer at Notion, gave this talk at the AI Engineer conference in July 2026, then published the slides and their narration on his blog on 2026-07-02. It is a practitioner’s account of his day-to-day work with coding agents, not a presentation of research findings. An agent here means an AI program that can carry out a multi-step task on its own, specifically one that writes code.
Litt presents his opening position as a "hot take", acknowledging that it may now be contested: people still need to understand the code that agents write. The claim sounds close to a truism. Yet he treats it as needing a defense, because the direction people now assume is the opposite: take ourselves out of the loop and let the agents loop themselves. A loop is one round trip in which a human gives direction, the agent executes, and the human reviews the result before directing it again.
The practical difficulty is real. Agents are writing a growing share of code, and reading their output line by line no longer scales. One change shown in the talk touched 372 files, adding +55,219 lines and removing −3,027.
But understanding does not have to mean reading every line in every diff. The talk introduces three other ways to build it: explainer docs, quizzes, and micro-worlds.
In his framing, once the volume climbs, the question is not whether to read the code, but whether reading diffs line by line is the only way to read it.
Litt puts the counter-question himself: aren’t we supposed to be taking ourselves out of the loop now and letting the agents loop themselves, and as agents get smarter, doesn’t it become less important for us to be in the details?
One possible answer is to "understand to verify". A human needs enough understanding to decide whether the work is correct, whether it matches the specification, and whether it is well architected. In that framing, understanding supports a final thumbs-up or thumbs-down.
That rationale weakens as agents become better at checking their own work. Litt is clear that he prefers an agent not to make mistakes. The improvement is desirable, but its effect on the verification case is straightforward.
The more verification belongs to the agent, the less the verification argument leaves the human.
His reframe is to "understand to participate". A software project is not one instruction followed by one final review. It is a long series of loops, each producing a new state of the system and creating the need for another decision about what should happen next.
“It's never just one loop!”
That next direction does not emerge from verification alone. It depends partly on being able to think about the system: what it currently does, how its pieces relate, what possibilities are available, and which change might be worth pursuing. A person with too few concepts for describing the system may still approve or reject an output, but has a narrower basis for thinking fluently and creatively about the next move.
The gap that accumulates when code advances faster than human comprehension is cognitive debt. Unlike technical debt, where code-level shortcuts taken for speed make later modification or extension more costly, cognitive debt sits in people’s heads: the change has shipped, but the people involved may no longer adequately understand what it does.
The term was popularized by Margaret-Anne Storey, a professor of computer science at the University of Victoria, and Simon Willison, co-creator of the Django web framework and a longtime writer on LLM engineering practice. Litt’s slide credits her as Margaret Storey. Her warning, quoted there, is broader than code readability alone.
Even if AI agents produce code that could be easy to understand, the humans involved may have simply lost the plot and may not understand what the program is supposed to do, how their intentions were implemented, or how to possibly change it.— Margaret-Anne Storey, Cognitive debt (emphasis as it appears on Litt's slide)
As with technical debt, the immediate trade can appear acceptable. A team can move quickly without understanding every change. The deferred cost returns when someone needs to decide how the program should evolve and no longer has a reliable mental account of what was built, why it works, or where a new intention belongs.
Once understanding is treated as necessary for participation, the problem becomes how to build it without returning to exhaustive line-by-line reading. Communicating understanding is not a new problem. Education has already developed a great deal of method for it, and what he wants is to borrow the best of those ideas and apply them to working with AI.
Whenever an agent finishes a piece of work, the immediate result is usually a diff. Litt reframes the next question: if a team, whether human or AI, had made a serious effort to explain the change well, what would it hand over? That question is the method behind /explain-diff.
/explain-diff is a Claude Code skill that Litt wrote and published as a gist. A skill is a reusable set of instructions pre-loaded for a coding agent and invoked with a slash command. This one turns a code change into an explainer document. It is his personal tool, not an official Notion or Anthropic product, though he uses it daily and says colleagues have found it useful. It produces three forms: HTML, markdown, Notion docs. The Notion version works when a team wants to discuss the explainer together. At this point, he candidly discloses that he works at Notion and is therefore biased.
The skill file names Martin Kleppmann as the prose model to imitate. The resulting document uses four moves to make a change understandable: background first, intuition before details, interactive figures, and a "literate diff".
Four sections are fixed in the skill file, and so is their order, in both variants. What follows comes from the published skill files themselves, not from the talk narration:
A change to a game’s visual perspective shows how the sequence works. Before describing anything new, the explainer establishes what was already there. It walks through the game engine, giving the reader enough context to see where the change belongs.
Only after that background does the document state the goal: "make the garden feel three-dimensional with 2D drawing tricks". No code has appeared yet. The reader first gets a concrete picture of the intended result, then encounters the machinery used to produce it.
That machinery becomes visible through an interactive figure embedded in the document. Rocks can be dragged around the garden, and their coordinates shift as they move across the flat scene. A few drags show how the same two-dimensional surface can be arranged to suggest depth. The explainer does introduce the term isometric projection, and the figure is what makes it tangible rather than something to take on faith.
Notion had just shipped support for embedded interactive HTML in pages, so a figure like this could sit directly inside the explainer.
The code itself is then presented differently from a typical diff. A raw diff is ordered by filename, one file after another. It provides no explanation and no reading order designed for comprehension. A single concept may be scattered across several files, forcing the reviewer to reconstruct the connection among them.
What Litt calls a "literate diff" reorganizes that same change into prose. The explanation follows a conceptual order, with relevant code snippets embedded where they support the account. Instead of treating the repository’s file structure as the natural order for reading, it places each piece of code at the point where it becomes intelligible. His judgment is that this gets him through review faster than starting with the raw diff.
The finished artifact is a complete explainer that moves from the old system, through the intended effect and an interactive demonstration, into the implementation. He still reads the diff, but only after reading the explainer. Sometimes he prints the document and takes it to a café, where there are fewer distractions.
He relishes the contradiction himself.
“It's beautifully ironic: AI turns an interactive activity into a static paper report I can focus on deeply :)”
However good the explainer is, reading it remains hard work, and it is easy to mistake having read it for having understood it.
A well-written explainer can still leave its reader with the illusion of understanding. Andy Matuschak, an independent researcher working on tools for thought who previously helped build iOS at Apple and led R&D at Khan Academy, has a blunt phrase for this failure: "books don’t work". It is easy to complete the reading while retaining little and understanding less. Text can place an explanation in front of someone, but it cannot make comprehension happen.
Matuschak and Michael Nielsen tried to build the check for understanding into reading itself. Nielsen is a scientist who co-authored the standard textbook on quantum computing, then turned to media designed to help people genuinely understand and remember difficult material. Together, they created Quantum Country, an online introduction to quantum computing with quiz questions embedded directly in the prose.
Those questions use spaced repetition: readers quiz themselves on the same material at widening intervals. Instead of treating reading and testing as separate activities, Quantum Country places the test inside the essay, making recall part of the experience rather than something left until later.
Litt applies that idea to code explainers. At the bottom of an explainer there is now an interactive quiz containing five questions about the change, and he tries to answer them.
His rule is explicit.
Here, review means a person checking whether a code change is fit to go through.
“My rule: I won't send code to others until I can pass the quiz, and I do the same when reviewing others' code.”
“A quiz is a speed regulator.”
That check matters because the AI coding loop can move faster than human comprehension. An agent can finish one change and accept the next prompt before the previous diff has been fully understood. Its fluent output can also create a convincing feeling of understanding, even when the person following along could not yet explain what changed or why.
Litt gives the quiz a specific role.
The quiz regulates the pace at which Litt lets the work advance: the five questions force him to check, mechanically, whether he actually understands the change.
This completes /explain-diff. Litt published the skill and offered it through a QR code during the talk in two variants: one that outputs HTML and one that outputs a Notion page. His second technique is called micro-worlds.
YYYY-MM-DD- format, so files stay time-sorted and out of version control<pre> for code blocks; a custom styled div must include white-space: pre-wrap, or the browser collapses all newlines into a single line, and every block is to be scanned before savingThe Notion variant also asks for example data, but states it as a general rule for all diagrams rather than for the system diagram alone.
A prompt of the same shape, asking for an HTML report with a quiz at the bottom that must be passed before merging, appears in Finding your unknowns on this site. That piece is about articulating unknowns before starting, where the quiz is one closing prompt; this one gives the full skill file, plus the reframing of why understanding matters at all.
The second technique inverts the usual approach: instead of reading the code, have the agent write a separate small program that can be operated, then understand the original code by using it. Both examples come from projects Litt built himself.
The idea predates the current generation of AI tools. Seymour Papert, whom Litt calls a visionary educator, had an idea he called "living in Mathland": to learn mathematics, live in Mathland, just as someone who wants to learn French would go live in France. Papert was interested in environments where children could acquire mathematical understanding naturally, through curiosity and activity. Applied to code, the idea is to build worlds that people can inhabit, where interacting with the environment reveals how a system runs and how it is changing.
The first of Litt’s two cases began last year, when he was writing a Prolog interpreter and found it difficult to picture what was happening inside it. In Prolog, the program consists of rules, and execution proceeds by matching those rules to derive an answer. Reading the interpreter did not give him a clear sense of that process in motion.
He and an agent built a debugger, a tool that exposes a program’s internal state while it runs. Its central interface was a timeline that he could scrub backward and forward. At each point, it showed the rule being evaluated and the stack, the record of which level of nested calls the program was currently inside. He could watch one rule match, see the interpreter move into another call, inspect the intermediate state, and then reverse the timeline to examine the transition again.
The interface also let him leave notes for himself. A moment when a rule behaved as expected might receive a comment such as “nice, we correctly applied that rule”
Scrubbing the timeline, watching rules match, inspecting the stack, and marking the moments that made sense were the activities through which his understanding grew.
“There's a big difference between making a tool for me to debug and letting the agent debug”
The second case began with a more immediate discomfort. Litt moved his personal site from Middleman to Astro, a framework migration that replaced the development framework underneath the site. Claude wrote a script that did the migration. The result was there, apparently finished, but Litt did not know Astro well enough to evaluate what had happened. His assessment was limited to one line.
“I guess that looks about right.”
That uncertainty became the reason to redesign the migration itself. Instead of accepting the completed output, he had Claude build a video-game-style command center that allowed him to perform the migration step by step. The old Middleman site and the new Astro site ran side by side. He pressed buttons to advance through the sequence, while the interface showed both the visible effect of each step and the corresponding change in the file tree.
A migration that had arrived as one large, difficult-to-assess result became a series of observable operations. He could see which files changed, connect those changes to what appeared in the browser, and watch the Astro version of the site come alive piece by piece.
The resulting understanding approached what he would have gained by carrying out the migration by hand, only much faster, because the steps had already been identified and arranged for him.
He presents it as a significant capability: agents can write bits of code that help us humans understand other code.
These two micro-worlds address the understanding of one person. Teamwork introduces a further requirement: people need to understand together.
When two people hold the same mental model, a shared term can call up the same picture for both of them. One person can introduce an idea and the other can catch it, extend it, or challenge it without first reconstructing the entire frame of reference. Without those shared structures, the same vocabulary may point to different pictures.
Litt is interested in environments where teams develop that understanding together. He says this is roughly what Notion is doing; as noted earlier, he works there. Claude and Cursor, an AI code editor, can now run as agents inside Notion, and this is how he does much of his own coding. The technical plans produced by those agents land by default on a collaborative page, where he can comment immediately and bring the work to the team.
“Thinking together, not alone!”
The three techniques offer concrete ways to understand code, but code is only the entrance to a larger question: how people understand how things work, not just to verify, but to participate.
That question was already being asked fifty years ago. Alan Kay, a computer scientist and one of the early designers of the personal computer and the graphical interface, argued that computers should become a medium that helps people think. He proposed that they could go further than books, helping people, especially children, understand the world by interacting with systems rather than only reading about them.
One image from Kay’s paper A Personal Computer for Children of All Ages captures that idea through a small reversal. At first glance, the kids appear to be watching video on a tablet. They are actually playing an interactive game and editing its code as they play so that they can understand physics. By changing the rules and watching the results, they are working with a simulation: the system’s rules run as a program that can be observed, tested, and altered. The image itself is a hand-drawn line illustration, not a photograph.
Litt closes this lineage with an astronaut meme. Its text runs "wait, the point of computers is to create new dynamic simulations to help people understand complex concepts?" answered by "always has been". Alan Kay’s own photograph appears on the gun-holding side.
That is also Litt’s position.
For Litt, AI strengthens that possibility because it has made creating simulations so accessible. He calls that beautiful. Having AI teach us is, in his view, one of the greatest possibilities computing has ever opened up, and it is the reason he remains optimistic about the future.
He closes with the choice that follows from that possibility.
“The point was always to augment, not just automate.”
If we build the right tools, we can now understand the world better than we ever could before. We don't have to merely take ourselves out of the loop, we can get deeper in the loop too. It's up to us.— Geoffrey Litt, closing the talk
geoffreylitt.com · 2026-07-02 · Geoffrey Litt, Design Engineer at Notion. The written version of his talk at the AI Engineer conference in July 2026, slide by slide across 35 slides. This piece reproduces his claims and methods without adding evaluation, implications or recommendations; his own judgments are attributed throughout.
/explain-diff skill variants
gist.github.com · published by the author. The subsection on what the skill mandates is taken from these two files rather than from the talk narration; the four section names and the format rules are grouped as they appear, with rules common to both variants separated from those specific to each. This is his personal skill, not an official Notion or Anthropic product.
margaretstorey.com · 2026-02-09 · Margaret-Anne Storey, Professor of Computer Science at the University of Victoria. Slide 9 of the talk quotes this post; the quotation here was checked against the original and cognitive debt is explained from it. Litt's slide credits her as Margaret Storey.
Every image inside a .source-figure on this page is a quoted talk slide, individually attributed and linked back to the original. The site's content security policy does not permit third-party images, so these are served as local copies, uncropped and otherwise unmodified. The concept diagrams (the three-frame progression, the diff comparison, the speed regulator, and the two self-built tools) were redrawn here from the originals, as noted in their captions.