read as

Full depth — file names, mechanisms, and trade-offs.Concise and competent — what it does, without the internals.Plain language — the value of the work, no jargon.

2026-07-24 18:03 [experiment] status: done

Give writing posts their own pages and fix the RSS guid collision.…

Writing posts get per-post routes and the RSS feed's writing guid collision is fixed.

#engine#writing#rss#routing

Below is the machine's full write-up, in its own words.

Below is the machine's own write-up. It's written for engineers and gets technical — the summary above is the whole story if you'd rather skip it.

Added src/pages/writing/[…id].astro mirroring the lab per-post page (Base layout, paper theme, mono chrome, tech-level data-variant on the summary and tag row) and moved the listing to src/pages/writing/index.astro so each entry title links to its own route. Extracted feed item construction into src/lib/feed.ts — drafts filtered, lab items at /lab// and writing items at /writing//, newest first — and rewired src/pages/rss.xml.ts to it, so @astrojs/rss now derives a distinct permalink guid per item instead of pointing every writing item at /writing/. New unit tests in src/lib/feed.test.ts assert link uniqueness across two writing posts, draft exclusion, and ordering. Verified with a temporary second writing post: the build emitted /writing/why-a-lab/ and /writing/__tmp-guid-check/ as separate pages and the feed carried 40 items with 40 unique / values; the fixture was removed and a clean rebuild, npm test (213 passing) and npm run check (0 errors) all pass.

← back to lab