<?xml version="1.0" encoding="UTF-8"?>
<!--
  URL FAMILY: https, apex host, extensionless paths (2026-09-21). Cloudflare
  Pages answers /about.html with a 308 to /about, so every .html <loc> here was
  advertising a redirect, and a sitemap URL that redirects is a URL the crawler
  discounts. The <loc>s now name what the host actually serves, and the same
  family is used by every canonical tag, every nav link and every JSON-LD @id.
  scripts/check-site.py enforces the agreement; do not add a .html <loc>.

  Domain history: kundalinispines.com was written here as a placeholder on
  2026-07-29 and turned out to be the real domain. Live on Cloudflare Pages
  since 2026-08-30, on this host since 2026-09-01.
-->
<!--
  LASTMOD IS THE DATE THE PAGE'S CONTENT LAST CHANGED, taken from git
  (git log, the commit date of the last commit touching the file; note that
  a double hyphen cannot be written inside this comment), refreshed Sept 20
  2026 when every
  entry still said July or August after weeks of edits. transmissions.html
  takes the date of data/transmissions.json, because that is what changes
  on it. A lastmod older than the page is worse than none: it tells the
  crawler there is nothing new to fetch. Update the touched page's line in
  the same commit as the edit. (Sept 29 2026: all ten moved together -
  every page's footer Music link changed to /music, and the home carousel's
  data file renamed a track. They first went out dated the 28th, but those
  commits landed after local midnight; corrected, since IndexNow now
  announces exactly the pages whose lastmod moves - scripts/indexnow-notify.py.)
  Refreshed again Sept 22 2026: all nine had
  fallen behind the Sept 21 release (the URL family, the hero poster, the
  magnifier, transmission 009), and Search Console that night reported the
  home page still URL is unknown to Google, never crawled. A sitemap that
  advertises older dates than the pages gives the crawler a reason not to
  come back, which is the last thing an unindexed site needs.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://kundalinispines.com/</loc>
    <lastmod>2026-10-02</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <!--
    /music was removed from this sitemap on 2026-07-28, when it became a
    redirect to /#tracks (a redirect must not be advertised as a canonical URL),
    and ADDED BACK on 2026-09-28 as the real thing: the Rise Up track directory,
    28 tracks in plain HTML. Priority 0.8, level with Transmissions: it is the
    one page that describes the album track by track, which is what song-title
    searches and AI answers need. Its lastmod follows data/tracks.json as well
    as music.html, because scripts/build-music-page.py writes one from the other.
  -->
  <url>
    <loc>https://kundalinispines.com/music</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <!--
    /merch.html added 2026-08-11, when Merchandise took one of the two spine
    nodes freed by merging Our Story, The Messengers and Our Ethos into
    /about.html. Priority 0.6: below About and Archive at 0.7 because there is
    no store behind it yet — the page states the line exists and is not open.
    Raise it when there is something to buy.
  -->
  <url>
    <loc>https://kundalinispines.com/merch</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <!--
    /purchase.html added 2026-08-20: the three Rise Up editions. Priority 0.7,
    a notch ABOVE merch.html's 0.6, because the comment above explains that 0.6
    is "below About and Archive at 0.7 because there is no store behind it yet"
    — and this is the page that finally has one described.

    IT IS STILL A ROUGH-IN and no payment provider is wired, so it is not 0.8.
    Raise it when the editions can actually take money.

    purchase-success.html and purchase-cancelled.html are DELIBERATELY ABSENT.
    They are transactional endpoints reached only after a checkout round trip;
    indexing them would put "TRANSMISSION RECEIVED" in search results for
    people who never bought anything.
  -->
  <url>
    <loc>https://kundalinispines.com/purchase</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://kundalinispines.com/connect</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://kundalinispines.com/transmissions</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kundalinispines.com/transmissions/001</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://kundalinispines.com/archive</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://kundalinispines.com/archive/artwork/001</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kundalinispines.com/about</loc>
    <lastmod>2026-09-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
