Runtime
Independent Acceptance Report for the Next IARPA.org Planetary Atlas Release
Report summary
Executive summary. I performed a black-box public-site review of the deployed IARPA.org experience using only publicly reachable pages, rendered route content, and directly openable public assets. The strongest positive finding is that the deployment is visibly and repeatedly labeled as an independe
Key topics
- Runtime
- AI
- Privacy
- Semantic Systems
- Research Archive
- Strategy
- Audit
- Architecture
Research provenance
For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.
Source availability: 70 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.
This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.
Full report
On this page
Scope and executive summary
Executive summary. I performed a black-box public-site review of the deployed IARPA.org experience using only publicly reachable pages, rendered route content, and directly openable public assets. The strongest positive finding is that the deployment is visibly and repeatedly labeled as an independent fictional educational simulation, not a government service, with clear separation between read-only research surfaces and fictional simulation surfaces. I directly observed the homepage rendering in a non-WebGL mode with an accessible two-dimensional fallback message, visible globe controls, visible Simulation Earth controls, a visible event-creation dialog surface, visible deterministic-brief fallback controls, and a large amount of public research content across About, Programs, Research, World, History, Learn, Projects, Contact, Search, Factbook, historical, profile, report, and comparison routes.
Overall acceptance recommendation. Reject pending fixes. That recommendation is driven by directly observed public inconsistencies that are material for release acceptance: the same site presents conflicting route identities and footer language across routes; the same /international/ route surfaced materially different record totals across observations; the Search page links to /site-map/, which returned a public 404 in this test; the comparison route URL suggests countries=denmark while the rendered page showed three different selected profiles; and the project directory simultaneously exposed a populated directory and a “No matching records” empty state. These are not speculative repository issues; they are public runtime findings.
Evidence model used in this report. Direct evidence means I saw the page, control text, route result, redirect, or asset URL in the deployed public experience. Inference means I am interpreting externally visible inconsistencies that are consistent with stale caches, mixed templates, or partial rollout. Recommendation means the action I would require before production acceptance. Where a requested area could not be verified through this black-box environment, I mark it inconclusive rather than passing it. That matters especially for right-click behavior, real double-click behavior, keyboard focus traps, pointer containment, mobile touch execution, browser matrix execution, performance timing, service GET/POST inspection, worker timeout recovery, and cache-control headers. The environment visibly reported WebGL unavailable, and the browsing tooling did not provide HAR/header capture or controlled browser/viewport switching.
Test conditions.
| Item | Observation |
|---|---|
| Test date | 2026-07-26 |
| Locale | en-US |
| Access method | OpenAI web browsing runtime with rendered page extraction and link traversal |
| Device model | Not exposed by tooling |
| Browser brand/version | Not exposed by tooling |
| Viewport sizes | Not exposed by tooling; the requested matrix was not independently executed |
| Network profile | Standard remote browsing path; no throttling or HAR/header inspection available |
| Graphics path | Homepage explicitly reported WebGL unavailable and used the accessible 2D renderer. |
High-level status by acceptance area.
| Area | Status | Basis |
|---|---|---|
| Release identity and coherence | Fail | Conflicting route branding, missing visible build marker, same-route count drift, unversioned observed asset URLs. |
| Basic route health | Partial fail | Major routes loaded, but /site-map/ returned 404 from a live Search-page link. |
| Globe rendering | Partial pass / inconclusive | 2D fallback rendered; WebGL path not observed. |
| Context menu | Inconclusive | Keyboard/right-click/double-click instructions are visible, but invocation was not independently executed. |
| Event creation | Partial pass / inconclusive | Event dialog surface, preview and create buttons are visible; submission and deterministic results were not independently executed. |
| Planet-state visuals | Partial pass / inconclusive | Two image assets were directly opened; full sequence coverage was not independently observed. |
| Current Statistics | Partial pass / inconclusive | Route and read-only framing are clear; nearest-card behavior and interaction were not independently exercised. |
| OpenAI service | Inconclusive | UI surfaces and fallback buttons are visible; capability GET, event POST, and credential handling were not packet-level verified. |
| Accessibility | Partial pass / inconclusive | Accessible copy, skip links, labels, and documented keyboard/reduced-motion support are visible; focus order, traps, SR announcements, and contrast were not independently executed. |
| Responsive and browser coverage | Inconclusive | No independent browser/viewport matrix was available in this test environment. |
| Performance | Inconclusive with concerns | No direct timings; visible FPS label did not expose a numeric value; large PNG globe textures are publicly referenced. |
| Safety and trust | Pass with follow-up | Fictional and non-government labeling is strong and repeated; transport/privacy assertions remain unverified at network level. |
Release coherence and route health
Release-coherence findings. I did not find a single globally visible software build ID, release string, or version marker on the homepage, About, or Search surfaces. A text search for “version” on the homepage extracted no match. What I did find were route-level content freshness markers such as “reviewed 22 July 2026” on the Project Directory and “research cutoff 2026-07-20 UTC” on profile and report pages. That means public readers can see editorial freshness markers, but not a coherent release marker for the deployed software itself.
Direct evidence of runtime inconsistency. Public route identity is inconsistent in ways that are difficult to explain as harmless copy variation. The homepage and About route use Integrated Artificial Reality Planetary Atlas and “fictional educational simulation,” while the /sources/ and /news/ routes present IARPA.org Fictional Education Portal, and their footer language shifts to FICTIONAL EDUCATIONAL RPG. Programs and Research also use Research Earth remains factual, while the homepage and About route use Current Statistics remains factual and read-only. From a black-box acceptance standpoint, that is strong evidence of route-template drift or a partial release that left older route shells live.
Possible stale-route or mixed-deployment symptom. I observed the same public /international/ route produce materially different counts across observations. One observation reported “Search 1,950 public research records,” while a later observation of the same route reported “Search 5,113 public research records” plus Factbook counts. A public route that changes its core headline count this sharply during one acceptance pass is not version-coherent enough for clean sign-off without explanation. I cannot prove whether the cause is stale HTML, hydration replacement, cached fragments, or test-tool rendering variance, but the public result is inconsistent.
Cache-busting and stale-asset risk. Two directly opened atlas image assets were served from stable, readable same-origin paths: /assets/atlas/earth-satellite-high-quality.png and /assets/atlas/planet-states/natural-earth.png. Neither observed URL contained a content hash, build token, or version query string. I could not inspect HTTP cache-control headers in this environment, so I cannot confirm cache policy, but the observed asset naming scheme does not provide URL-level cache busting for these assets. That increases the risk of stale texture mixes after cutover unless cache headers or purge discipline are exceptionally strong.
Host routing. https://www.iarpa.org/ redirected to https://iarpa.org/ in the public runtime. That is good and reduces duplicate-host ambiguity.
Basic route health. The following public routes loaded successfully during black-box traversal: Home, About, Programs, Research, World/International, History, Learn, Projects, Contact, Search, and multiple representative content routes including a Factbook entry, a historical series page, a country profile, a long-form report listing page, and a compare page.
Observed route failure and 404 behavior. The Search page explicitly offered “the site map” as a fallback route when interactive search needs JavaScript, but clicking that live link attempted to fetch /site-map/ and returned 404 Not Found in the browsing runtime. This is the clearest directly observed route-health failure in the acceptance pass. It also means the Search page’s no-JavaScript fallback guidance currently points users to a broken route.
Public status/health routes. I did not discover a public status or health endpoint during menu traversal or visible trust/help navigation. Because this browsing environment could not safely probe arbitrary unlinked URLs, I cannot conclude such a route does not exist; I can only conclude that no public status/health route was obtained in this acceptance pass. That is a deployment-readiness gap because it prevents independent confirmation of release coherence from public health metadata.
Route-health summary.
| Route or surface | Result | Notes |
|---|---|---|
/ | Loaded | 2D fallback visible. |
/about/ | Loaded | Clear non-government labeling. |
/programs/ | Loaded | Brand wording drift: “Research Earth.” |
/research/ | Loaded | Long-form library entry points present. |
/international/ | Loaded | Count drift across observations. |
/history/ | Loaded | Stable informational route. |
/learn/ | Loaded | Stable informational route. |
/projects/ | Loaded | Simultaneous empty state observed. |
/contact/ | Loaded | Direct contact details visible. |
/search/ | Loaded | JavaScript dependency disclosed. |
/site-map/ | Failed | Search-page fallback link returned 404. |
/international/compare/?countries=denmark | Loaded with mismatch | Rendered comparison did not match visible query parameter. |
Globe, events, visuals, and current statistics
Globe and rendering findings. The homepage directly rendered with a visible message that WebGL is unavailable, and that the atlas is using its accessible two-dimensional globe renderer while keeping research routes and simulation controls available. I therefore treat the 2D fallback as directly observed and working at least to the point of page render. I did not independently observe the WebGL path, so the WebGL acceptance area remains inconclusive.
Visible globe controls. The homepage exposes visible control text for rotate, zoom, reset, pause, fullscreen, information density, visual detail, borders, event symbols, historical tour, and HUD panel control. The instrument guide also lists arrow-key rotation, +/- zoom, 0 reset, Space play/pause, and Shift+F10 for menu invocation when the globe is focused. These controls are therefore part of the public runtime surface, but I did not independently execute drag, wheel, pinch, reset, or off-globe pointer containment behaviors in this environment.
Context-menu findings. The public instrument guide states that a focused globe should open the fictional event menu on right-click, double-click, or Shift+F10, and that a click on empty globe space should do nothing. It also states that offscreen event pointers terminate on the visible globe edge and that selecting a dot or event draws a leader line to a compact label. Those are valuable UI contracts, but in this acceptance pass they remain documented behavior, not independently executed behavior. I did not observe the natural-disaster submenu, viewport collision handling, escape dismissal, or highest-layer stacking through direct pointer or keyboard invocation.
Event-builder findings. I directly observed a rendered event-creation surface titled Create an abstract globe event with visible mode toggles for Simple and Advanced academic, visible controls for scenario preset, abstract size, type/configuration, actor class, fictional actor, horizon, qualitative advanced assumptions, and an optional Private browser-local note field. I also observed visible buttons for Preview on globe, Cancel, and Create fictional event & analyze. That establishes that the public runtime exposes the builder UI, but it does not establish that every option opens a valid dialog, that preview actually renders, that submission succeeds, that results are deterministic, or that replay/restore behaves correctly under repetition or worker timeout.
Deterministic and non-targeting safety language is strong. The builder explicitly says the clicked point becomes an invented synthetic cell, exact coordinates are neither displayed nor sent to the consequence service, and nuclear options use abstract normalized system pressure only rather than yield, delivery, blast, fallout, casualty, damage, or targeting calculations. The consequence area also exposes both Generate consequence brief and Use deterministic brief, which makes the deterministic-local-fallback model visible in the UI. Historically reviewed events are also labeled as never rewritten by the model. That is a meaningful trust-positive observation.
Planet-state visual findings. I directly opened two public atlas image assets: a high-quality Earth texture and a planet-state texture labeled natural-earth. The event-builder help text says preview-on-globe temporarily fades the selected supplied planet-state image over the regular Earth texture without changing simulation state, and scenario descriptions explicitly mention nuclear/radiological emergencies, asteroid impacts, climate warming, fire, earthquakes, water disasters, volcanoes, storms, biological events, and other dependencies. However, I did not directly observe the specific nuclear/radiological, asteroid, wildfire, solar-storm, or climate image sequences being requested one by one, nor did I verify reduced-motion parity or WebGL/2D parity for those sequences.
Current Statistics findings. The homepage visibly offers Current Statistics and labels it read-only. It exposes borders, political-state language, statistics source labeling, category filters, and the claim that up to 20 front-facing entities nearest the center of the globe receive connected summary cards. About and Factbook/profile pages reinforce that Current Statistics is factual/read-only and distinct from Simulation Earth. I did not independently exercise the “up to 20 nearest cards” behavior, card/point interaction, rotation updates, leader lines in Current Statistics mode, empty-data diagnostics, or fictional successor-state behavior after a simulated branch. Those remain acceptance gaps.
OpenAI-service findings. The homepage visibly showed a consequence-service state surface: “AI consequences on” and “Checking bounded consequence service…”. The consequence panel also labels itself FICTIONAL NARRATIVE ONLY, states that generated consequence text is fictional and cannot alter authoritative history or metrics, and exposes Generate consequence brief, Use deterministic brief, Replay event visual, and Restore Earth visual. I could not directly inspect a capability GET, event POST, safe status reason, credential exposure, or failure behavior under provider outage at the network level. The local deterministic fallback is therefore UI-visible but not packet-verified.
A noteworthy compare-route defect in the world surface. The compare page URL I opened was .../compare/?countries=denmark, but the visible page stated 3 profiles selected and rendered a comparison table for United States, Türkiye, and Holy See and Vatican City State. For an atlas that exposes “copy comparison link,” this is a serious trust failure because the public URL and rendered state do not align. That defect affects shareability, reproducibility, and regression baselining.
Accessibility, responsive coverage, and performance
Accessibility findings. Public accessibility intent is well documented. The Accessibility route explicitly says the atlas is designed for keyboard use, visible focus, text enlargement, mobile reflow, reduced motion, right-to-left content, semantic headings, printable reports, and a non-WebGL fallback. I also directly observed accessible route structures such as Skip to main content on multiple routes, semantic heading levels, text-labeled controls, and no-account/no-third-party-form language on Privacy and Contact surfaces. Those are good public signs. What I did not independently execute here are keyboard-only globe operation, logical focus order, dialog focus traps, escape semantics, ARIA menu-role validation, screen-reader announcements, color contrast measurement, high-zoom behavior, or touch target measurement. Those remain inconclusive until exercised in real browsers and assistive technology.
Responsive and mobile findings. The public accessibility copy promises narrow-width reflow, wrapping identifiers, and reduced-motion support. The homepage help also documents pointer, touch, wheel, pinch, and keyboard controls. But I did not have tooling that exposed real viewport control for the required matrix of 1920×1080, 1440×900, 1365×768, 1280×720, 1024×768, 768×1024, 430×932, 390×844, and 360×800. Likewise, I did not exercise mobile Chromium or Mobile Safari. From an acceptance standpoint, responsive/mobile coverage is therefore not passed; it is a required post-fix validation area.
Browser coverage findings. The only directly observed rendering path in this acceptance pass was the browsing runtime’s extracted page renderer with WebGL unavailable. I therefore cannot claim Chrome/Chromium, Firefox, Safari/WebKit, Edge, Mobile Chromium, or Mobile Safari passes. This is a strict limitation of evidence, not a statement that those browsers fail. No browser matrix execution means browser compatibility remains a release gate.
Performance findings. I could not produce trustworthy timings for initial load, largest contentful paint, texture load time, layout shift, memory growth, long tasks, detached-element symptoms, or repeated rendering regressions because this black-box environment did not provide DevTools timings, console output, or memory instrumentation. I did directly observe a placeholder-like “Planetary systems— fps” label with no numeric frame-rate value surfaced in the extracted page, and I directly opened two large PNG texture assets. That is enough to say that performance telemetry is not externally evident in this path and that texture payloads are visually heavyweight, but not enough to assign exact performance numbers.
Search and local-processing trust signals. The Search and Privacy pages state that search queries stay in the browser, that international atlas search is processed on the page using a local index, and that the site uses no advertising, analytics, remote fonts, or embedded third-party forms. These are positive privacy and performance-adjacent signals, but without network inspection I treat them as visible policy claims, not fully verified transport facts.
Safety, trust, and deployment readiness
Safety and trust findings. The site strongly and repeatedly labels itself as fictional, educational, independent, and non-governmental. About, Safety, Privacy, Help, History, Learn, and many content pages all reinforce that boundary. The event-builder and scenario text also strongly reject targetable or operational outputs: no real-country targeting, no exact coordinates to OpenAI, no practical weapon/evasion/intrusion detail, and no casualty or physical-effects modeling. The difference between source years and simulation years is also visibly explained through 1999 startup, projection-horizon notices, “reviewed history” labeling, and the host UTC calendar explanation. This is one of the strongest aspects of the public deployment.
Trust weaknesses that still matter. Trust is not only about content boundaries; it is also about runtime coherence and reproducibility. The compare-link/query mismatch, route-brand drift, same-route count drift, broken site-map fallback, and simultaneous populated-plus-empty state in the Project Directory all reduce user confidence that public state is deterministic and shareable. That is especially damaging in a product that visibly emphasizes evidence, correction history, and reproducible comparison.
Deployment-readiness assessment. Based on direct public evidence, the deployment does not yet appear internally version-consistent enough for final acceptance. I cannot prove stale JavaScript/CSS/worker mixtures because I could not inspect network headers or bundle manifests, but the externally visible symptoms are consistent with partial rollout or stale route fragments: inconsistent branding across route shells, inconsistent naming of the principal read-only mode, same-route content drift, a broken fallback route, and a share-link mismatch on the compare surface. I also did not discover a public release marker or public health endpoint that could help an independent observer validate a clean cutover.
Public exposure review. I did not directly observe public ZIP downloads, source bundles, server file indexes, or secret files exposed through the browsed routes. The Project Directory explicitly states that external links are labeled and that no external script, font, pixel, or widget is loaded on that directory page. That said, because I could not probe arbitrary sensitive paths or inspect headers, exposed-file assessment remains bounded to the public pages I traversed.
Remaining unknowns and the evidence required to close them.
| Unknown | Why it matters | Evidence required before acceptance |
|---|---|---|
| WebGL path | Core product promise includes 3D globe | Real browser runs with WebGL enabled across Chrome/Firefox/Safari/Edge; video capture and pass/fail notes |
| Context menu invocation | Major feature; right-click/double-click/Shift+F10 are acceptance items | Browser matrix with keyboard/mouse/touch recordings and event logs |
| Builder submission and deterministic replay | Core educational simulation claim | Manual test videos, deterministic repeated run comparisons, exported state comparisons |
| Texture sequence coverage | Required for nuclear/radiological, asteroid, wildfire, solar-storm, climate | Network log of requested assets and screenshots in WebGL and 2D modes, reduced-motion on/off |
| OpenAI capability GET and event POST | Required service acceptance item | HAR capture, redacted request/response shapes, outage simulation results |
| Cache-control and service-worker behavior | Required release/readiness area | Header dump, service worker registration state, forced-update and cache-purge validation |
| Responsive and mobile coverage | Explicit acceptance requirement | Executed viewport matrix and device matrix with screenshots/videos |
| Accessibility execution | Claims are public, but runtime must be verified | Keyboard-only run, screen-reader run, zoom/contrast checks, focus-trap checks |
| Performance | Required acceptance area | DevTools traces, memory samples, FPS samples, long-task and CLS reports |
Defect register, regression suite, and cutover plan
Defect register.
| ID | Title | Severity | Reproduction steps | Expected result | Actual result | Evidence | Frequency | Affected browsers | User impact | Recommended correction | Acceptance test |
|---|---|---|---|---|---|---|---|---|---|---|---|
| REL-001 | Cross-route product identity drift | Blocker | Open Home, Sources, News, Programs, and Research routes | One release identity, one product name, one canonical mode naming model | Home/About use “Planetary Atlas”; Sources/News use “Fictional Education Portal”; footer shifts to “FICTIONAL EDUCATIONAL RPG”; Programs/Research use “Research Earth” instead of “Current Statistics” | Home/About/Programs/Research vs Sources/News. | Always during this pass | Public runtime under tested renderer | Undermines release identity, trust, and rollback diagnosis | Unify route shells, naming constants, footer copy, and canonical mode labels; invalidate stale route caches | Traverse 20 representative routes and confirm identical product identity and mode terminology |
| REL-002 | Same /international/ route returned inconsistent record totals | High | Open /international/ from one route, then re-open from another route | Stable counts for the same public route at a point in time | One observation showed 1,950 public research records; later observation showed 5,113 public research records and extra Factbook counts | Same route, conflicting totals. | Intermittent or stateful | Public runtime under tested renderer | Users cannot trust route-level metrics or cached snapshots | Investigate SSR/hydration/cache fragment divergence; pin one canonical payload | Re-open the same route 10 times across entry points; counts must remain identical |
| NAV-001 | Search-page fallback link to site map is broken | Blocker | Open Search page and click “the site map” | Fallback route should load a valid sitemap page | /site-map/ returned 404 Not Found | Search page points to sitemap; click produced 404. | Always in this pass | Public runtime under tested renderer | Breaks no-JS/help fallback and weakens route health | Restore sitemap route or remove/bypass the dead link | From Search page, open sitemap successfully and verify 200 OK branded page |
| CMP-001 | Compare-route URL parameter does not match rendered selection | Blocker | Open .../international/compare/?countries=denmark | Rendered comparison should match URL parameter or visibly reject invalid input | Page showed 3 selected profiles and compared United States, Türkiye, and Holy See/Vatican City State | Compare URL and rendered table disagree. | Always in this pass | Public runtime under tested renderer | Share links and regression baselines are not reproducible | Fix query parsing/hydration/state-restore logic; ensure copy-link output round-trips exactly | Open parameterized compare links for 1, 2, 3, and 4 countries; rendered selection must match URL exactly |
| PROJ-001 | Project Directory exposes populated results and “No matching records” empty state simultaneously | High | Open Project Directory without filters | Either list results or empty state, never both | Directory showed 15 records and later also showed “No matching records” with Clear filters | Populated and empty states co-present. | Always in this extracted view | Public runtime under tested renderer | Confuses users and screen readers; indicates state/render bug | Hide inactive empty state from DOM or accessibility tree until needed | Verify default directory render contains records only, then empty state only after a no-match filter |
| DEP-001 | No visible global build/release marker for independent verification | High | Review Home, About, Search, Directory, Reports, Profiles | A cohesive release should expose a visible build/release identifier or coherent public health marker | Only editorial review dates and research cutoffs were visible; homepage text search found no version marker | No visible version/build ID; editorial dates only. | Always in this pass | All | Makes cutover, rollback, and stale-cache diagnosis harder | Add a visible release ID/build hash/date on the homepage/footer and on a public health page | Confirm the same release marker appears on home, trust pages, and health/status surface |
| DEP-002 | Observed texture asset URLs are unversioned and cache-busting is not externally evident | Medium | Open public atlas image assets from the homepage dialog | Assets should be safely cache-busted by hashed filenames or version query strings | Observed URLs used stable readable PNG names with no visible version token | Public asset URLs were unhashed. | Always for observed assets | All | Raises stale-asset risk during deployment | Adopt hashed asset URLs or explicit version query strings, plus documented purge process | After a release, old texture URLs should no longer be reused for changed content |
| PERF-001 | FPS telemetry surface appears blank or unavailable | Medium | Open homepage and inspect systems header | If FPS is exposed, it should display a numeric value or be removed | The page showed “Planetary systems— fps” with no visible number | Blank FPS surface. | Always in this pass | Public runtime under tested renderer | Telemetry UI looks unfinished and offers no diagnostic value | Populate the metric or suppress it in production if unavailable | In production, FPS field either shows a valid value or is fully hidden |
| TRU-001 | Public trust boundary is strong, but transport claims remain unverified | Medium | Review Privacy/OpenAI/help text and service surfaces | Privacy/OpenAI transport claims should be independently verifiable in release acceptance | Page claims kept queries local and omitted private notes/exact coords, but network verification was unavailable | Policy visible; packet proof absent. | N/A | All | Prevents final sign-off on service/privacy acceptance items | Add public API capability/status doc and provide testable outage/privacy evidence | HAR capture must demonstrate no private notes/exact coords and no browser-side credential exposure |
Regression suite. The following Given/When/Then tests should be executed after fixes. They are written as production-facing acceptance tests, not code-level unit tests.
| ID | Given | When | Then |
|---|---|---|---|
| REG-001 | The homepage loads | the page finishes initial render | one canonical release/build marker is visible |
| REG-002 | The homepage loads | www.iarpa.org is requested | it redirects to the apex host and shows the same release marker |
| REG-003 | A visitor opens Home, About, Programs, Research, World, History, Learn, Projects, Contact, Search | each route finishes rendering | product name and fiction/non-government banner are identical |
| REG-004 | The Search page loads | the visitor uses the no-JS fallback links | each fallback route returns 200 and branded content |
| REG-005 | The Search page loads | the visitor opens the site map | the site map route loads successfully |
| REG-006 | A missing route is requested | the server responds | a branded 404 page appears with navigation back to safe routes |
| REG-007 | The World route loads | the route is refreshed five times | record counts remain identical across refreshes |
| REG-008 | The World route loads from Home | it is re-opened from About | headline counts remain identical |
| REG-009 | A compare link contains one country | it is opened in a new tab | exactly that one country is selected |
| REG-010 | A compare link contains two countries | it is opened | exactly those two countries render in order |
| REG-011 | A compare link contains four countries | it is opened | exactly four countries render and nothing else |
| REG-012 | The compare page is updated | “Copy comparison link” is used and the link is reopened | rendered state round-trips exactly |
| REG-013 | The Project Directory loads with no filters | the page renders | results are shown and no empty-state text is present |
| REG-014 | The Project Directory has filters producing zero matches | the page renders | only the empty state is shown |
| REG-015 | The homepage loads in a WebGL-capable browser | rendering completes | the 3D globe path initializes successfully |
| REG-016 | The homepage loads where WebGL is unavailable | rendering completes | the accessible 2D fallback is shown and usable |
| REG-017 | The globe is focused | the user presses arrow keys | the globe rotates |
| REG-018 | The globe is focused | the user presses + and - | zoom changes in bounded increments |
| REG-019 | The globe is focused | the user presses 0 | the camera resets |
| REG-020 | The globe is focused | the user presses Space | play/pause toggles |
| REG-021 | The globe is focused | the user right-clicks a valid globe point | the context menu opens above all panels |
| REG-022 | The globe is focused | the user double-clicks a valid globe point | the same context menu opens |
| REG-023 | The globe is focused | the user presses Shift+F10 | the same context menu opens |
| REG-024 | The context menu opens near a viewport edge | collision handling runs | the menu stays fully visible within the viewport |
| REG-025 | The context menu is open | the user presses Escape | the menu closes and focus returns logically |
| REG-026 | The context menu is open | the user clicks outside it | the menu closes |
| REG-027 | The context menu is open | the user enters the natural-disaster branch | a valid submenu opens and remains keyboard navigable |
| REG-028 | The event builder opens in guided mode | the user tabs through controls | focus order is logical and visible |
| REG-029 | The event builder opens | the user switches to advanced mode | advanced fields appear without breaking labels or focus |
| REG-030 | A fictional event is configured | the user selects Preview on globe | a non-destructive preview appears |
| REG-031 | A fictional event is previewed | the user cancels | preview visuals clear completely |
| REG-032 | A fictional event is configured | the user chooses Create fictional event & analyze | an event is created without blocking the UI |
| REG-033 | The same event inputs are reused twice | both runs complete | deterministic numeric results match |
| REG-034 | An event exists | the user chooses Replay event visual | the event visual replays consistently |
| REG-035 | An event visual has replayed | the user chooses Restore Earth visual | the prior Earth texture/state returns cleanly |
| REG-036 | The consequence service is unavailable | the user requests a consequence brief | deterministic fallback remains available and visuals do not fail |
| REG-037 | The consequence service is available | capability GET is checked | status, reason, and enabled state render coherently |
| REG-038 | A browser request is inspected | an OpenAI consequence action occurs | no provider credential is exposed to the browser |
| REG-039 | A browser request is inspected | a private local note exists | the note is not transmitted to the service |
| REG-040 | A browser request is inspected | a globe point is used for an event | exact coordinates are not transmitted |
| REG-041 | Nuclear/radiological preview is selected | preview begins | the correct planet-state asset sequence is requested and displayed |
| REG-042 | Asteroid preview is selected | preview begins | the correct planet-state asset sequence is requested and displayed |
| REG-043 | Wildfire preview is selected | preview begins | the correct planet-state asset sequence is requested and displayed |
| REG-044 | Solar-storm preview is selected | preview begins | the correct planet-state asset sequence is requested and displayed |
| REG-045 | Climate preview is selected | preview begins | the correct planet-state asset sequence is requested and displayed |
| REG-046 | Reduced motion is enabled | preview or transition begins | automatic rotation and motion-heavy transitions are reduced or disabled |
| REG-047 | The same event is previewed in WebGL and 2D fallback | both views complete | visual meaning and labeling remain functionally equivalent |
| REG-048 | Current Statistics mode is active | the mode is entered | activation is immediate and read-only framing remains visible |
| REG-049 | Current Statistics mode is active | the globe centers on dense data | no more than 20 front-facing nearest cards appear |
| REG-050 | A Current Statistics card is selected | the user activates it | the related point/leader line/dossier synchronizes correctly |
| REG-051 | A Current Statistics point is selected | the user activates it | the related card/dossier synchronizes correctly |
| REG-052 | Rotation occurs in Current Statistics | the globe turns | connected cards update to the new center-nearest set |
| REG-053 | Current Statistics has no data for a tested case | the UI renders | a clear empty-data diagnostic appears |
| REG-054 | A fictional successor-state branch exists | Current Statistics is viewed | source years and carried-forward uncertainty remain visible |
| REG-055 | Keyboard-only navigation is used site-wide | the visitor traverses main controls | every primary feature is reachable without a pointer |
| REG-056 | A modal dialog is open | tab and shift-tab are used | focus remains trapped within the dialog |
| REG-057 | Browser zoom is set to 200% | the user navigates major routes | content reflows without horizontal scrolling except where legitimately unavoidable |
| REG-058 | A screen reader is used | event and country information is read | names, labels, status, and dossier access are understandable |
| REG-059 | Contrast is measured on all primary controls | WCAG checks run | all required contrast thresholds pass |
| REG-060 | The product runs at 1920×1080, 1440×900, 1365×768, 1280×720, 1024×768, 768×1024, 430×932, 390×844, and 360×800 | panels open and close in each viewport | globe, cards, menus, dialogs, and controls do not obscure each other unacceptably |
Release blockers.
- Resolve cross-route identity drift so that all public routes present the same product name, footer family, and mode vocabulary.
- Fix the live Search-page site-map link and provide a branded 404 experience for truly missing routes.
- Fix compare-link/query-state reproduction so URL state exactly matches rendered state.
- Resolve the same-route
/international/record-count inconsistency. - Remove simultaneous populated/empty state leakage from the Project Directory.
- Add a visible release/build marker and a public status/health signal suitable for independent acceptance.
- Complete real-browser verification for the unproven core features: WebGL, context menu invocation, event submission, replay/restore, provider fallback, texture sequences, accessibility execution, responsive matrix, browser matrix, and performance traces.
Prioritized remediation backlog.
| Priority | Backlog item | Why it ranks here |
|---|---|---|
| P0 | Unify route identity, footer identity, and mode naming | Public release coherence is currently broken |
| P0 | Fix Search → site map fallback and branded 404 handling | Direct user-facing broken route |
| P0 | Fix compare-link query/state hydration or parsing | Reproducibility and trust defect on a core analysis route |
| P0 | Stabilize /international/ route counts across entry points | Indicates route-payload inconsistency |
| P1 | Eliminate co-rendered empty states from data lists | Accessibility and usability defect |
| P1 | Publish visible release/build marker and public health/status surface | Required for independent verification and rollback diagnosis |
| P1 | Add cachable-but-versioned asset strategy for globe textures | Reduces stale-asset risk on cutover |
| P1 | Finish browser/viewport/accessibility/performance acceptance matrix | Required to convert inconclusive areas to pass/fail |
| P2 | Decide whether FPS belongs in production UI; if yes, make it reliable | Avoid unfinished telemetry surfaces |
| P2 | Provide public-facing trust note for deterministic/OpenAI fallback behavior with testable status reason | Improves external verification of the narrative component |
Production smoke-test checklist.
- Confirm the homepage loads on apex and
wwwredirects cleanly to apex. - Confirm the visible release/build marker matches the release candidate sheet.
- Open Home, About, Programs, Research, World, History, Learn, Projects, Contact, and Search; confirm identical product identity and fiction/non-government banner.
- Open Search and verify the site map link works.
- Request a guaranteed-missing route and verify branded 404 behavior.
- Open World and confirm counts remain stable across refresh.
- Open a compare link with known parameters and confirm rendered selections match URL exactly.
- Open Project Directory and confirm no hidden empty state is exposed.
- Verify 2D fallback path with WebGL disabled.
- Verify WebGL path in a WebGL-capable browser.
- Invoke context menu by right-click, double-click, and
Shift+F10. - Create a fictional event, preview it, create it, replay it, and restore Earth visuals.
- Run provider-available and provider-unavailable consequence checks.
- Validate one nuclear/radiological preview, one asteroid preview, one wildfire preview, one solar-storm preview, and one climate preview.
- Validate Current Statistics card/point/dossier synchronization.
- Run one keyboard-only traversal and one screen-reader smoke pass.
- Record one desktop and one mobile capture for final evidence retention.
Cache-purge and post-cutover checklist.
- Purge CDN/cache entries for route shells that showed branding drift: Home-adjacent trust pages,
/sources/,/news/,/programs/,/research/,/international/, and compare routes. - Purge globe texture assets and any planet-state overlays if content changed.
- If a service worker exists in production, bump its version and verify old clients update cleanly.
- Confirm new build marker appears on the homepage and trust pages after purge.
- Open the two previously observed texture assets and confirm the current release is being served.
- Re-run compare-link round-trip tests from a cold browser profile.
- Re-run the Search → site map path from a cold browser profile.
- Re-open
/international/from multiple entry points and confirm count stability. - Validate no stale footer identity remains on
/sources/or/news/. - Capture dated screenshots and a short route-health log immediately after cutover.
Rollback-validation checklist.
- Confirm rollback target release/build marker is documented before traffic change.
- After rollback, confirm apex and
wwwhosts both expose the rollback marker consistently. - Re-open the previously broken routes and ensure the rollback state is coherent and intentionally known.
- Re-test compare-link parameter rendering from the rollback build.
- Re-test
/international/count stability in the rollback build. - Re-test Project Directory default and empty-state rendering in the rollback build.
- Purge caches again after rollback so mixed forward/backward route shells do not remain.
- Retain pre-rollback and post-rollback screenshots, route titles, and build-marker evidence for audit.
Final acceptance position. The deployed public site already demonstrates a thoughtful trust boundary, strong fictional labeling, a visible 2D fallback, substantial public content coverage, and a visible deterministic-vs-OpenAI narrative separation. But a release this interaction-heavy and trust-sensitive cannot be accepted while route identity drifts, a no-JS fallback link returns 404, the compare page ignores or overrides its public URL state, the Project Directory leaks contradictory states, and multiple critical interaction areas remain unproven in real browsers. On the evidence available today, the correct decision is Reject pending fixes.