data flow — registries → helper → XML response A new post = a new sitemap entry. Zero human edit. Per-request generation. The registries are the source of truth; the sitemap is a projection. a31_blog.ts ALL_POSTS { slug, title, description, date }[] → /blog/<slug> with lastmod = date a31_sama.ts ALL_SAMA { slug: "sorted" | "architecture" | … }[] → /sama/<slug> b32_sitemap.ts (const) STATIC_URLS ["/", "/blog", "/sama/v2", "/guides", …] → load-bearing fixed routes b32_sitemap.ts · renderSitemap(urls) pure · deterministic · no I/O · XML-escapes & and < sibling test — empty list · single url · with/without lastmod · order preserved · special-char escape GET /sitemap.xml → 200 application/xml; charset=utf-8 · Cache-Control: public, max-age=3600 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url><loc>https://tdd.md/blog/sama-v2-workingset-cross-repo-baseline</loc><lastmod>2026-05-27</lastmod></url> … No static file. No human edit. The next /sitemap.xml fetch after a deploy already lists every new post.