Skip to content

fleet + missions: Phase 3d/3e — Apollo missions backfill + Moon/Mars surface-page fleet gaps + Lunar Orbiter 1-5 #311

@chipi

Description

@chipi

Coverage gaps surfaced during the Phase 3a/3b/3c orbital-vehicle pass. Two layered gaps:

  1. Mission-side: /missions has only 3 of 11 crewed Apollo missions (11, 13, 17). The other 8 reuse fleet assets we already have, so the gap is missing mission JSONs + i18n overlays, not new fleet entries.
  2. Fleet-side: 15 surface-page sites (8 Moon + 7 Mars) appear on /moon and /mars but have no fleet entry. Plus 5 Lunar Orbiter (1–5) precursors that are missing entirely.

Per Marko's request: full setup per entry (hero, gallery, links, 14-locale i18n, cross-links). Tier by tier, commit per tier, push when all tiers done. Verify mission ↔ fleet links work after each tier; if needed, update moon/mars surface-site detail to reference missions + fleet assets.


Tier A — Apollo missions backfill + roster augmentation

8 missing mission entries, all reusing existing fleet assets (`apollo-csm-block-ii`, `apollo-lm`, `saturn-v` / `saturn-ib`, `lrv-apollo` on 15–17):

# Mission Year Notes
7 Apollo 7 1968 First crewed Apollo; Earth-orbit CSM shakedown; Saturn IB
8 Apollo 8 1968 First crewed lunar orbit; "Earthrise"
9 Apollo 9 1969 First crewed LM tests (Earth orbit)
10 Apollo 10 1969 Lunar-orbit LM dress rehearsal
12 Apollo 12 1969 Surveyor-3 visit
14 Apollo 14 1971 Shepard's Fra Mauro
15 Apollo 15 1971 First LRV — Hadley-Apennine
16 Apollo 16 1972 Descartes Highlands

Plus an augmentation of `apollo-lm` + `apollo-csm-block-ii` with a per-flight roster (call sign · mission · landing site · current location — CM museum / abandoned on Moon / deorbited).

Tier B — Moon surface-page fleet gaps (8 entries)

Sites currently rendered on /moon with NO fleet entry behind them:

Site id What Agency Year
`luna10` First lunar orbiter Roscosmos (USSR) 1966
`luna24` Sample-return lander (last pre-Chang'e) Roscosmos 1976
`lunar-prospector` Polar H₂O orbiter → impactor NASA 1998–99
`smart-1` First European Moon mission, ion-drive orbiter ESA 2003–06
`chandrayaan1` Found water on Moon; MIP impactor ISRO 2008–09
`lro` Active recon orbiter (LROC = source of every Apollo hotspot image we ship) NASA 2009–
`change1` CNSA's first lunar orbiter CNSA 2007–09
`change6` First-ever far-side sample return CNSA 2024

Tier C — Mars surface-page fleet gaps (7 entries)

Site id What Agency Year
`viking1-orbiter` Companion orbiter to Viking-1 lander NASA 1975–80
`viking2-lander` Viking-2 surface (only Viking-1 currently in fleet) NASA 1976–80
`mars3-orbiter` Companion orbiter to Mars-3 lander Roscosmos 1971–72
`mars6` Soviet lander; signal lost during descent Roscosmos 1973
`mars-odyssey` Longest-lived Mars asset ever, still active NASA 2001–
`beagle2` UK/ESA lander; lost on arrival, found by HiRISE 2015 UKSA / ESA 2003
`exomars-rosalind-franklin` ESA rover (planned 2028 post-Roscosmos pull-out) ESA planned

Tier D — Lunar Orbiter 1–5 (5 entries)

NASA robotic precursors (1966–67) that mapped Apollo landing sites. Five distinct vehicles — parallels how Mariner 4/9 are split out. No surface-page representation (these were orbital), but should appear in /fleet to complete the Apollo support story.

Tier E — Shuttle final-disposition surfacing (small UX polish)

Phase 3c already shipped museum + disaster links on every shuttle entry's `links[]`. Consider adding a structured `final_disposition` field rendered as a dedicated UI row, rather than buried in the description prose. Skip if it'd be redundant with the existing links display.


Per-entry deliverables (Tiers B/C/D and Apollo CSMs roster)

  • Detail JSON in `static/data/fleet//.json`
  • 14-locale i18n overlays (en-US + 13 translations) under `static/data/i18n//fleet//.json`
  • Up to 5 Wikimedia-sourced hero/gallery images with 1×1, 4×3, 16×9 variants + provenance entries
  • Index row in `static/data/fleet/index.json`
  • `fleet-galleries.json` opt-in flag
  • Cross-links: `linked_missions` on each fleet entry; reciprocal `fleet_refs` on the corresponding mission JSONs
  • Where applicable, update moon/mars surface-site metadata so the hotspot panel links to the new fleet entry + the associated mission

Per-tier sequencing rule

  • One tier per commit
  • After each tier: verify mission ↔ fleet links resolve end-to-end on the running build before moving on
  • Push all commits at the end of the slice (single `git push`)

Acceptance

  • `npm run preflight` green on every commit
  • /missions shows all 11 Apollo missions; clicking the vehicle/payload cell in each MissionPanel jumps to the right fleet entry; clicking back from fleet → mission works
  • /moon + /mars hotspot panels link to the corresponding fleet entry where one now exists
  • 14 locales render without missing-key fallbacks for any new entry

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions