PRD-025 · Finalize the forward roadmap — comprehensive per-agency coverage through ~2035
Status · Draft (re-scoped for v0.8) · re-analyzed 2026-07-11 Date · 2026-06-09, re-scoped 2026-07-11 Owner · Marko Closes into · GH epic (v0.8 content track) + per-agency slice PRs · tracking issue #313 Builds on · PRD-004 (Mission Library) · PRD-012 (Spaceflight Fleet) · backlog
docs/research/forward-roadmap-2026-07-11.md(comprehensive refresh; supersedes the 2026-06-09 backlog, which is kept for history)
What changed on 2026-07-11 (the re-scope). The original PRD-025 locked a minimum representative cut — 24 missions + ~37 fleet out of ~100 candidates, "≥1 flagship per agency," with ~75 entries explicitly deferred to "v0.9+". Marko's direction: that's the wrong frame — finalize each major agency's forward roadmap comprehensively. Cover China's full Moon program, all of Russia's plans including their own station (ROS), all of ESA's and JAXA's roadmaps, ISRO, and the private sector — not one flagship each. This revision reframes the scope from "representative sample" to per-agency completeness, refreshes every entry against current (2026-07) data, and defines a tiered finalization scope so the cut line is an explicit decision, not a silent deferral.
Why this is a PRD. Which forward-looking programs and missions Orrery commits to modeling — comprehensively, across every major agency, through ~2035 — is a product-scope decision that gates months of content authoring: mission + fleet JSON, images, 3D scenes, and editorial across 14 locales. Locking the complete set with an explicit, tiered cut line — rather than a silent deferral of everything past one flagship per agency — has to happen before any new entry lands. That scope commitment is why this is a PRD and not a backlog note.
Why
As of today orrery's static/data/missions/ + static/data/fleet/ contain only 7 forward-looking missions and 5 forward-looking fleet entries against a world that has reset hard: NASA cancelled Gateway and announced a Moon-then-Mars surface-base architecture ("Ignition", 24 Mar 2026); China merged its crewed-lunar + Chang'e programs and recovered an orbital booster; Russia re-architected ROS around recycled ISS modules; ESA lost its US MSR partner and is debating sovereign crew; ISRO, UAE, Korea, and Brazil are standing up flagship programs and first launches. Orrery's "what's planned next" surface is a rounding error against reality. This PRD locks the complete forward content set for v0.8 so slices can execute cleanly.
Scope model — per-agency completeness, tiered
Coverage principle: for each major program, represent its committed forward roadmap in full — every announced-and-funded element, every in-development flagship, and the program-defining vehicles behind them — rather than a single flagship. Curation still applies at the proposed edge (we don't model every paper concept), and images/3D remain deferred (content ships with credit first, imagery catches up).
Three tiers, so the cut line is explicit:
| Tier | Definition | Rough new-entry count (missions + fleet, after de-duping the 12 already in data) |
|---|---|---|
| T1 — Committed | A (announced + funded, hardware/schedule) + the architecture-reset updates to existing entries. The forward roadmap that is actually happening. | ~55–70 |
| T2 — In-development depth | D (active development) across every program — CLPS deliveries, all ESA science, Luna 26-29, commercial LEO stations, commercial launcher debut wave, megaconstellations. Completes per-agency coverage. | ~60–80 |
| T3 — Proposed tail | P (study/paper) for the biggest programs only — Neptune orbiter, Venus atmosphere SR, Interstellar Express, Yenisei/Don, Korona, HWO, Enceladus Orbilander, Mangalyaan-2. Selective, not exhaustive. | ~30–45 |
Finalization scope (LOCKED 2026-07-11) = T1 + T2 + T3 — everything. Marko's call: cover every A/D/P element across all agencies + private sector, including the proposed tail for the big programs. ~180+ new entries. Full per-item backlog with confidence + → orrery entry type mapping: docs/research/forward-roadmap-2026-07-11.md.
Every new entry is authored under a program (see PRD-029). The forward-roadmap work is the first consumer of the programs grouping layer — author the program (Artemis, Project 921, ILRS, ROS, Gaganyaan, BAS, CLPS, Commercial LEO Destinations, …) then tag its member missions + fleet. Programs are also the coverage lens: a program with a gap in its numbered sequence flags a hole to backfill.
Per-agency finalization targets (T1 + T2)
| Program family | New missions | New fleet | Notes |
|---|---|---|---|
| China (CNSA/CMSA/CAS + commercial) | ~14 | ~20 | Crewed lunar (Mengzhou/Lanyue/Wangyu/Tansuo/CZ-10), ILRS, Chang'e-7/8, Tiangong 6-module + Xuntian + Shenzhou-23/24/25, Tianwen-2/3/4, CZ-9, commercial reusables, Guowang/Qianfan. |
| Russia (Roscosmos) | ~6 | ~16 | ROS + 7 modules, Luna 26-29, Orel, Soyuz-5 (op), Angara A5M/A5V/A5P, Amur, Yenisei, Zeus, Venera-D, Vostochny pads. |
| ESA | ~11 | ~10 | Plato/Ariel/Comet Interceptor/EnVision/Vigil/LISA/NewAthena/Ramses/SMILE/Plasma Obs, Argonaut, Moonlight, Ariane 6 evolutions, Vega-E, Themis, ELC winners. |
| JAXA | ~5 | ~5 | MMX (have), LUPEX, DESTINY+, LiteBIRD, Solar-C, Lunar Cruiser, H3, Epsilon S, ispace ULTRA. |
| NASA + US commercial | ~18 | ~22 | Artemis III(update)/IV/V/VI, Moon Base + Fission Power + LTV, Starship HLS/Blue Moon Mk1-Mk2, SR-1 Freedom, CLPS ×6, Dragonfly/DAVINCI/VERITAS/Roman/NEO Surveyor, Haven-1/2/Axiom/Orbital Reef/Starlab/Gravitics, Starship V3/New Glenn/Neutron/Nova/Terran R/Dream Chaser. |
| ISRO + newcomers + private | ~12 | ~15 | Gaganyaan G1/H1 + BAS + Chandrayaan-4/5 + Shukrayaan-1 + Mangalyaan-2(P) + NGLV + Skyroot; UAE MBR Explorer/Rashid-2/Airlock; Korea KSLV-III + lander; Brazil VLM-1; newcomer sites + firsts. |
New categories + schema
surface-basefleet category (off-Earth permanent/semi-permanent infrastructure — lunar/Mars bases, surface reactors, ILRS). Distinct from orbitalstation. Wired in Slice 0: add tofleet-entry.schema.jsoncategory enum +/fleetfilter chip +fleet_category_surface_basei18n keys (en-US, then 14-locale pipeline) + ADR-002 pointer. Entries: NASA Moon Base, Fission Surface Power, ILRS, ILRS nuclear plant.ground-observatory— already scoped in PRD-028 (18 Earth-based radio telescopes + DSN); land it in the same v0.8 category-wiring pass assurface-basesince both touch the same schema + filter UI.
Architecture-reset updates to existing entries
| Entry | Change |
|---|---|
missions/moon/artemis3 | Demote to LEO HLS-rendezvous demo (no landing); crew named 9 Jun 2026. |
missions/.../artemis4 | Confirm as first crewed landing (early 2028). |
missions/mars/starship-mars-crew | Reframe against the Moon-Base-as-proving-ground architecture. |
fleet/.../htv-x | PLANNED → ACTIVE (HTV-X1 flew Oct 2025). |
fleet/station/tiangong | Add 4th/5th/6th-module expansion timeline (→180t). |
fleet/launcher/starship | Cross-link new starship-hls variant + starship-v3. |
fleet/launcher/new-glenn | Note LC-36 pad loss (28 May 2026), RTF TBD. |
missions/.../apollo-1 | Bug: mis-flagged PLANNED → FLOWN/historical. |
| Mars Sample Return, Gateway HALO/I-Hab (if present) | Mark CANCELLED / redirected (grep -rn 'mars-sample-return|gateway|halo|i-hab' static/data/ at slice start). |
Slice plan (per-agency program families)
Slice 0 unblocks the new categories; each program-family slice is independent and lands as one PR + one rebase + one preflight. Recommended order puts the architecture resets first (they unblock cross-refs), then the biggest programs.
Slice 0 — Category + schema wiring: surface-base + ground-observatory (schema, /fleet filter, i18n label keys, ADR-002). Fix apollo-1 status bug.
Slice 1 — NASA architecture reset: artemis3 demote; Artemis IV/V/VI; Moon Base + Fission Power + LTV; SR-1 Freedom; cancel MSR + Gateway; HLS (Starship HLS, Blue Moon Mk1/Mk2). Updates: htv-x, new-glenn, starship.
Slice 2 — China crewed lunar + Tiangong: Mengzhou, Lanyue, Wangyu, Tansuo, CZ-10/10A, Wenchang LC-301, crewed-landing mission; Tiangong 6-module update, Xuntian, Shenzhou-23/24/25, Tianzhou.
Slice 3 — China deep-space + ILRS: Tianwen-2/3/4, Chang'e-7/8, planetary-defense demo, ILRS (surface-base) + construction landers + nuclear plant, CZ-9, Queqiao constellation.
Slice 4 — Russia: ROS + 7 modules (station + surface reactor context), Luna 26-29, Orel, Soyuz-5, Angara A5M/A5V/A5P, Amur, Yenisei, Zeus, Venera-D, Vostochny pads.
Slice 5 — ESA: Plato/Ariel/Comet Interceptor/EnVision/Vigil/LISA/NewAthena/Ramses/SMILE/Plasma Obs; Argonaut, Moonlight; Ariane 6 evolutions, Vega-E, Themis, ELC winners.
Slice 6 — JAXA: LUPEX, DESTINY+, LiteBIRD, Solar-C, Lunar Cruiser, H3, Epsilon S, ispace ULTRA.
Slice 7 — ISRO: Gaganyaan G1/H1, BAS + modules, Chandrayaan-4/5, Shukrayaan-1, Mangalyaan-2, NGLV, Skyroot Vikram-1.
Slice 8 — Newcomers + private: UAE (MBR Explorer, Rashid-2, Airlock), Korea (KSLV-III, lander), Brazil (VLM-1), newcomer launch sites; US commercial LEO stations (Haven-1/2, Axiom, Orbital Reef, Starlab, Gravitics); commercial launcher debut wave (Neutron, Nova, Terran R, Dream Chaser).
Slice 9 — NASA planetary + observatories + CLPS: Dragonfly, DAVINCI, VERITAS, Roman, NEO Surveyor; CLPS deliveries (IM-3/4, Blue Ghost 2/3, Griffin-1, APEX).
Slice 10 (optional, T3) — Proposed tail for the biggest programs: Neptune orbiter, Venus atmosphere SR, Interstellar Express, HWO, Enceladus Orbilander, Don/Korona.Effort — be honest
Per the mission/fleet runbooks each entry is ~8 touchpoints: base JSON + index + en-US overlay + all-14-locale overlays (now core content, not deferrable) + ≥3 sourced links + fleet↔mission symmetry + (deferred) imagery. Realistic per-entry authoring is ~30–90 min for fleet, ~45–120 min for missions, plus validate-data iteration.
- T1 + T2 ≈ 135–150 entries. That is not a one-sitting job — it's ~9 program-family slice PRs, on the order of 1–2 focused days per slice (editorial care on
credit/links + the 14-locale pipeline pass dominate). Call it a multi-week content track, sequenced under Marko's supervision, one slice at a time. - T3 adds ~30–45 more; land opportunistically, don't gate the release on it.
- Imagery is a separate wave (Image Pipeline v2) after content; entries ship with
creditplaceholders, never blocked on images.
Done definition
Per-slice
- New entries as JSON under
static/data/missions/{body}/{id}.json+static/data/fleet/{category}/{id}.json+ bothindex.json. - Every entry:
id,name,agency,country,status,first_flight(null if unflown),best_known_for, sourcedcredit, ≥3links,fleet_refs/linked_missionssymmetry. - All 14 locale overlays authored via
scripts/translate-i18n-gaps.mjs(i18n is core content). npm run validate-data+npm run preflightgreen.- Dates re-checked at slice start against the 2026-07-11 backlog; anything slipped >6 months noted in
creditrather than shipped stale.
v0.8 release acceptance bar (per-agency completeness)
- T1 + T2 landed across Slices 0–9 (T3 optional).
- Per-agency coverage is complete for {NASA, US-commercial, CNSA, Roscosmos, ESA, JAXA, ISRO} — i.e. no
A/Dprogram element from the backlog missing without an explicit note. surface-base+ground-observatoryfilter chips live on/fleet.- Both backlog docs retained; this PRD moves Draft → Accepted (v0.8).
Decisions (LOCKED 2026-07-11)
- Cut line: everything (T1+T2+T3), ~180+ entries. No silent deferrals.
P(proposed) policy: include proposed entries (Neptune orbiter, Venera-D, Yenisei, Mangalyaan-2, HWO, Interstellar Express, Enceladus Orbilander, …).- Slice order (priority agencies first): NASA → China → Russia → ESA → JAXA → ISRO → newcomers/commercial → NASA planetary/CLPS → proposed tail. See the re-ordered slice plan above.
- Programs paradigm: adopt the
programgrouping layer (PRD-029) for all new entries, and retrofit historical missions/fleet.
Risks
- Date drift — most
NET 20xxdates move; re-check per slice, flag >6-month slips incredit. - Thin newcomer sourcing — Vikram-1, VLM-1, KSLV-III, MBR lander, Turkish/African firsts lean on agency PRs + trade press; same editorial bar, source in native language + machine translation where needed (per project memory on global representation).
- Re-resets — NASA's Ignition reset won't be the last; a mid-slice pivot edits in-flight, not deferred.
surface-base↔stationandILRS-as-program ambiguity — name/describe ILRS + Moon Base as programs, not as a single finished object.- 14-locale load — i18n is now core content; the translate-pipeline pass is real per-entry cost, not a footnote.
Source-of-truth backlog
docs/research/forward-roadmap-2026-07-11.md (comprehensive, per-agency, confidence-tagged, → entry-type mapped) — compiled 2026-07-11 from 6 parallel research passes. Slice-time copy (best_known_for, credit, links) derives from it, not from cached training-data memory — these programs are too current. The 2026-06-09 backlog is retained as history.