Date: Jun 12, 2026 (post-checkpoint, Block 2 released). What this is: the design record for lever L1 (velocity-lag feedforward). Design probes are 200 s and decide DESIGN only — adoption verdicts remain full-helix per protocol.
Design: reference the Coriolis term to the desired twist, −C(ν −
ν_des), so zero-lag cruise is an exact equilibrium (the damping term
already references ν_des; the arm accel feedforward M·ν̇_des is live).
Implemented behind controller.arm.desired_twist.velocity_ff
(default OFF; 5 validators diff=0.000e+00 OFF; engagement witnessed:
first state divergence at step 2).
200 s r0 A/B (/tmp/l1_probe_{off,on}.npz):
| arm | cruise pe med [m] | pe p99 | sj med | progress at t=200 |
|---|---|---|---|---|
| OFF | 0.0748 | 0.157 | 0.0063 | 1347 |
| ON | 0.1998 | 0.244 | 0.0346 | 1902 |
pe worsened 2.7×. Mechanism: the referenced term re-energizes the loop past the derate — sj stays above 0.025, the derate never engages, the vehicle traverses 41% more orbit at full speed with a ~0.2 m offset. The A/B arms are two different operating regimes, not one term changed. (Side observation recorded, NOT pursued: v1 near-eliminates derate dwell on this segment; any future use would be a different lever with its own registration.)
validation/l1_term_probe.py (recording replica of
RHS34b, parity asserted each step, knob OFF, 200 s). EE-row median
norms, cruise window t = 90–200 s (pe med 0.0748, sj med 0.0063 — the
DEEP-DERATE regime):
| C (Coriolis) | D (damping) | K (stiffness) | COM coupling | posture | accel FF |
|---|---|---|---|---|---|
| 0.0297 | 0.0040 | 0.0509 | 0.0034 | 0.0123 | 0.2214 |
Findings: 1. The Coriolis term is SMALLER than the stiffness term it was supposed to cancel — v1’s premise (C owns the lag) is wrong at the actual operating point. 2. The dominant RHS player is the live arm accel feedforward (M·ν̇_des, an FD-of-FD at dt = 0.03) at 4× the stiffness term — a noise-dither suspect in the floored regime, flagged for the L1-v2 design space (it is ON the registered desired-twist path). 3. The regime is the story: r0’s cruise sits below the derate floor with gains scaled ×0.25 and the hold-last inverse engaging — the study’s reframe 3 at term level: no inversion-layer/feedforward tweak acts cleanly while the arm rides the reach floor. The geometric lever (R) must come first on r0.
R’s full-helix A/B launches first (config-only, registered GO
unconditional). L1 full-helix runs are WITHHELD pending an L1-v2 design
that passes its 200 s design probe — a falsified form does not earn
full-helix hours. The velocity_ff knob stays in the code,
default OFF (byte-identical), documented here as v1-falsified.
regen: probes are /tmp scratch (deliberately not pinned); the term
probe is validation/l1_term_probe.py; the A/B probe is two
run_mission.py run --cap 200 calls (–l1 on the ON arm).