<?xml version="1.0" encoding="UTF-8"?>
<!--
  python-visuals.com sitemap — rebuilt 2026-08-27.

  CHANGES FROM THE 2026-05-20 VERSION, and the reasoning, so the next edit is not a guess:

  1. ADDED /order. It shipped 2026-08-26 and was never listed. The one page that takes
     money from strangers was the one page not advertised to crawlers.

  2. REMOVED the four /legal/* pages. All four carry <meta name="robots" content="noindex">
     in their own <head>, and submitting a noindex URL in a sitemap is a hard Search Console
     error ("Submitted URL marked 'noindex'"). Four of twenty entries were contradicting
     themselves. They stay noindex — that is correct for legal boilerplate — so they simply
     do not belong here. They remain reachable by link and by robots.txt Allow: /.

  3. REAL lastmod dates, derived per-file. Every entry previously read 2026-05-20 — a single
     bulk stamp that had not moved in three months. A lastmod that never changes tells a
     crawler nothing has changed, which is the opposite of the signal wanted here.

  4. DROPPED <changefreq> and <priority>. Google has stated publicly it ignores both. They
     were noise, and a bulk-identical priority ladder is cargo cult rather than information.

  ⚠ lastmod is only honest if it moves when a page moves. If this file is edited by hand and
  the dates are left alone, defect 3 returns silently. Regenerate the dates from the files.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- ── Money pages ────────────────────────────────────────── -->
  <url>
    <loc>https://python-visuals.com/</loc>
    <lastmod>2026-08-26</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/order</loc>
    <lastmod>2026-08-27</lastmod>
  </url>

  <!-- ── Research papers (ADDED 2026-08-30 — the Apeiron trilogy went public) ── -->
  <url>
    <loc>https://python-visuals.com/papers/</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/papers/apeiron-os-white-paper</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/papers/apeiron-case-study</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/papers/apeiron-os-technical-report</loc>
    <lastmod>2026-08-30</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/papers/apeiron-evidence-index</loc>
    <lastmod>2026-08-30</lastmod>
  </url>

  <!-- ── Machine-readable ───────────────────────────────────── -->
  <!--
    ADDED 2026-08-27 (captain instruction). The JSON mirror of /order's packages, LEG-P2 tier 1.

    PRE-CHECKED before listing, because this is precisely where defect 2 above came from:
    it returns 200 application/json and carries NO X-Robots-Tag, so it cannot produce
    "Submitted URL marked 'noindex'". Verified at source, not assumed.

    ⚠ HONEST LIMIT, recorded so nobody later reads a flat fetch count as a verdict on demand:
    a /.well-known/ file is found by CONVENTION, not by crawling — an agent that wants offers
    requests this exact path directly. Listing it here makes the URL ENUMERABLE to search and
    AI crawlers. It does NOT create agent demand, because no standard yet tells an agent to
    ask (MD-LEGIBLE-CARD-01: nothing on six rails carries a trust-bearing offer contract).
    This is a cheap precondition, not a discovery mechanism.

    Baseline for anyone measuring later — 24h to 2026-08-27 16:00Z, Cloudflare GraphQL,
    zone d78bcfb1…, filter clientRequestPath="/.well-known/offers.json": 15 requests, all 200.
    TWELVE were ours (2 curl + 9 bare Mozilla/5.0 in the 10:00Z deploy-verification hour,
    1 at 16:00Z from this session's own probe). Three were desktop Chrome. ZERO declared
    themselves a bot. State the contamination or the number lies.
  -->
  <url>
    <loc>https://python-visuals.com/.well-known/offers.json</loc>
    <lastmod>2026-08-27</lastmod>
  </url>

  <!-- ── Services ───────────────────────────────────────────── -->
  <url>
    <loc>https://python-visuals.com/services/web-design</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/services/ai-automation</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/services/custom-apps</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/services/local-seo</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/services/local-citations</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/services/social-media</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/services/google-business-profile</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/services/ecommerce</loc>
    <lastmod>2026-05-20</lastmod>
  </url>

  <!-- ── Proof ──────────────────────────────────────────────── -->
  <url>
    <loc>https://python-visuals.com/work/</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/work/sydneys-sweets</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/work/blueprint-media</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/work/blackout-media</loc>
    <lastmod>2026-05-20</lastmod>
  </url>

  <!-- ── Company ────────────────────────────────────────────── -->
  <url>
    <loc>https://python-visuals.com/capabilities</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/partners</loc>
    <lastmod>2026-05-20</lastmod>
  </url>
  <url>
    <loc>https://python-visuals.com/about</loc>
    <lastmod>2026-05-20</lastmod>
  </url>

  <url>
    <loc>https://python-visuals.com/ai-fit</loc>
    <lastmod>2026-09-01</lastmod>
  </url>

</urlset>