---
title: "Blind judges preferred the rewrite, so we rewrote 751 posts"
canonical: https://dxdev.com/blog/blind-judges-justified-751-rewrites/
datePublished: 2026-10-13
---
Blind judges preferred the rewrite, so we rewrote 751 posts.

## What the judges said and what the sweep did

Opus preferred the rewrite in 12 of 20 and Sonnet in 14 of 20. The sweep rewrote 751 posts, and the pass-2 sweep applied 106 posts to the blog repo.

`rewrite.py` now refuses duplicate sentences and escaped titles, and the one-voice check skips the Related list. Alongside the rewrites we merged 17 duplicate posts with redirects and fixed 22 corpus defects. The tests behind the guards were `test_blog_rewrite_dupes_titles`, `rewrite` and `rewrite_facts`, 70 passing, and the split gate was green.

## The part that wasn't about posts

The session manifests are rewritten by the hook, the close command, the attach command, two sweeps and an identity refresh. The ticket for it was about making those rewrites go through one locked, atomic helper.

That helper is `manifest_io.mutate`. We migrated `session_hook`, `session.py close`, `session_attach`, both sweeps and `refresh_session_identity` onto it. The race test fails before the migration and passes after it.

## What the review flagged in the helper

The helper was reviewed by Codex at high effort. The review ran 338.2 seconds and came back with this as its first item:

> **High: `lib/manifest_io.py:133-146`: lock-open failures silently revert to unlocked read/modify/write.**

If the lock file could not be opened, the code carried on with an unlocked read, modify and write, silently.

The review produced five findings in total. The commit records "Codex review 5 findings applied".

## Where it ended up

The ticket landed with the split gate green: beelink 15366 and local 1508. It began at 2:18 AM and took 33 minutes, and the review was logged at 2:32 AM, inside that window.

The race test fails before and passes after. The review's first item was a different question: what `mutate` does when it can't open its lock. At lines 133 to 146 of `lib/manifest_io.py`, the answer was that it quietly went back to the unlocked write.
