<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>ZeroDiff</title><description>ZeroDiff Documentation</description><link>https://zerodiff.org/</link><atom:link href="https://zerodiff.org/feed_rss_created.xml" rel="self" type="application/rss+xml" /> <managingEditor>Jeff Williams</managingEditor><docs>https://github.com/zero-diff/zerodiff/</docs><language>en</language> <pubDate>Mon, 16 Mar 2026 04:11:55 -0000</pubDate> <lastBuildDate>Mon, 16 Mar 2026 04:11:55 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.17.7</generator> <image> <url>None</url> <title>ZeroDiff</title> <link>https://zerodiff.org/</link> </image> <item> <title>Boss-Fight Coding</title> <description>&lt;h1&gt;Boss-Fight Coding&lt;/h1&gt; &lt;p&gt;&lt;code&gt;Decades of hand-crafting code and we still ended up with Workday and Jira!&lt;/code&gt;&lt;/p&gt; &lt;p&gt;For systems development, gen/AI can reduce cognitive load on parts of the process we&#39;ve always known have the most impact: trackable requirements, falsifiable acceptance criteria, meaningful tests and unemotional adversarial analysis based entirely on facts. If we improve these parts of the process, it doesn&#39;t matter who writes the code, quality goes up!&lt;/p&gt; &lt;p&gt;Let&#39;s take a beat to think through the reality of system development:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Hand-crafted code is often garbage, and the older and bigger it gets, the more true this is. (Human overrated)&lt;/li&gt; &lt;li&gt;A spoonful of sewage in a glass of wine is a glass of sewage. (AI overrated)&lt;/li&gt; &lt;li&gt;We cannot enter a P1 firefight with an AI that wrote the code — today we need context, situational awareness and understanding! (AI overrated)&lt;/li&gt; &lt;li&gt;We built the wrong thing — or we built the thing no one wanted. (Human overrated)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;These somewhat contradictory things can all be true &lt;em&gt;because writing code is just one part of what is mostly a messy, mundane business activity&lt;/em&gt;. &lt;/p&gt; &lt;p&gt;But we can remedy many of the messy problems if we adapt the banking industry&#39;s LoD2 regulatory process for gen/AI-based development — a process I call &lt;em&gt;Boss-Fight Coding&lt;/em&gt;.&lt;/p&gt;</description> <link>https://zerodiff.org/blog/2026/03/15/boss-fight-coding/</link> <pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate> <source url="https://zerodiff.org/feed_rss_created.xml">ZeroDiff</source><guid isPermaLink="true">https://zerodiff.org/blog/2026/03/15/boss-fight-coding/</guid> </item> <item> <title>Context Curator</title> <description>&lt;h1&gt;Context Is Everything!&lt;/h1&gt; &lt;p&gt;For much of 2025 this was my experience of agentic gen/AI coding:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Start a task, Claude Code takes a while to warm up until it hits a sweet spot where it reliably produces consistent, good work for many turns, and then, blammo!, &lt;em&gt;context collapse&lt;/em&gt;. At which point my only options are &lt;code&gt;/clear&lt;/code&gt; or &lt;code&gt;/compact&lt;/code&gt;. Arg!&lt;/p&gt; &lt;/blockquote&gt; &lt;h2&gt;Context Collapse&lt;/h2&gt; &lt;p&gt;We know from the &lt;a href=&#34;https://arxiv.org/html/2502.05167v2#S5&#34;&gt;NoLiMa paper&lt;/a&gt; that longer contexts become diffuse which result in the haystack problem: earlier signals that lack lexicographical matching get buried in the mass of tokens. At some point the agent starts to go haywire — often when we&#39;re near the context window limit. This is super frustrating because it comes without warning and interrupts flow. Once this happens, I find that &lt;code&gt;/clear&lt;/code&gt; is the only workable option. I wanted a better option than to simply start over.&lt;/p&gt; &lt;h2&gt;Introducing Context-Curator&lt;/h2&gt; &lt;p&gt;&lt;a href=&#34;https://github.com/0x6a77/context-curator&#34;&gt;https://github.com/0x6a77/context-curator&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Context-curator is a set of Claude Code slash commands that allow you to manage context in a task-oriented way. (You can read below how context-curator came to exist.) The general idea is that context, which includes the CLAUDE.md files, really should be task-specific so that Claude Code laser focuses on just what&#39;s needed for the task.&lt;/p&gt; &lt;p&gt;Now I can warm up a context and save it as part of a task, and when I encounter context collapse, I just reload the warmed-up context. Or when I return to a task, I get the warmed-up context. (If we reload a context within the cache window, we&#39;ll save tokens. This will usually be true for &lt;code&gt;/resume&lt;/code&gt; after a collapsed context.)&lt;/p&gt;</description> <link>https://zerodiff.org/blog/2026/02/21/context-curator/</link> <pubDate>Sat, 21 Feb 2026 00:00:00 +0000</pubDate> <source url="https://zerodiff.org/feed_rss_created.xml">ZeroDiff</source><guid isPermaLink="true">https://zerodiff.org/blog/2026/02/21/context-curator/</guid> </item> <item> <title>Pelican Rides a Bicycle</title> <description>&lt;h1&gt;Pelican Rides a Bicycle&lt;/h1&gt; &lt;p&gt;Below are two SVG solutions to the Simon Willison&#39;s &lt;a href=&#34;https://github.com/simonw/pelican-bicycle/blob/main/README.md&#34;&gt;benchmark&lt;/a&gt;: &lt;code&gt;&#34;Generate an SVG of a pelican riding a bicycle.&#34;&lt;/code&gt;&lt;/p&gt; &lt;h3&gt;Claude Sonnet 3.5:&lt;/h3&gt; &lt;p&gt;&lt;img alt=&#34;claude-3-5-sonnet-20240620.svg&#34; src=&#34;claude-3-5-sonnet-20240620.svg&#34;&gt;&lt;/p&gt; &lt;h3&gt;Claude-Code:&lt;/h3&gt; &lt;p&gt;&lt;img alt=&#34;pelican-bicycle.svg&#34; src=&#34;pelican-bicycle.svg&#34;&gt;&lt;/p&gt; &lt;h3&gt;What Changed?!&lt;/h3&gt; &lt;p&gt;As agentic gen/ai exploded in 2025, it felt like Willison&#39;s benchmark became a solvable problem &lt;em&gt;if we used these new agentic powers:&lt;/em&gt; skills, sub-agents, tool-use and more. Using Claude-Code, I built a pipeline that now solves this problem.&lt;/p&gt; &lt;p&gt;The Github repo &lt;a href=&#34;https://github.com/0x6a77/pelican-rides-a-bicycle&#34;&gt;github.com/0x6a77/pelican-rides-a-bicycle&lt;/a&gt; let&#39;s you replicate this work and see an example of Claude-Code skills with tool-calling.&lt;/p&gt;</description> <link>https://zerodiff.org/blog/2025/12/15/pelican-rides-a-bicycle/</link> <pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate> <source url="https://zerodiff.org/feed_rss_created.xml">ZeroDiff</source><guid isPermaLink="true">https://zerodiff.org/blog/2025/12/15/pelican-rides-a-bicycle/</guid> </item> <item> <title>Return to ZeroDiff</title> <description>&lt;h1&gt;Return to ZeroDiff&lt;/h1&gt; &lt;p&gt;After a near decade-long break, I&#39;ve returned to ZeroDiff with a new perspective: it isn&#39;t just for hardware, it&#39;s a universal approach to product design and iteration. When we got clobbered in 2016 I needed a break, so I became a contractor with a focus on cloud compute, systems programming and data systems. I shaped that work into a what I thought might be a startup, &lt;a href=&#34;https://karrots.app&#34;&gt;Karrots&lt;/a&gt;, but with two kids in college I needed to give everyone a couple years break from startup stress and grind.&lt;/p&gt; &lt;p&gt;Eventually I want to return to robots and hardware, but because my life these days is mostly systems software at scale, I want to share some of the way that I have applied ZeroDiff to software over the years. The goal now is to run more formal experiments and write about them.&lt;/p&gt;</description> <link>https://zerodiff.org/blog/2025/11/22/return-to-zerodiff/</link> <pubDate>Sat, 22 Nov 2025 00:00:00 +0000</pubDate> <source url="https://zerodiff.org/feed_rss_created.xml">ZeroDiff</source><guid isPermaLink="true">https://zerodiff.org/blog/2025/11/22/return-to-zerodiff/</guid> </item> </channel> </rss>