CARD V05 (RF-V) written 2026-09-26 19:53:45 -0700 (clock-read), BEFORE the run. Immutable.
Kind: DIAGNOSTIC TRACE (stock-equal step-pass snapshots of the V04 candidate; mechanism confirmation; no source change).
Source: src/bipeds_v04.c; k = 55 (function order unchanged). Tool: tools/rfr/stepwalk.py --all.
Prediction P5a: at step #1 (post-allocation) the spherical arm holds NO copy of the width store: it ends in a JMP to
  the inner-join block (the non-spherical arm's fall-through store block, value EAX / pointer ECX); the physics arm
  has its own store (ECX/EDX). P5b: at step #2's last iteration the spherical arm holds an unlabelled clone of the
  join block with the SAME registers (EAX/ECX), i.e. the tail duplication runs after allocation.

OUTCOME V05 (appended 2026-09-26 19:54:21 -0700; logs/V05_pill_v04_stepwalk.txt; traced object keyed-equal to the gate object 0/0/0):
  P5a CONFIRMED: step #1 (post-allocation): the spherical arm ends 'JMP N54 -> L N76' with NO store copy; the inner
  join block N76..N80 = value s45@EAX, new pointer load s46@ECX, store, JMP -> EXIT label; physics arm keeps its own
  store (s62@ECX, s63@EDX). Iterations: s1:119, s2:116 (HEAD had s1:121 s2:137 s2:116).
  P5b CONFIRMED by the final bytes: the only step-#2 snapshot still shows the spherical JMP to the join label, and the
  emitted spherical tail carries the join block's EAX/ECX colours: the clone is made AFTER allocation (RF-R R2
  tail duplication, 0x1074cd50), not by the pre-allocation return split that copies a RETURN tail into each
  predecessor (V03). DECIDING FACT: whether the width store is part of the shared RETURN block (HEAD: copied per
  predecessor before allocation, each copy coloured on its own) or of a non-return join block (January: allocated
  once, cloned afterwards).
