{
  "schemaVersion": 2,
  "date": "2026.08.02",
  "publishedAt": "2026-08-02T11:22:46-07:00",
  "timeZone": "America/Los_Angeles",
  "title": "Moving the Hiro journal to a dedicated subdomain",
  "publicationStatus": "Published and production-validated",
  "executiveSummary": [
    "The Hiro development journal has been reworked to use https://hiro.bballstatistics.com as its canonical public origin, with the journal index at the subdomain root.",
    "All generated journal pages, JSON indexes, aliases, feed entries, discovery files, sitemap URLs, validation checks, and IndexNow submission settings now target the dedicated subdomain.",
    "The NBA statistics homepage no longer links to the Hiro journal, and its own sitemap and robots metadata no longer advertise journal content.",
    "The new hostname is active through a DNS-only Cloudflare CNAME and Vercel TLS; production validation exposed two physical-file routing collisions, and targeted precedence rules were added for the journal root and sitemap."
  ],
  "workstreams": [
    {
      "title": "Journal URL migration",
      "status": "Deployed and production-validated",
      "details": [
        "Changed canonical HTML metadata and all current internal journal links from the NBA site's /hiro path to root-relative paths on the Hiro subdomain.",
        "Changed machine-readable index URLs, Atom identifiers and links, sitemap URLs, llms.txt endpoints, retrieval diagnostics, and IndexNow host settings to hiro.bballstatistics.com.",
        "Kept historical journal source statements intact because they document facts and URLs that were true when those entries were published."
      ]
    },
    {
      "title": "Host routing and legacy redirects",
      "status": "Completed in source",
      "details": [
        "Added a host-conditioned Vercel rewrite that serves the existing generated journal directory at the root of hiro.bballstatistics.com.",
        "Added permanent redirects from the old apex and www /hiro paths to equivalent paths on the new subdomain.",
        "Added cleanup redirects so an accidental /hiro path on the new subdomain resolves to the canonical root-relative URL.",
        "After production showed that Vercel's physical NBA index and sitemap files took precedence over the catch-all rewrite, added two narrowly scoped host routes that override those exact collisions without changing NBA-host behavior."
      ]
    },
    {
      "title": "NBA site separation",
      "status": "Completed in source",
      "details": [
        "Removed the Hiro development updates link from the NBA site's opening page.",
        "Removed the old root-level Hiro HTML and llms.txt aliases from the NBA deployment surface.",
        "Replaced the NBA site's journal-only sitemap with a homepage sitemap and moved journal-specific robots, sitemap, llms.txt, and IndexNow verification files under the journal output used by the subdomain rewrite."
      ]
    },
    {
      "title": "Live domain and retrieval diagnosis",
      "status": "Activated and tested",
      "details": [
        "Confirmed that bballstatistics.com and www.bballstatistics.com are still proxied through Cloudflare and currently serve the Vercel deployment successfully to ordinary HTTP clients.",
        "Confirmed that the AI web retrieval layer still rejects the Cloudflare-proxied bballstatistics.com URLs before returning page content, reproducing the unresolved retrieval problem.",
        "Confirmed that hiro.bballstatistics.com resolves through the project-specific Vercel CNAME with Cloudflare proxying disabled, has a working TLS certificate, and serves the generated journal endpoints.",
        "The first production retrieval workflow made 66 requests successfully except for the journal sitemap content checks; it proved that user-agent and query-string retrieval works on the DNS-only subdomain."
      ]
    }
  ],
  "decisions": [
    "Use one Vercel deployment with hostname-conditioned routing rather than duplicate the journal content in a second repository or build pipeline.",
    "Use exact host-conditioned routes for the two paths that collide with physical NBA build files, while retaining the catch-all rewrite for every non-colliding journal path.",
    "Serve journal URLs at the subdomain root so the public address is concise and independent of the NBA site's /hiro path.",
    "Preserve old public journal URLs with permanent redirects once the new hostname is live.",
    "Keep the journal public and unlisted with noindex metadata, while retaining direct AI discovery endpoints and not blocking the journal in robots.txt.",
    "Recommend a DNS-only Cloudflare CNAME for the new subdomain so requests reach Vercel without passing through the Cloudflare proxy implicated in the unresolved AI retrieval failure."
  ],
  "validation": [
    {
      "check": "Hiro timestamped-entry tests",
      "status": "passed",
      "result": "The journal source identity and same-day preservation tests passed with this entry included."
    },
    {
      "check": "Generated journal validation",
      "status": "passed",
      "result": "The generator produced 56 journal pages and passed timestamp schema, unique identity, subdomain routing, filesystem-override, legacy redirect, homepage separation, aliases, sitemap, Atom, noindex, and IndexNow checks."
    },
    {
      "check": "Frontend production build",
      "status": "passed",
      "result": "TypeScript compilation and the Vite production build completed successfully with this entry and all migration changes included."
    },
    {
      "check": "Live hiro.bballstatistics.com retrieval",
      "status": "passed",
      "result": "DNS and TLS are active. After correcting the root and sitemap routing collisions, the production validator completed 67 requests with zero failures across browser, command-line, generic-bot, and ChatGPT-style user agents. It verified the journal homepage identity, content types, sitemap dates, discovery files, feed, dated entries, latest aliases, JSON schemas, and query-string retrieval."
    }
  ],
  "currentState": [
    "The main migration is deployed and hiro.bballstatistics.com is reachable through DNS-only Cloudflare configuration and Vercel TLS.",
    "The NBA opening page no longer contains a Hiro journal link, and old apex and www /hiro URLs permanently redirect to the new hostname.",
    "Generated journal content remains under the deployment's internal /hiro directory and is presented at root-relative subdomain URLs by Vercel routing.",
    "The journal index and sitemap precedence corrections are deployed, and the production retrieval workflow is green."
  ],
  "limitations": [
    "The existing apex and www hosts remain behind the Cloudflare proxy and continue to be rejected by the AI web retrieval layer before content is returned.",
    "The original Cloudflare-proxied apex and www hosts are still unsuitable as direct AI retrieval origins, so the Hiro subdomain should remain DNS-only.",
    "The NBA and Hiro sites share one deployment, making hostname-routing validation an ongoing regression concern; generated and production checks now cover the known collision paths."
  ],
  "nextSteps": [
    "Keep the strengthened production retrieval workflow enabled for future deployments.",
    "Monitor the DNS-only Hiro hostname and revisit Cloudflare proxying only after the external AI retrieval incompatibility is demonstrably resolved.",
    "Continue publishing future timestamped journal entries at the subdomain root without restoring an NBA homepage navigation link.",
    "Continue using DNS-only mode for the Hiro subdomain while the Cloudflare-proxy incompatibility remains unresolved."
  ],
  "disclosureNote": "This public entry contains no credentials, account identifiers, private deployment IDs, tokens, or security-sensitive configuration values."
}
