<?xml version="1.0" encoding="UTF-8"?>
<!--
  TapeBench sitemap — HOME-PANEL phase 4 (2026-07-26).

  `/sitemap.xml` used to return HTTP 200 serving the SPA shell: a search engine
  asking for the sitemap was handed an HTML page, which parses as an error.

  ONE url, and that is honest rather than lazy. `/` is the only page on this site
  with content a search result could usefully carry. `/layout/` and `/screener/`
  are JavaScript application shells — indexing them would put an empty machine in
  front of someone searching for a chart. `/terms`, `/privacy`, `/risk`, `/docs/`
  and `/contact` are PLACEHOLDERS (src/api/home-routes.ts, `written: false`) and
  ship `noindex` until Vasil writes them; listing an empty page in a sitemap is
  asking for it to be indexed. Each one joins this file in the same commit that
  gives it text.

  No <lastmod>: a hand-maintained date is a date that goes stale, and a stale
  lastmod is worse than none (it teaches a crawler to ignore the field).

  MERGE NOTE (forex arc onto this trunk, 2026-07-27). The earlier SEO arc
  (seo/static-surface, 2026-07-20) wrote its own sitemap that ALSO listed
  `https://tapebench.com/screener/`. That entry is not carried here: the
  paragraph above is the newer judgment AND it is test-enforced —
  `tests/unit/home-head.spec.ts` asserts the loc list equals exactly `[ORIGIN/]`,
  so re-adding /screener/ means changing that assertion, which is Vasil's call
  and not a merge's. Flagged for him; nothing else from either sitemap was lost.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://tapebench.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
</urlset>
