If going for minimalism, why have any framework/runner at all? Use the raw bash scripts.<p><pre><code> if [ ! -f /tmp/foo ]; then $maybe_dryrun touch /tmp/foo; fi
</code></pre>
There will be a bit of boilerplate, but it would be much easier to understand and debug.<p>(I'd say different things for a more complex system which can, for example, track the files created and show if any of them were unexpectedly modified. But your system does not seem to implement any of it, it's just a overcomplicated shell runner)