Skip to content

PRD-026 — Historical content completeness pass (v0.7)

Status · Shipped Date · 2026-06-09 Tracked by · GH issue #314 Builds on · PRD-004 (Mission Library) · PRD-012 (Spaceflight Fleet) · GH issue #311 (tier-by-tier brief)

Why this is a PRD. Pre-v0.7 the historical record in /missions and /fleet was demonstrably NASA-skewed and Apollo-incomplete: only 3 of 11 crewed Apollo missions were in /missions, the surface-page hotspots on /moon + /mars referenced sites with no fleet entry behind them, and the global pre-2010 record had visible blind spots (no Luna 10, no SMART-1, no Chang'e 6, no Mars Odyssey, no Lunar Orbiter 1–5, no pre-ISS Salyut 2/3/4/5). This PRD captures the work that closed those gaps so future audits have one place to point to instead of seven distinct tier commits.

Gating sentence: Captures the v0.7 retrospective on the historical-coverage backfill — the set of tiers (Phase 3c through Tier G) that filled missing missions, fleet entries, surface-page links, agency representation, and i18n coverage so the orrery honestly represents global space exploration history rather than a NASA-only slice.

Goal

Document the cumulative work that brought /missions, /fleet, /moon, /mars (and connected pages) to a state where:

  1. Every historically significant crewed lunar mission (Apollo 7–17) is in /missions
  2. Every body that ships a surface-page hotspot has a fleet entry behind it
  3. The fleet honestly surfaces non-NASA agencies (Roscosmos, CNSA, ISRO, ESA, UKSA, JAXA, USSF) at parity with NASA
  4. Every fleet entry has en-US + 13 translated overlays (14 locales total)
  5. Every fleet entry has a 5-image Wikimedia gallery with provenance
  6. Every fleet ↔ mission ↔ surface-site cross-link is wired bidirectionally

Motivation

Memory feedback_global_space_program_representation: "Orrery celebrates global space programs, not just NASA". The pre-v0.7 state had /fleet skewed heavily toward NASA hardware with sparse coverage of the Soviet / Chinese / Indian / European programs. /missions had only 3 of the 11 crewed Apollo flights and missed every Apollo-era robotic mission. /moon and /mars hotspots showed surface sites with no fleet entry behind them.

This PRD groups the corrective work as one shipped slice (rather than re-narrating each tier individually).

What shipped (in narrative order)

Phase 3c — Shuttle fleet (commits f6079424a + 79c3c1914)

  • Columbia, Challenger, Discovery, Atlantis, Endeavour, Enterprise (the 6 NASA Space Shuttle orbiters by call sign)
  • X-37B (USSF reusable robotic spaceplane)
  • Buran OK-GLI (Roscosmos atmospheric analog, BTS-002)
  • Each: detail JSON + 14-locale i18n + 5 Wikimedia images + linked_iss_modules (Endeavour / Atlantis / Discovery wired to the 11 ISS modules they delivered)
  • ISS module schema bump: launch_orbiter_fleet_id
  • Fleet entry schema bump: linked_iss_modules

Tier A — Apollo missions backfill + EARTH dest (commit 590afb4f4)

  • 8 missing Apollo missions: Apollo 7 (EARTH), 8, 9 (EARTH), 10, 12, 14, 15, 16 — Apollo 11/13/17 were already present
  • New EARTH value added to the dest enum (schemas, TS type, mission-dest.ts, fly-mission-apply.ts cislunar branch, /missions filter pill, 14 locales)
  • Reciprocal linked_missions updated on saturn-v, saturn-ib, apollo-csm-block-ii, apollo-lm, lrv-apollo, lc-39a, lc-39b
  • Per-mission: base JSON + 14-locale i18n overlays
  • See GH #311 Tier A for the original brief

Tier B — Moon-surface fleet gaps (commit 79ab6b55b)

  • 8 new fleet entries (5 orbiters + 3 landers/sample-return) representing the global lunar exploration record:
    • luna10 (Roscosmos, 1966) — first lunar orbiter
    • luna24 (Roscosmos, 1976) — last successful Soviet sample-return
    • lunar-prospector (NASA, 1998) — Discovery polar orbiter
    • smart-1 (ESA, 2003) — first European Moon mission
    • chandrayaan1 (ISRO, 2008) — discovered widespread surface water
    • lro (NASA, 2009-active) — LROC's 0.5 m/pixel imagery sources every Apollo/Luna/Chang'e hotspot here
    • change1 (CNSA, 2007) — China's first lunar mission
    • change6 (CNSA, 2024) — first-ever lunar far-side sample return
  • moon-sites.json now carries fleet_refs on all 8 site rows so the hotspot panel resolves to the fleet entry

Tier C — Mars-surface fleet gaps (commit 8ace454e8)

  • 7 new fleet entries (4 orbiters + 2 landers + 1 rover):
    • viking1-orbiter (NASA, 1975-80) — first US Mars orbiter; first global Mars map
    • viking2-lander (NASA, 1976-80) — second US Mars lander, Utopia Planitia
    • mars3-orbiter (Roscosmos, 1971-72) — first measurements of Mars upper atmosphere temperature
    • mars6 (Roscosmos, 1973) — 224s of first direct atmospheric telemetry
    • mars-odyssey (NASA, 2001-active) — longest-lived Mars asset ever
    • beagle2 (UKSA / ESA, 2003) — found by HiRISE 2015
    • exomars-rosalind-franklin (ESA, planned 2028)
  • mars-sites.json now carries fleet_refs on all 7 site rows

Tier D — Lunar Orbiter 1-5 (commit 6080a1d9f)

  • 5 NASA precursor orbiters (1966-67) that mapped Apollo landing sites at 60 m/pixel — the highest-resolution global lunar map until LRO began LROC NAC in 2009
  • Parallels how Mariner 4/9 are split out as separate entries

Tier F — Mission counterparts for Tier B (commit d1a15b75b)

  • 4 robotic Moon missions that had fleet entries (Tier B) but no /missions counterpart: luna10, lunar-prospector, smart-1, change1
  • Per-mission: base JSON + 14-locale i18n + reciprocal fleet linked_missions wiring

Tier G — pre-ISS Soviet stations

  • 4 stations: salyut-2, salyut-3, salyut-4, salyut-5 (the two military Almaz + DOS-4 civilian + last Almaz)
  • Completes the global pre-ISS station record (Mir, Skylab, Salyut 1/6/7 were already present)

Cumulative numbers (v0.7 historical-coverage pass)

AssetAddedTotal post-pass
Mission entries12 (8 Apollo + 4 robotic)68
Fleet entries32 (8 shuttle + 8 Moon + 7 Mars + 5 Lunar Orbiter + 4 Salyut)246+
i18n overlay files~520full 14-locale parity across new content
Wikimedia hero images~190with per-image provenance
Cross-link entries~80bidirectional fleet ↔ mission ↔ surface

Acceptance

  • [x] /missions advertises 68 missions (was 56 pre-Tier-A)
  • [x] /fleet has new agency representation at parity — Tier B/C/D/G entries span Roscosmos / CNSA / ESA / ISRO / UKSA / USSF / Boeing OK alongside NASA per feedback_global_space_program_representation
  • [x] /moon + /mars hotspot panels link to the corresponding fleet entry where one exists (8 + 7 sites)
  • [x] Every new entry has en-US + 13 translations; preflight validates 14-locale parity
  • [x] Every new entry has 5 Wikimedia images (4 for change1, 2 for salyut-2 — both due to genuine Commons-category sparsity)
  • [x] preflight green on every commit; docker-e2e green after the count-drift e2e fixes
  • [x] All 7 tier commits pushed to main (see commit history)

Out of scope (deferred)

  • Tier H — operating-site UI per category (orbital vs surface) — was queued during the session; see issue #311 for the open ask
  • Apollo by-call-sign split — discussed early in the session and explicitly declined: every Apollo LM/CM was single-use throwaway hardware, the call sign is effectively just the mission's hardware alias; better captured via per-mission JSON than per-vehicle fleet entries
  • /plan multi-destination porkchop — Mars-only in v0.7 per ADR-076; v0.8 lands the other 11 destinations per RFC-026 + issue #312
  • GH issue #311 — original tier-by-tier brief
  • GH issue #312 — /plan multi-destination porkchop (v0.8)
  • GH issue #314 — this PRD's tracking issue
  • ADR-076 — /plan v0.7 Mars-only decision
  • RFC-026 — /plan v0.8 multi-destination expansion plan
  • AGENTS.md feedback_global_space_program_representation rule

Orrery — architecture documentation · MIT · No tracking