Skip to content

Dead bare-relative link in docs/release-goals/3.2.x.md:97 fails docs-freshness + fast-tests-docs on every docs-touching PR #3145

Description

@MOES-Media

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-freshnessRelative 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.

Metadata

Metadata

Assignees

Labels

priority:P1High-value stabilization / bug or release confidence

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions