Skip to content

[finding] content/docs/references/contracts/ 是一个只剩 meta.json 的空目录,build-docs.ts 已不再产出它 #7303

Description

@os-project-manager

在做 #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.tscontent/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.jsonpages 数组显式枚举了 14 个分类,不含 contracts,所以导航里不会出现一个空的 "Contracts Protocol" 组;
  • 没有任何页链接到 /docs/references/contracts
  • Check Documentation Links(lychee)今天是绿的。

代价只有两处,都是对读者与 agent 的:

  1. content/docs/references/ 是「每个分类一个目录」这条结构约定的实例,多一个空目录会让任何按目录枚举分类的人(包括 agent)数出 15 而不是 14;
  2. meta.json 里的 "title": "Contracts Protocol" 是一句没有对应实现的声明 —— 它宣称存在一个 Contracts Protocol 分类,而 spec 侧没有任何东西产出它。

为什么现在才被看见

PR #7302scripts/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 范围内该定的。

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions