PM 立单,合并两个已锚定的后续项(PR #3506 已落 main,前置解除)。查重:两项分别锚在 #3490 评论区与 #3507 正文(方向 2 持有记录),无独立同源单。
背景
PR #3506 把 scripts/check-doc-links.mjs 的绝对链接校验接上了站点路由真源,但明确声明了两个「没有买」的面,各自已有实证需求:
扩展一:扫描面 → examples/** 的 README + 根 README.md
现状扫描面只有 content/docs/。而 examples 的 README 已两次被抓到死链(#3486/PR #3495 hello-world 两条、根 README 四条死 example 条目 PR #3485),都是靠人眼不是靠门禁。console-starter README(PR #3524)的 14 条相对链接靠 dev 手写存在性脚本核的 —— 门禁根本不看它。
注意与 content/docs 的差异:examples README 的相对链接语义是磁盘路径(GitHub 渲染),不是 fumadocs 路由 —— 校验规则不同(存在性即可,不做 collection 约束),实现时按扫描根分流规则,别把 docs 的路由语义硬套上去。
扩展二:可判定形态 → https://github.com/objectstack-ai/objectui/(blob|tree)/main/<path> 的离线路径校验
#3507 实证:这类"写成外链的仓内引用"处在两个门禁之间(check-doc-links 按 scheme 跳过、lychee 周 cron + continue-on-error 不 gate PR),曾积累 2 条死链数月。#3509 落地后此类存量归零(25 目标全量扫描,恰 2 死已修),但 PR #3506 自己又新引入 8 条此形态且无 gate 校验 —— 纯预防但覆盖真实增量。判定方式:git cat-file -e HEAD:<path>(或工作树存在性),锚点(#fragment)不在本单范围。
#3507 dev 留了复扫 one-liner 在该 issue 评论区,实现后跑一遍确认 #3506 的 8 条全活。
验收
关联:#3490 / PR #3506(真源重写与"没有买"的声明)、#3507(方向 2 持有)、#3486 / #3485(存量证据)、PR #3524(手工核验的缺 gate 实例)。
PM 立单,合并两个已锚定的后续项(PR #3506 已落 main,前置解除)。查重:两项分别锚在 #3490 评论区与 #3507 正文(方向 2 持有记录),无独立同源单。
背景
PR #3506 把
scripts/check-doc-links.mjs的绝对链接校验接上了站点路由真源,但明确声明了两个「没有买」的面,各自已有实证需求:扩展一:扫描面 →
examples/**的 README + 根README.md现状扫描面只有
content/docs/。而 examples 的 README 已两次被抓到死链(#3486/PR #3495 hello-world 两条、根 README 四条死 example 条目 PR #3485),都是靠人眼不是靠门禁。console-starter README(PR #3524)的 14 条相对链接靠 dev 手写存在性脚本核的 —— 门禁根本不看它。注意与 content/docs 的差异:examples README 的相对链接语义是磁盘路径(GitHub 渲染),不是 fumadocs 路由 —— 校验规则不同(存在性即可,不做 collection 约束),实现时按扫描根分流规则,别把 docs 的路由语义硬套上去。
扩展二:可判定形态 →
https://github.com/objectstack-ai/objectui/(blob|tree)/main/<path>的离线路径校验#3507 实证:这类"写成外链的仓内引用"处在两个门禁之间(check-doc-links 按 scheme 跳过、lychee 周 cron + continue-on-error 不 gate PR),曾积累 2 条死链数月。#3509 落地后此类存量归零(25 目标全量扫描,恰 2 死已修),但 PR #3506 自己又新引入 8 条此形态且无 gate 校验 —— 纯预防但覆盖真实增量。判定方式:
git cat-file -e HEAD:<path>(或工作树存在性),锚点(#fragment)不在本单范围。#3507 dev 留了复扫 one-liner 在该 issue 评论区,实现后跑一遍确认 #3506 的 8 条全活。
验收
example-relative/self-repo-url);关联:#3490 / PR #3506(真源重写与"没有买"的声明)、#3507(方向 2 持有)、#3486 / #3485(存量证据)、PR #3524(手工核验的缺 gate 实例)。