Documentation
¶
Overview ¶
tagscan reports every tagged Go module whose default branch is AHEAD of its latest tag — work that is merged and that `go get` cannot reach.
tagscan # the whole fleet tagscan -orgs a,b # narrowed, and it says so
It exists because a written rule was not enough. Merging a pull request on a tagged Go module with ghmerge alone leaves the module's consumers on the last tag, which does not contain the merge: `go get -u` then fails with `undefined: <the new symbol>` against a repository whose main plainly has it. That happened on go-widgets/toolkit on 2026-09-05 and again on go-pdfkit/ops on 2026-09-07, the second time with the rule already written down. A tool that reports the state beats a note that asks somebody to remember it.
Being ahead is not by itself wrong: a module may be between releases on purpose. What is wrong is not KNOWING, which is why this prints the distance and the age rather than a verdict.