<?xml version="1.0" encoding="UTF-8"?>
<!--
  Truthful static sitemap (L-03). Lists only stable crawlable documents already
  selected for public discovery. The app is a HashRouter SPA, so fragment URLs are
  fragments of this same document rather than separate crawlable pages; the two
  auth entries that used them were removed.

  Per-object share documents (/s/:slug, /s/u/:username, /s/five/:id, /dna/:username)
  are server-rendered by apps/web/worker.js but are NOT enumerated here: dynamic
  discovery needs an eligibility/privacy-removal contract first. See
  docs/product/DECISIONS.md "[PROPOSED - pending PO] 2026-08-24 - Launch sitemap
  stays truthful and static".

  Verification note (stage-4 audit revision 4): the meaningful check is that no
  loc element contains a fragment, not that the file contains no hash character
  at all. The exact command is recorded in the L-03 section of
  docs/sprints/LAUNCH-2026-08-24-PUNCHLIST.md.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://groovestack.app/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
</urlset>
