lesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theaterlesson 4 of 5 · pipeline orchestration shape without the theaterpipeline orchestration shape without the theater
Checkpoint
One last thing before we move on. pass this to mark the lesson done, or skip and keep moving. hop to the next when you're ready.
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).