One code path with a transport switch: on a host named yggdrasil[-*] (or
YGG_VERIFY_LOCAL=1) the remote half runs through local bash with cp and a local
git push instead of ssh/scp; the ssh path is unchanged. Scripts meant to be run
directly are committed 100755, and the scripts that call ygg-verify.sh do so
through bash (noexec skill mount). test-tools.sh covers the local branch and,
under a mock ssh, the remote branch and the detection rule.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>