Found while hand-adjudicating packages/runtime/README.md's unread call sites (#10368). Filed unassigned, no pm:queue — triage's call.
The observation
check:published-readme-links (#9632 / PR #9662) reads the docs-site links a published README carries and checks they are followable. It says nothing about relative repo paths, and a published README's relative paths are the half a reader on npm cannot resolve at all — npmjs.com renders the README outside the repo, so a relative link there is broken for every reader by construction, and broken inside the repo too when the target does not exist.
packages/runtime/README.md is the instance that turned this up. Measured on origin/main at 112a8c6:
| README claim | line | on disk |
|---|
`examples/host/` - Full server setup with Hono | 258 | missing (packages/runtime/examples/ does not exist) |
`examples/msw-react-crud/` - Browser-based setup with MSW | 259 | missing |
`test-mini-kernel.ts` - Comprehensive kernel test suite | 260 | missing |
[MiniKernel Guide](../../MINI_KERNEL_GUIDE.md) | 642 | missing (repo root has no MINI_KERNEL_*.md) |
[MiniKernel Architecture](../../MINI_KERNEL_ARCHITECTURE.md) | 643 | missing |
[MiniKernel Implementation](../../MINI_KERNEL_IMPLEMENTATION.md) | 644 | missing |
Reproduce:
for p in packages/runtime/examples/host packages/runtime/examples/msw-react-crud \
packages/runtime/test-mini-kernel.ts \
MINI_KERNEL_GUIDE.md MINI_KERNEL_ARCHITECTURE.md MINI_KERNEL_IMPLEMENTATION.md; do
[ -e "$p" ] && echo "EXISTS $p" || echo "MISSING $p"
done
Six for six missing. docs/HARDENING.md, docs/OBSERVABILITY.md and LICENSING.md, linked from the same document, all exist — so this is drift, not a convention this repo does not follow.
The same section also ends on a truncated bullet with an unterminated backtick, which swallows the rest of the list into a code span when rendered:
Why it is worth a card rather than a one-line fix
The one-line fix repairs one document. What produced six dead paths in one README is that nothing reads them — the same argument #9532 made for the symbol half and #9632 made for the docs-site half. Two shapes are separable and only one may be worth building:
- repo-relative targets that do not exist — decidable from the tree, no false positives, and the failure is unambiguous;
- relative links that resolve in-repo but break on npm — every relative link in a published README is in this class, so a gate here needs a policy first (rewrite to an absolute docs-site URL? allow, since GitHub renders them?), which is a ruling, not a scan.
⛔ Deliberately NOT folded into #10368: that card is commissioned as a measurement of member-existence drift and its fence forbids widening the gate. Path existence is a different defect class and a different gate family.
Refs: #9632 / PR #9662 (the docs-site link gate and its scope) · #9532 (the symbol half) · #10368 (where this was found).
Generated by Claude Code
Found while hand-adjudicating
packages/runtime/README.md's unread call sites (#10368). Filed unassigned, nopm:queue— triage's call.The observation
check:published-readme-links(#9632 / PR #9662) reads the docs-site links a published README carries and checks they are followable. It says nothing about relative repo paths, and a published README's relative paths are the half a reader on npm cannot resolve at all — npmjs.com renders the README outside the repo, so a relative link there is broken for every reader by construction, and broken inside the repo too when the target does not exist.packages/runtime/README.mdis the instance that turned this up. Measured onorigin/mainat 112a8c6:`examples/host/` - Full server setup with Honopackages/runtime/examples/does not exist)`examples/msw-react-crud/` - Browser-based setup with MSW`test-mini-kernel.ts` - Comprehensive kernel test suite[MiniKernel Guide](../../MINI_KERNEL_GUIDE.md)MINI_KERNEL_*.md)[MiniKernel Architecture](../../MINI_KERNEL_ARCHITECTURE.md)[MiniKernel Implementation](../../MINI_KERNEL_IMPLEMENTATION.md)Reproduce:
Six for six missing.
docs/HARDENING.md,docs/OBSERVABILITY.mdandLICENSING.md, linked from the same document, all exist — so this is drift, not a convention this repo does not follow.The same section also ends on a truncated bullet with an unterminated backtick, which swallows the rest of the list into a code span when rendered:
Why it is worth a card rather than a one-line fix
The one-line fix repairs one document. What produced six dead paths in one README is that nothing reads them — the same argument #9532 made for the symbol half and #9632 made for the docs-site half. Two shapes are separable and only one may be worth building:
⛔ Deliberately NOT folded into #10368: that card is commissioned as a measurement of member-existence drift and its fence forbids widening the gate. Path existence is a different defect class and a different gate family.
Refs: #9632 / PR #9662 (the docs-site link gate and its scope) · #9532 (the symbol half) · #10368 (where this was found).
Generated by Claude Code