<?xml version="1.0" encoding="UTF-8"?>
<!--
  Hand-maintained. Nothing generates this file, so nothing tells you when it
  drifts: a stale <lastmod> and a missing <url> both fail silently and look
  exactly like a correct sitemap.

  After ANY change under web/src/app/, run:  ./scripts/check-sitemap.sh
  It flags dead entries, stale dates and public routes that were never added.
  It is NOT wired into any hook — if you do not run it, nobody does.

  <lastmod> must be the page's last content commit. The exact git command is in
  scripts/check-sitemap.sh, which also prints it when a date is stale.

  It is deliberately NOT repeated here. A literal double hyphen is illegal
  inside an XML comment, and the copy that used to sit on this line made this
  file non-well-formed XML from the day it was written until 2026-08-10 —
  served that way to crawlers the whole time. The instruction on how to
  maintain the file was the thing breaking it, and neither the checker (which
  greps, and passed) nor a browser (which renders it) could see that. Validate
  with a real parser after editing this file:
    python3 -c "import xml.etree.ElementTree as E; E.parse('web/public/sitemap.xml')"
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <!-- Company home -->
  <url>
    <loc>https://allfiber.app</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Product: AllFiber Color Code -->
  <url>
    <loc>https://allfiber.app/color-codes</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://allfiber.app/color-codes/12-fiber</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allfiber.app/color-codes/24-fiber</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allfiber.app/color-codes/48-fiber</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allfiber.app/color-codes/96-fiber</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allfiber.app/color-codes/144-fiber</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Product: AllFiber Splice Code -->
  <url>
    <loc>https://allfiber.app/splicecode</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Supporting content.
       The next two <lastmod> dates were set BY HAND on 2026-08-10: their content
       changed through AppCta's default body, not through their own page.tsx, so
       check-sitemap.sh cannot see it (shared-component note in its header) and
       will not flag them stale. Do NOT "correct" them back to the page.tsx log.

       ⚠️ Put comments like this OUTSIDE <url>, never between <loc> and <lastmod>.
       The checker pairs them with `</loc>[^<]*<lastmod>`, which cannot cross a
       `<` — a comment there silently drops the entry from the parse. Measured:
       doing exactly that took the count from 16 to 14 and still printed PASS. -->
  <url>
    <loc>https://allfiber.app/splicing/color-code</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://allfiber.app/guides/splice-closure</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Field guides (blog) -->
  <url>
    <loc>https://allfiber.app/blog</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allfiber.app/blog/fiber-optic-color-identification</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allfiber.app/blog/fiber-color-code-lookup-app</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://allfiber.app/blog/tia-598-color-code-chart</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Legal -->
  <url>
    <loc>https://allfiber.app/privacy</loc>
    <lastmod>2026-07-28</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://allfiber.app/terms</loc>
    <lastmod>2026-04-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
