put the shell() calls into before{} blocks so that they're executed meaningfully.  Testing to make sure a file doesn't exist shouldn't be as much of a hack as that is. I'm obviously missing something in the framework, but this works.