<?xml version="1.0" encoding="UTF-8"?>
<!--
  Centram sitemap.

  Rules this file follows, so it does not drift again:

  1. Blog URLs are EXTENSIONLESS. Production serves /blog/<slug>; the .html form
     is 301-redirected to it (blog/server.js), so it must never be listed here.
     /webpi and /os are extensionless for the same reason: each is served from
     its own directory index by an explicit route, never as a .html URL.
  2. Only pages that ship are listed, and a sitemap must never advertise a URL
     that answers 404. /webpi is the canonical concept-page URL. Do not use this
     file to record which source files are withheld from the deployment: it is
     served publicly, so that inventory belongs in the repository, not here.
  3. Priority reflects the current information architecture:
     home 1.0 > demo/docs 0.9 > papers/blog/webpi 0.8 > blog posts and
     join 0.6 .
     Every blog post is 0.7, with no exceptions.
     2026-07-30 clarity pass use that date; untouched pages retain 2026-07-28.
     Keep the dates split honestly rather than restamping unchanged pages.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://centram.org/</loc>
    <lastmod>2026-07-30</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://centram.org/docs.html</loc>
    <lastmod>2026-07-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://centram.org/papers/</loc>
    <lastmod>2026-07-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://centram.org/blog/</loc>
    <lastmod>2026-07-28</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <!--
    Blog posts. Eight static files in www/blog/ plus one row seeded into the
    MySQL `posts` table by blog/setup-db.js. All nine are linked from
    blog/index.html, so none of them depends on this file to be reachable.
  -->
  <url>
    <loc>https://centram.org/blog/centram-forge</loc>
    <lastmod>2026-07-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://centram.org/blog/forge-developer-guide</loc>
    <lastmod>2026-07-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://centram.org/blog/ai-human-collaboration</loc>
    <lastmod>2026-07-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <!--
    DEPENDENCY: this post has no file in www/blog/. It is upserted into the
    `posts` table by blog/setup-db.js and rendered by blog/views/post.ejs.
    railway.toml runs setup-db.js before the server starts, so the row is
    present whenever the site is up. Remove this entry at the same time if the
    slug is ever added to the DELETE list in blog/setup-db.js, and remove the
    card in blog/index.html with it.
  -->
  <url>
    <loc>https://centram.org/blog/the-case-for-decentralized-ai</loc>
    <lastmod>2026-07-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://centram.org/economy</loc>
    <lastmod>2026-08-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://centram.org/webpi</loc>
    <lastmod>2026-07-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://centram.org/os</loc>
    <lastmod>2026-08-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://centram.org/join.html</loc>
    <lastmod>2026-07-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>
