What I learned letting two agents maintain a website
Field Notes, 2026-05-12
We Love Claude keeps a Claude feature guide current: two agents crawl the apps and open PRs. The hard part wasn't the agents.
We Love Claude is a guide to Claude's features that updates itself: a living reference you can explore, not a static page that goes stale. Two agents crawl the desktop and web apps, notice what has changed, research it, update the site, and open PRs so the guide stays current. Here's what surprised me building it.
The hard part wasn't the agents
Detecting change is easy. Detecting change that matters is not. My first version opened a pull request every time a button moved or a label re-rendered. The real work was teaching the agent to tell UI noise from an actual feature shift.
The desktop crawler was the hard part
If one piece was genuinely hard, it was the desktop crawler. Claude's desktop app runs on Electron, and crawling a desktop app is a different problem from crawling a web one. Pointing an agent at a web app is straightforward. Pointing one at an Electron app is not. I stepped away for about a week, came back with a clearer head, and found the workaround that got it working. Persistence helps. So does leaving a problem alone long enough to see it differently.
PRs, not auto-merge
It would have been satisfying to let the agents publish directly. It would also have been a step too far. A human gate means a wrong edit never ships silently, and that single constraint is what makes autonomous maintenance something I can trust.
Two agents, not one, because the desktop and web apps differ so much in what they offer. Anthropic often gates key updates behind one app or the other, so treat them as a single surface and you miss a lot of what matters.
More field notes