Checkpoint
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
Prove restartability: run clean once and persist its output in OUTPUTS["clean"]. Run feature_v1 (which has a bug — it forgets to cast amt to int), then 'fix the bug' by running feature_v2 FROM THE PERSISTED clean output — without re-running clean. Print the final features, then how many times each stage ran (clean: 1, feature: 2).