A render pipeline for one character

A render pipeline for one character An architecture diagram generated by Archify. one canonical drawing · 512×768 · plus declared facts · Architecture component · the subject one canonical drawing 512×768 · plus declared facts the subject five painted views · one seed · edit mode · one sheet · the runner — fifteen steps · stat before, refuse if unmoved five painted views one seed · edit mode · one sheet identity gate · median Lab ΔE76 ≤ 10 vs the drawing · the runner — fifteen steps · stat before, refuse if unmoved · before any GPU minute identity gate median Lab ΔE76 ≤ 10 vs the drawing before any GPU minute image to mesh · body 1536³ · head 512³ · ~1 min · the runner — fifteen steps · stat before, refuse if unmoved image to mesh body 1536³ · head 512³ · ~1 min weld · decimate · never overwrites: writes -2, exits 0 · the runner — fifteen steps · stat before, refuse if unmoved · the polite tool weld · decimate never overwrites: writes -2, exits 0 the polite tool rig · 52 bones · ~8 s · 99.9 % weighted · the runner — fifteen steps · stat before, refuse if unmoved rig 52 bones · ~8 s · 99.9 % weighted graft · eyes · neck · never overwrites: writes -2, exits 0 · the runner — fifteen steps · stat before, refuse if unmoved · the polite tool graft · eyes · neck never overwrites: writes -2, exits 0 the polite tool the game's cast folder · one .glb per character · Architecture component · what shipped the game's cast folder one .glb per character what shipped reference the sheet measured, then GPU raw .glb post .glb rigged .glb copy + import the runner — fifteen steps · stat before, refuse if unmoved Legend Backend Database Cloud Security

An exit code is a claim about a process

  • • Two tools refuse to clobber: they write <name>-2 beside the old file and exit 0
  • • The runner checked only that the output existed — yesterday's file passed
  • • The game got the previous model: same size, exit 0, no warning

Why one stale file reads as a clean run

  • • Every step skips when its output is newer than its inputs — correct, and the engine
  • • One untouched file upstream makes every downstream skip legitimate
  • • A no-op and a success print the same lines

The fix costs one stat call per step

  • • Stat the output before; exit 0 with an unmoved file is fatal, and the message names the -2 file
  • • Accept a declared non-zero exit when the named output verifies
  • • Gates measure the artefact against the reference (ΔE76 ≤ 10), never the process's word