在做 #6530 (PR #7302 ,把 quick-reference 的计数与真实参考目录对齐并纳入门)时顺带 发现,非该单范围 ,按 Prime Directive #10 独立记录。⛔ 未自我认领。
观察
content/docs/references/ 下的 15 个分类目录里,contracts/ 是唯一一个没有任何 .mdx 的:
$ ls -a content/docs/references/contracts/
. .. meta.json
$ cat content/docs/references/contracts/meta.json
{
"title": "Contracts Protocol",
"pages": []
}
其余 14 个目录页数(去掉 index.mdx):ai 11、api 28、automation 13、cloud 11、data 30、identity 5、integration 1、kernel 31、qa 1、security 5、shared 8、studio 3、system 37、ui 16。
它是怎么留下的
packages/spec/scripts/build-docs.ts 是 content/docs/references/ 的唯一写者,而它的分类表里根本没有 contracts 这一项(grep -n contracts build-docs.ts 只命中 api: 的一句描述文字和一句注释)。目录本身是历史残留:
c483c1326 "fix: migrate hand-written docs from auto-generated references/ to guides/" 删掉了 contracts/ 下全部 6 个页(auth-service / cache-service / data-engine / index / metadata-service / storage-service)以及当时的 meta.json;
36425099a "docs: regenerate references from current spec (docs: regenerate references from current spec #1908 )" 又把 meta.json 单独加了回来,但页没有回来。
那批内容今天活在 content/docs/kernel/contracts/(auth-service.mdx / cache-service.mdx / data-engine.mdx / index.mdx / metadata-service.mdx / storage-service.mdx 六页都在),所以内容没有丢,丢的只是这个空壳目录没人清。
影响面(据实,不夸大)
今天没有任何用户会撞到它,所以按 observation-class 记录、不自评级别。 依据:
content/docs/references/meta.json 的 pages 数组显式枚举了 14 个分类,不含 contracts ,所以导航里不会出现一个空的 "Contracts Protocol" 组;
没有任何页链接到 /docs/references/contracts;
Check Documentation Links(lychee)今天是绿的。
代价只有两处,都是对读者与 agent 的:
content/docs/references/ 是「每个分类一个目录」这条结构约定的实例,多一个空目录会让任何按目录枚举分类的人(包括 agent)数出 15 而不是 14;
meta.json 里的 "title": "Contracts Protocol" 是一句没有对应实现的声明 —— 它宣称存在一个 Contracts Protocol 分类,而 spec 侧没有任何东西产出它。
为什么现在才被看见
PR #7302 给 scripts/check-quick-reference-counts.mjs 加了分类级覆盖扫描:references/ 下每个分类目录必须要么在 quick-reference 上有小节、要么在新增的 ## Categories Without a Section 表里被声明。contracts 因此被迫写进那张表,写的时候才发现它 0 页。也就是说,这个空目录现在是被 gate 盯着的 (页数从 0 变成非 0 会红),只是它该不该继续存在是另一个问题。
需要决定的是「删还是留」
若判定 = 残留
若判定 = 占位
动作
删掉 content/docs/references/contracts/,并把 PR #7302 那张表里的 contracts 行一并去掉
保留,但要说明 spec 侧什么时候会产出它;meta.json 的 title 应改成不暗示已存在
倾向前者:build-docs.ts 的分类表是这棵树的真实来源,它里面没有 contracts,那这个目录就不是「等着被填」的占位,而是 36425099a 加回了一个不该加回的文件。但这是分诊该定的,不是我在 #6530 范围内该定的。
在做 #6530(PR #7302,把 quick-reference 的计数与真实参考目录对齐并纳入门)时顺带发现,非该单范围,按 Prime Directive #10 独立记录。⛔ 未自我认领。
观察
content/docs/references/下的 15 个分类目录里,contracts/是唯一一个没有任何.mdx的:其余 14 个目录页数(去掉
index.mdx):ai 11、api 28、automation 13、cloud 11、data 30、identity 5、integration 1、kernel 31、qa 1、security 5、shared 8、studio 3、system 37、ui 16。它是怎么留下的
packages/spec/scripts/build-docs.ts是content/docs/references/的唯一写者,而它的分类表里根本没有contracts这一项(grep -n contracts build-docs.ts只命中api:的一句描述文字和一句注释)。目录本身是历史残留:c483c1326"fix: migrate hand-written docs from auto-generated references/ to guides/" 删掉了contracts/下全部 6 个页(auth-service/cache-service/data-engine/index/metadata-service/storage-service)以及当时的meta.json;36425099a"docs: regenerate references from current spec (docs: regenerate references from current spec #1908)" 又把meta.json单独加了回来,但页没有回来。那批内容今天活在
content/docs/kernel/contracts/(auth-service.mdx/cache-service.mdx/data-engine.mdx/index.mdx/metadata-service.mdx/storage-service.mdx六页都在),所以内容没有丢,丢的只是这个空壳目录没人清。影响面(据实,不夸大)
今天没有任何用户会撞到它,所以按 observation-class 记录、不自评级别。 依据:
content/docs/references/meta.json的pages数组显式枚举了 14 个分类,不含contracts,所以导航里不会出现一个空的 "Contracts Protocol" 组;/docs/references/contracts;Check Documentation Links(lychee)今天是绿的。代价只有两处,都是对读者与 agent 的:
content/docs/references/是「每个分类一个目录」这条结构约定的实例,多一个空目录会让任何按目录枚举分类的人(包括 agent)数出 15 而不是 14;meta.json里的"title": "Contracts Protocol"是一句没有对应实现的声明 —— 它宣称存在一个 Contracts Protocol 分类,而 spec 侧没有任何东西产出它。为什么现在才被看见
PR #7302 给
scripts/check-quick-reference-counts.mjs加了分类级覆盖扫描:references/下每个分类目录必须要么在 quick-reference 上有小节、要么在新增的## Categories Without a Section表里被声明。contracts因此被迫写进那张表,写的时候才发现它 0 页。也就是说,这个空目录现在是被 gate 盯着的(页数从 0 变成非 0 会红),只是它该不该继续存在是另一个问题。需要决定的是「删还是留」
content/docs/references/contracts/,并把 PR #7302 那张表里的contracts行一并去掉meta.json的 title 应改成不暗示已存在倾向前者:
build-docs.ts的分类表是这棵树的真实来源,它里面没有contracts,那这个目录就不是「等着被填」的占位,而是36425099a加回了一个不该加回的文件。但这是分诊该定的,不是我在 #6530 范围内该定的。