Hiro development journal

Reliable direct retrieval for Hiro journal updates

Detailed development update Machine-readable JSON

Executive summary

The public Hiro journal was audited after ChatGPT Voice could not retrieve a dated update that remained accessible in a normal browser and regular ChatGPT. Direct production HTTP tests showed that the existing HTML and JSON URLs already returned clean 200 responses, correct content types, no cookies, and identical bodies for browser, curl, generic-bot, GPTBot, and ChatGPT-style user agents.

OpenAI's retrieval tool nevertheless rejected the dotted dated URL before issuing a normal page request, while search discovery returned no result because the journal is intentionally noindex. The site now offers hyphenated date aliases, stable latest-update endpoints, an llms.txt discovery document, explicit robots access, and a public diagnostics report so AI systems do not need to depend on dotted paths or search indexing.

A new automated validator exercises the deployed HTML, JSON, discovery, robots, and diagnostics endpoints across representative user agents. It checks status codes, redirects, cookies, MIME types, response equality, body completeness, and the full versioned JSON schema after successful deployments.

After direct ChatGPT Voice retrieval remained inconsistent, the journal indexing policy was changed from unlisted/noindex to public and indexable so Voice can use web search as a redundant retrieval path.

A Gemma 4 12B reliability review compared the local configuration with the official Google QAT model card, current llama.cpp server controls, current upstream issue reports, and observed GPU state. The model should fit a 12 GB RTX 5070 at the 4K context; the leading risks are competing VRAM allocation, an unpinned runtime executable, and missing explicit flash-attention, KV-cache, memory-fit, and observability settings.

Work completed

Production retrieval audit

Completed
  • Both bballstatistics.com and www.bballstatistics.com were tested for the dated HTML page and full JSON endpoint.
  • Browser, curl, GPTBot-compatible, generic-bot, and ChatGPT-User request headers all received HTTP 200 with the same response type and no Set-Cookie header.
  • The HTML response was static and complete without client-side JavaScript. The JSON response contained the full journal entry rather than metadata alone.
  • No server-side user-agent discrimination, challenge page, authentication requirement, or redirect difference was observed.

Stable AI retrieval aliases and discovery

Implemented
  • Each dotted journal date now receives equivalent hyphenated HTML and JSON aliases, avoiding URL parsers that treat dotted path segments conservatively.
  • Stable /hiro/latest and /hiro/latest.json endpoints always expose the newest complete update.
  • The machine-readable journal index now includes schemaVersion 1 plus stableUrl and stableJsonUrl fields for every entry.
  • A root llms.txt document identifies the journal index, latest update, full JSON, and retrieval diagnostics URLs.
  • An explicit robots.txt allows /hiro/ and /llms.txt while the journal pages retain noindex metadata. Direct retrieval is supported without asking search engines to index the journal.

Automated post-deployment validation

Implemented
  • The validator discovers the latest date from the journal index and checks index, latest, hyphenated, legacy dotted, robots, discovery, and diagnostics endpoints.
  • For browser, curl, generic-bot, and ChatGPT user agents it requires HTTP 200, no redirect, no cookie, correct MIME type, a nontrivial body, and byte-identical content.
  • The latest JSON must include schemaVersion, date, title, executive summary, workstreams, decisions, validation, current state, and next steps with non-empty full-content arrays.
  • A deployment-status GitHub Actions workflow runs the validator against both apex and www production hostnames after successful deployment and can also be launched manually.

Voice-compatible search discovery

Implemented
  • Removed noindex metadata from generated journal HTML.
  • Added an explicit sitemap covering the journal index, latest alias, and every stable dated page.
  • Kept robots access explicit and preserved full HTML and JSON direct retrieval endpoints.
  • The journal remains absent from the NBA site navigation, but search engines are now permitted to discover it.

Gemma 4 12B on 12 GB research and local diagnosis

Completed
  • The official QAT Q4_0 GGUF is approximately 6.5 GiB, leaving theoretical headroom on a 12 GB GPU for a modest context and runtime buffers.
  • Observed GPU allocation was approximately 10.7 GiB of 12.2 GiB while LM Studio was active, leaving insufficient clean headroom for a separately launched fully offloaded server.
  • The launcher invokes llama-server by bare command name, but that command was not resolvable in the inspected shell; an NVIDIA CUDA backend exists under LM Studio and should be pinned explicitly or replaced with a separately versioned official runtime.
  • Current llama.cpp supports automatic device fitting, flash attention, quantized KV caches, explicit micro-batching, prompt-cache controls, and per-slot metrics. The launcher does not currently set most of these.
  • Recent upstream Gemma 4 reports include CUDA and experimental MTP instability, so the initial reliable profile should avoid multimodal projection and speculative MTP until a text-only baseline is proven.

Decisions and reasoning

Validation and evidence

CheckStatusResult
Pre-change production HTTP matrix passed Both hostnames returned 200 with text/html or application/json as appropriate for browser, curl, generic-bot, GPTBot, and ChatGPT-style user agents; no cookie or differential response was observed.
OpenAI retrieval-tool reproduction passed The direct dotted URL was rejected as unsafe by the retrieval layer even though independent HTTP requests succeeded, reproducing the user-visible mismatch between retrieval surfaces.
Frontend production build passed Journal generation, TypeScript compilation, and the Vite production build completed successfully after the retrieval changes.
Local production-preview retrieval matrix passed The final validator completed 50 requests with zero failures across HTML, full JSON, robots, llms discovery, diagnostics, and cache-busting query-string endpoints. All representative user agents received byte-identical content.
Post-deployment production retrieval matrix passed Both apex and www production hostnames passed 42 of 42 requests each with zero failures. Browser, curl, generic-bot, and ChatGPT-style agents received 200 responses, correct MIME types, no redirects or cookies, identical bodies, and complete JSON.
Apex query-string compatibility failed-external Vercel returned a JavaScript security checkpoint and HTTP 403 for apex journal URLs with query parameters across all tested user agents. Equivalent www URLs returned clean 200 responses. No application user-agent rule caused the difference.
Indexability and discovery build passed The generator produced indexable HTML and a valid sitemap, and the complete TypeScript/Vite production build passed.
Gemma runtime research and environment inspection passed Confirmed the local 6.98 GB model file, RTX 5070 12.2 GB capacity, approximately 10.7 GB current VRAM allocation, missing llama-server command resolution, installed LM Studio CUDA backend, and current upstream runtime controls and known Gemma 4 issue reports.

Current state

Next steps