ceremony/changelog.d/251.md
cndgrr 7909383ca0 docs(consumers): read the pin manifest, never a copy of it
Re-vendor tooling and docs-sync equivalents read the pin docs/VENDORED.txt
(available at 0.5.0 and later) instead of naming the doc set themselves, so
a new doctrine file reaches every consumer at its next ordinary pin bump
with zero list edits. A hardcoded list propagates nothing and its
staleness is silent: docs-sync --check asserts byte-identity for the files
the list names and says nothing about one it omits.

What makes reading the manifest sufficient rather than merely better is
the self-guard this PR adds, tagged unreleased until the first tag carries
it, per the RELEASES.md paragraph above it.

Refs #251
2026-08-04 10:18:17 +00:00

626 B

Added

  • CI now refuses a root *.md declared in neither docs/VENDORED.txt nor the guard's short exemption list, so a new doctrine file can no longer reach a tag undeclared and stay invisible to every consumer's docs-sync (#251).
  • The same guard reads the manifest the other way: every entry must resolve to a regular, non-empty, tracked file — no symlink, no directory, no ../ escape (#251).

Changed

  • Consumer guidance: re-vendor tooling reads the pin's docs/VENDORED.txt, never a hardcoded list, so a new doctrine file propagates at the next ordinary pin bump with zero list edits (#251).