docs/release-goals/3.2.x.md:97 carries a bare-relative body link to a file that is not in that directory. Two CI gates fail on it, and both fail on any PR that touches docs/ at all, regardless of whether the PR goes near either file.
The link
docs/release-goals/3.2.x.md:97
> [3-2-x-milestone-roadmap.md § Addendum 2026-08-01](3-2-x-milestone-roadmap.md#addendum-...)
A bare relative link resolves against the containing directory, so this points at docs/release-goals/3-2-x-milestone-roadmap.md. Measured:
ls docs/release-goals/3-2-x-milestone-roadmap.md -> No such file or directory
ls docs/plans/3-2-x-milestone-roadmap.md -> exists
The target lives under docs/plans/.
Which gates fail
| Job |
Failure |
docs-freshness → Relative body-link gate (WP18, --check) |
[relative_link_fixer] CHECK: 1 dead bare-relative body links |
fast-tests-docs |
AssertionError: unexpected dead bare-relative body links: [('docs/release-goals/3.2.x.md', '3-2-x-milestone-roadmap.md')] — and again under C-007 full-scope gate (exclude_prefixes=()) |
Why it has not been caught yet
f9fde44bb4 has no CI runs. gh run list --commit f9fde44bb4 returns an empty set, so the current main head has never been validated. The link was introduced by that commit — landing fold: reconcile #3129 docs hygiene inherited via rebase onto current main — and nothing has exercised the docs shards against it since.
The docs shards are path-filtered, so they only run when a PR touches docs/ or .md. The next such PR inherits this failure and looks like it broke the docs gates. That is how it was found: an unrelated PR touching two docs pages under docs/development/.
Suggested fix
Either make the link path-correct:
[3-2-x-milestone-roadmap.md § Addendum 2026-08-01](../plans/3-2-x-milestone-roadmap.md#addendum-...)
or move the roadmap, if docs/release-goals/ is where it belongs. The link text says 3-2-x-milestone-roadmap.md with no path, which reads as though the author expected it to be a sibling.
Filed from PR #3144's CI, which is unrelated to either file. Reproduced on a pristine upstream/main worktree at f9fde44bb4 before filing: the link is dead there too, so this is not PR-caused.
The general docs-gate-scoping concern (this gate fails every docs-touching PR for an offender the PR never touched) was split out to #3147 — not this issue's scope.
docs/release-goals/3.2.x.md:97carries a bare-relative body link to a file that is not in that directory. Two CI gates fail on it, and both fail on any PR that touchesdocs/at all, regardless of whether the PR goes near either file.The link
A bare relative link resolves against the containing directory, so this points at
docs/release-goals/3-2-x-milestone-roadmap.md. Measured:The target lives under
docs/plans/.Which gates fail
docs-freshness→ Relative body-link gate (WP18, --check)[relative_link_fixer] CHECK: 1 dead bare-relative body linksfast-tests-docsAssertionError: unexpected dead bare-relative body links: [('docs/release-goals/3.2.x.md', '3-2-x-milestone-roadmap.md')]— and again underC-007 full-scope gate (exclude_prefixes=())Why it has not been caught yet
f9fde44bb4has no CI runs.gh run list --commit f9fde44bb4returns an empty set, so the currentmainhead has never been validated. The link was introduced by that commit —landing fold: reconcile #3129 docs hygiene inherited via rebase onto current main— and nothing has exercised the docs shards against it since.The docs shards are path-filtered, so they only run when a PR touches
docs/or.md. The next such PR inherits this failure and looks like it broke the docs gates. That is how it was found: an unrelated PR touching two docs pages underdocs/development/.Suggested fix
Either make the link path-correct:
or move the roadmap, if
docs/release-goals/is where it belongs. The link text says3-2-x-milestone-roadmap.mdwith no path, which reads as though the author expected it to be a sibling.Filed from PR #3144's CI, which is unrelated to either file. Reproduced on a pristine
upstream/mainworktree atf9fde44bb4before filing: the link is dead there too, so this is not PR-caused.The general docs-gate-scoping concern (this gate fails every docs-touching PR for an offender the PR never touched) was split out to #3147 — not this issue's scope.