Coverage gaps surfaced during the Phase 3a/3b/3c orbital-vehicle pass. Two layered gaps:
- 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.
- 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
Coverage gaps surfaced during the Phase 3a/3b/3c orbital-vehicle pass. Two layered gaps:
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):
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:
Tier C — Mars surface-page fleet gaps (7 entries)
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)
Per-tier sequencing rule
Acceptance
🤖 Generated with Claude Code