By looping over a set of behaviors, reactive systems use repetition and feedback to deal with errors and environmental uncertainty. Their robust, fault-tolerant performance makes reactive systems desirable for executing plans. However, most planning systems cannot reason about the loops that characterize reactive systems. In this paper, we show how the structured application of abstraction and nondeterminism can map complex planning problems requiring loop plans into a simpler representation amenable to standard planning technologies. In the process, we illustrate key recipes for automatically building predictable reactive systems that are guaranteed to achieve their goals.