It is first and last step? Are you planning a special tag or version for unstable? Maybe git tag/push, npm publish, update version, git push new package.json... that way what is in git is always release candidate for the upcoming version, and once a publish is done, you increment the version, so you can never make the mistake of publishing twice with the same version.