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