running shifter ---watch on a module with an exec command in the build.json (one which writes module js that needs to be shifted) causes shifter to go into a loop.
Shifter in building the module runs the command in the exec property, then sees that the module source js has been changed (by the script in the exec) and starts building again, ad infinitum.
At line 74 of watch.js there's a check against mtime which if removed solves the issue, but I guess that would miss a changed file that was coincidently the same size?
I also had this issue with the loop recently.
We need the mtime check, because sometimes the size can stay the same, like when you correct a typo or something. It's annoying to write a few unneeded characters only to kick start a build.