Skip to content

missions hero audit — 2026-06-15 ​

Generated by scripts/audit-heroes.ts (#5 Phase 1). Rubric locked in chat 2026-06-12; see commit footer for the principles.

Summary ​

  • ✓ clean: 12
  • ⇄ swap proposals: 3
  • ⊘ needs sourcing: 65
  • ✋ accepted overrides: 18

⇄ Swap proposals ​

Each entry's 01.jpg is currently flagged by the rubric AND an alternate slot in the same gallery scored cleanly. Review then apply (script TBD in Phase 4).

idhero reasonspropose →alt rationale
mavensubject: matches test[-\s]?standtest[-\s]?fixturetest[-\s]?article; subject names a different entity than maven
hope-probesubject: matches mock[-\s]?upmockupscale\s+(?:\S+\s+){0,2}model
blue-moon-mk1subject names a different entity than blue-moon-mk104.jpgscore 6 · zero rubric flags

⊘ Needs sourcing ​

Hero is flagged by the rubric and no clean alternate exists in the gallery. Either source a better image (agency-first fetcher pattern) or add an explicit entry to static/data/missions-hero-overrides.json if the current pick is genuinely the canonical option (Soviet-era / crashed-mission cohort).

idreasons
mariner4category: diagram — not a hero candidate; score: 2 < threshold 6; vision-rejected: category-diagram
luna9subject names a different entity than luna9
apollo11category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people; subject names a different entity than apollo11
apollo13subject names a different entity than apollo13
luna16not-scored
luna17score: 4 < threshold 6; vision-rejected: score-below-threshold; subject names a different entity than luna17
mars3score: 2 < threshold 6; vision-rejected: score-below-threshold
apollo17subject names a different entity than apollo17
luna21not-scored
pioneer-11category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people; subject names a different entity than pioneer-11
viking1subject names a different entity than viking1
luna24score: 5 < threshold 6; subject names a different entity than luna24
clementinecategory: people-only — no asset visible; vision-rejected: category-people
messengersubject names a different entity than messenger
chandrayaan1subject names a different entity than chandrayaan1
lrosubject names a different entity than lro
change3not-scored
schiaparellinot-scored
change4subject names a different entity than change4
beresheetnot-scored
change5subject: matches mock[-\s]?up
tianwen1subject: matches mock[-\s]?up
change6subject: matches mock[-\s]?up
slimsubject: matches mock[-\s]?up
artemis2subject names a different entity than artemis2
mmxsubject names a different entity than mmx
artemis3subject names a different entity than artemis3
vega-1category: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold; subject names a different entity than vega-1
vega-2category: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold; subject names a different entity than vega-2
ulyssessubject names a different entity than ulysses
juicecategory: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
apollo7not-scored
apollo9not-scored
apollo8not-scored
apollo10not-scored
apollo12category: people-only — no asset visible; vision-rejected: category-people; subject names a different entity than apollo12
apollo14subject names a different entity than apollo14
apollo15subject names a different entity than apollo15
apollo16subject names a different entity than apollo16
luna10not-scored
lunar-prospectornot-scored
smart-1not-scored
change1not-scored
freedom-7not-scored
liberty-bell-7not-scored
friendship-7not-scored
aurora-7not-scored
sigma-7not-scored
faith-7not-scored
vostok-1not-scored
voskhod-2not-scored
apollo-1not-scored
apollo-soyuznot-scored
shenzhou-1subject: matches \bon (?:museum )?display
vostok-2category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people; subject names a different entity than vostok-2
vostok-4category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people; subject names a different entity than vostok-4
vostok-5category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people; subject names a different entity than vostok-5
vostok-6subject: matches press release
voskhod-1category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people
skylab-2category: people-only — no asset visible; score: 3 < threshold 6; vision-rejected: category-people; subject names a different entity than skylab-2
skylab-3category: people-only — no asset visible; score: 3 < threshold 6; vision-rejected: category-people; subject names a different entity than skylab-3
otv-4subject names a different entity than otv-4
otv-5subject names a different entity than otv-5
otv-6subject names a different entity than otv-6
mariner10subject names a different entity than mariner10

✋ Accepted overrides ​

idreason
voyager-2category: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
galileocategory: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold; subject names a different entity than galileo
cassinicategory: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
mars-expresscategory: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
new-horizonscategory: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
dawncategory: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
junourl: artwork/illustration/render/scale-model in source URL; category: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
mangalyaansubject names a different entity than mangalyaan
perseverancesubject names a different entity than perseverance
chandrayaan3subject names a different entity than chandrayaan3
starship-demosubject names a different entity than starship-demo
bepicolombocategory: render on FLOWN/ACTIVE asset; vision-rejected: score-below-threshold
vostok-3category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people
skylab-4category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people
inspiration4category: people-only — no asset visible; score: 2 < threshold 6; vision-rejected: category-people
polaris-dawncategory: people-only — no asset visible; score: 1 < threshold 6; vision-rejected: category-people
otv-3subject names a different entity than otv-3
otv-7subject names a different entity than otv-7

✓ Clean ​

12 entries currently pass the rubric. Not enumerated here — they're the silent majority. Run with --list-clean if you want them.

Orrery — architecture documentation · MIT · No tracking