### Fixed - `actions/docs-sync` fetches the doctrine mirror from the forge named by `GITHUB_SERVER_URL` instead of a hard-coded `github.com` (#201). - The same pin ref names a different tree on each forge, so a consumer's mirror was verified against a tree it never pinned — and with HTTP 200, so `--check` reported drift that could not be fixed (#201). - A fetch that cannot name its forge now refuses instead of guessing: no `GITHUB_SERVER_URL` and no `--source` exits naming the variable, having reached for no network (#201). - A failed fetch names the URL it actually tried, and asks whether the ref exists on that forge rather than in the abstract (#201). ### Added - `test/docs-sync.test.sh` drives the fetch path, which had no coverage at all: every existing row passes `--source`, which overrides the fetch entirely (#201). - A stubbed `curl` records the requested URL and serves a tarball, so which forge a pin resolves against is a tested decision rather than plumbing (#201).