site: copy edit — 1 piece tightened

This commit is contained in:
2026-08-07 01:43:26 -04:00
parent 6267b94a66
commit ef43202466
2 changed files with 21 additions and 4 deletions
+17
View File
@@ -5228,3 +5228,20 @@ Amazon: n-a (a free web page).
- **the-phone-in-your-hand** was the fourth candidate and the closest call of the run. It is genuinely good and it is ranked second on today's shortlist. Held for one reason: its only available image is a 1200×630 OG card, and having already accepted one OG-card hero this run (`the-listening-museum`, above, where there was no alternative at all), taking a second would make it a habit rather than an exception. It is the strongest ungraduated candidate on the board and stays that way until someone can screenshot it. - **the-phone-in-your-hand** was the fourth candidate and the closest call of the run. It is genuinely good and it is ranked second on today's shortlist. Held for one reason: its only available image is a 1200×630 OG card, and having already accepted one OG-card hero this run (`the-listening-museum`, above, where there was no alternative at all), taking a second would make it a habit rather than an exception. It is the strongest ungraduated candidate on the board and stays that way until someone can screenshot it.
- **the-pickle-guys** clears the bar on story and hero and was held on access: Atlas Obscura place pages are Cloudflare-blocked, so the mandatory fact-check would have to run entirely against thepickleguys.com, and the interesting claims (eighty pushcarts, the brine timeline) are historical rather than checkable on a shop's own site. It went into a bundle instead, which is the right home for it today. - **the-pickle-guys** clears the bar on story and hero and was held on access: Atlas Obscura place pages are Cloudflare-blocked, so the mandatory fact-check would have to run entirely against thepickleguys.com, and the interesting claims (eighty pushcarts, the brine timeline) are historical rather than checkable on a shop's own site. It went into a bundle instead, which is the right home for it today.
- **newold-computer** remains ungraduated for the third run running, on the same hero gap flagged when it was captured. Recording the count because it is now the second candidate (with `project-espanol`) held purely on media rather than merit. - **newold-computer** remains ungraduated for the third run running, on the same hero gap flagged when it was captured. Recording the count because it is now the second candidate (with `project-espanol`) held purely on media rather than merit.
## 2026-08-07 — copy edit
Fresh-eyes sonnet subagent over all twenty-five pieces written this run (20 find bodies, 2 bundle blurb-plus-intros, 3 review bodies). **One file changed; everything else left alone.**
The edit:
- `morningprint` (review) — 495 → 431 by the subagent's count, 483 → 419 by the main session's. Six cuts: the "Only the artwork and the verse print. No title, no branding." pair; the closing line about a fresh continuation raising the bar for the next; the "Without that, block art is stripes." tag; "with a one-line style note each"; "not as bytes but"; and the byte-level-protocol clause. Accepted on review — no fact, name, link or claim changed, and the subagent kept the whole July-2026 failure paragraph intact, which was the right instinct and the reason the piece is worth reading.
Two reservations recorded rather than left to be rediscovered:
1. **"Only the artwork and the verse print. No title, no branding." was a fact, not a flourish.** The README states it and the restraint is part of what makes the object good. Nothing became *wrong* — the blockquote's "one copy, no way to subscribe" carries the adjacent idea — but the review is now quieter about the deliberateness of what is left off the paper. Same shape as the `creakwork12` cut on 08-03.
2. **"Without that, block art is stripes."** was the sentence that made the `ESC 3` paragraph land for a reader who does not know what line spacing does. The preceding clause ("makes the block rows fuse into continuous fields") still carries the fact, so this is a readability loss rather than an information loss.
The counting-convention drift is now measured for the fourth run running and is unchanged in character: the subagent ran 12 words high on the one file it counted (495 vs 483 before, 431 vs 419 after), the same em-dash and hyphenated-compound tokenisation gap noted on 08-02, 08-03 and 08-04. Both counts put the finished review inside the 250450 band, so it does not matter here either. Not worth a fix; worth not re-deriving a fifth time.
Format exception honoured again: `joke-eggs-break-up` is 10 words against a 4090 budget. The subagent was told up front that the joke-find format is the setup and the punchline and nothing else (precedent: `joke-cashew` 13 words on 08-03, `joke-ground-beef` 11 on 08-02, `joke-two-eyes` 14 on 08-01) and correctly left it alone.
One non-finding worth keeping: all nineteen other find bodies measured 6182 words against the 4090 band, and the subagent reported finding no ad copy, no throat-clearing openings and no redundant closes in any of them or in either bundle. On a twenty-find day that is the capture stage writing to the charter rather than being trimmed into it afterwards.
+4 -4
View File
@@ -19,12 +19,12 @@ import hero from './hero.jpg';
> A receipt printer in a kitchen wakes before its owner and prints one piece of block art with a verse under it — 80mm wide, one copy, no way to subscribe. When the cutter drops, the day's edition is out. > A receipt printer in a kitchen wakes before its owner and prints one piece of block art with a verse under it — 80mm wide, one copy, no way to subscribe. When the cutter drops, the day's edition is out.
The medium is the whole argument. The canvas is 203 dpi, one bit of colour, 48 monospace columns, and a character set frozen in 1981: CP437, the original IBM PC glyphs. Tone comes from `░ ▒ ▓ █` ramps, edges from half-blocks, solid black from inverted runs where even the spaces print. The trick that makes any of it possible is line spacing — by default the printer leaves a white seam between rows, and an `ESC 3` value calibrated by hand makes the block rows fuse into continuous fields. Without that, block art is stripes. The medium is the whole argument. The canvas is 203 dpi, one bit of colour, 48 monospace columns, and a character set frozen in 1981: CP437, the original IBM PC glyphs. Tone comes from `░ ▒ ▓ █` ramps, edges from half-blocks, solid black from inverted runs where even the spaces print. The trick that makes any of it possible is line spacing — by default the printer leaves a white seam between rows, and an `ESC 3` value calibrated by hand makes the block rows fuse into continuous fields.
Each morning a Google Apps Script assembles a brief — the date, the season, the weather, and a rolling archive of the last fourteen pieces with a one-line style note each — and asks Claude for one committed idea sharply unlike everything in that archive. The reply comes back not as bytes but as a declarative spec: styled text operations plus a verse. A fifty-line renderer turns that into ESC/POS and POSTs it to a Raspberry Pi Zero W, which writes it straight to the printer's character device. Only the artwork and the verse print. No title, no branding. Each morning a Google Apps Script assembles a brief — the date, the season, the weather, and a rolling archive of the last fourteen pieces — and asks Claude for one committed idea sharply unlike everything in that archive. The reply comes back as a declarative spec: styled text operations plus a verse. A fifty-line renderer turns that into ESC/POS and POSTs it to a Raspberry Pi Zero W, which writes it straight to the printer's character device.
The pair on the corkboard above is the exception that makes the rest work. A `continues` field sits empty almost every day, but when the day itself hands over a thread — a holiday arriving after its eve — the piece may answer an earlier one and record which. July 3 sends up a single scout rocket, *testing the dark. Tomorrow, the whole sky*; July 4 answers, *the scout kept its word*. A fresh continuation raises the bar for the next, which is what keeps it a surprise rather than a tic. The pair on the corkboard above is the exception that makes the rest work. A `continues` field sits empty almost every day, but when the day itself hands over a thread — a holiday arriving after its eve — the piece may answer an earlier one and record which. July 3 sends up a single scout rocket, *testing the dark. Tomorrow, the whole sky*; July 4 answers, *the scout kept its word*.
The most useful section of the README is the failure. Structured output guarantees the shape of the JSON, not the size of the strings in it, and one run in July 2026 returned a valid spec with a 3,155-character title of repeated filler. The archive kept it, every later prompt replayed it, and within a week the printer was producing a page of the model talking to itself instead of artwork. Specs are now length-checked before printing and the archive is sanitised on read, so a poisoned entry is dropped once rather than fed back for a fortnight. The most useful section of the README is the failure. Structured output guarantees the shape of the JSON, not the size of the strings in it, and one run in July 2026 returned a valid spec with a 3,155-character title of repeated filler. The archive kept it, every later prompt replayed it, and within a week the printer was producing a page of the model talking to itself instead of artwork. Specs are now length-checked before printing and the archive is sanitised on read, so a poisoned entry is dropped once rather than fed back for a fortnight.
You will need an Epson TM-T20III or another ESC/POS printer with CP437, a Pi, and an API key; the Pi-side script isn't in the repo, though its entire contract is "write each POST body to `/dev/usb/lp0`". MIT-licensed, with the byte-level protocol fully documented. What you get for that is a daily thing with no feed, no archive to scroll and nothing to refresh — yesterday's goes on the corkboard. You will need an Epson TM-T20III or another ESC/POS printer with CP437, a Pi, and an API key; the Pi-side script isn't in the repo. MIT-licensed. What you get for that is a daily thing with no feed, no archive to scroll and nothing to refresh — yesterday's goes on the corkboard.