<?xml version="1.0" encoding="UTF-8"?>
<!--
  https://www.truveil.app/sitemap.xml — referenced from deploy/robots.txt.
  Served from the build output root (deploy/), alongside _headers and robots.txt.

  Every <loc> is the CLEAN url and must stay byte-identical to the rel=canonical
  declared on that page. The .html forms 308-redirect to these, so listing a
  .html url here would point Google at a redirect.

  TRAILING SLASHES ARE NOT UNIFORM, and the difference is measured, not assumed:
    /analysis/                     KEEPS its slash. It is a directory index
                                   (deploy/analysis/index.html); /analysis
                                   308-redirects to /analysis/.
    /analysis/<slug>               has NO slash. These are files
                                   (deploy/analysis/<slug>.html); both
                                   /analysis/<slug>/ and /analysis/<slug>.html
                                   308-redirect to the bare form.
  So the index and the articles redirect in OPPOSITE directions inside the same
  folder. No single find-and-replace normalises both. Verified by HTTP against
  the live site on 2026-08-19; re-verify rather than trusting this note if the
  directory layout changes.

  Deliberate exclusions:
    /app  — carries <meta name="robots" content="noindex, follow">. Listing a
            noindexed page here would be a contradictory signal: the sitemap
            asks for indexing while the page refuses it.
    /404  — the error page. It resolves 200 at /404 via clean-url matching and
            is noindexed for exactly that reason; it is not content.

  <lastmod> is present on the eleven /analysis/ urls and /faq, and absent on
  the other eight. That asymmetry is deliberate rather than an oversight. The analysis
  pages have a real, stated content date: each article carries a "Current as of"
  line on the page and datePublished in its JSON-LD, so the sitemap states the
  same date those pages state about themselves. The six launch pieces state
  20 August 2026; the Local Law 144 and incident-review pieces state
  19 September 2026; the FTC and Model AI Governance Framework pieces state
  6 October 2026, and the /analysis/ index carries the date of its most
  recent entry. /faq states its own "Current as of" date, so it carries it.

  The other eight still have no date worth stating. The commits touching them
  are metadata and navigation changes, so a per-file git date would claim a
  content change that did not happen. Deriving a truer date would require
  classifying which commits count as content, which is a judgement rather than
  something git records. Still omitted rather than guessed. Add it to any of the
  eight when that page gains a real content date to state.

  /samples is the eighth. It is dateless for the same reason: the page states
  no date about itself. The reports it lists each carry their own generation
  timestamp on their cover, but that is the artefact's date, not the page's,
  and a sitemap <lastmod> that moved every time one report was regenerated
  would claim a content change the listing did not make.

  No <changefreq> or <priority>: Google ignores both.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url><loc>https://www.truveil.app/</loc></url>
  <url><loc>https://www.truveil.app/vision</loc></url>
  <url><loc>https://www.truveil.app/methodology</loc></url>
  <url><loc>https://www.truveil.app/samples</loc></url>
  <url><loc>https://www.truveil.app/integrate</loc></url>
  <url><loc>https://www.truveil.app/pricing</loc></url>
  <url><loc>https://www.truveil.app/privacy</loc></url>
  <url><loc>https://www.truveil.app/terms</loc></url>
  <url>
    <loc>https://www.truveil.app/faq</loc>
    <lastmod>2026-10-06</lastmod>
  </url>

  <url>
    <loc>https://www.truveil.app/analysis/</loc>
    <lastmod>2026-10-06</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/ftc-ai-agents-records</loc>
    <lastmod>2026-10-06</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/model-ai-governance-framework</loc>
    <lastmod>2026-10-06</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/nyc-local-law-144-ai-hiring-agents</loc>
    <lastmod>2026-09-19</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/ai-agent-incident-review</loc>
    <lastmod>2026-09-19</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/ai-agent-audit-trail-requirements</loc>
    <lastmod>2026-08-20</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/difc-regulation-10-ai-evidence</loc>
    <lastmod>2026-08-20</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/singapore-agentic-ai-framework</loc>
    <lastmod>2026-08-20</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/eu-ai-act-agent-deadlines</loc>
    <lastmod>2026-08-20</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/eu-ai-act-article-14-agents</loc>
    <lastmod>2026-08-20</lastmod>
  </url>
  <url>
    <loc>https://www.truveil.app/analysis/dpdp-rules-2025-ai-agents</loc>
    <lastmod>2026-08-20</lastmod>
  </url>

</urlset>
