越界发现,记录于 #3827 (cli 生成产物清单锚定)实施期间 —— 按"规则消费半径而非编辑包"扫一遍文档面有没有同类化石时扫到的。#3827 的文件面是 packages/cli/src/utils/app-generator.ts,这一条在 content/,故只记录。
事实(对 origin/main @ 844d17fc9 实测)
content/docs/guide/plugins.md:394-403,一份教作者怎么写插件包 package.json 的示例:
"devDependencies": {
"@object-ui/components": "workspace:*",
"@object-ui/core": "workspace:*",
"@object-ui/types": "workspace:*",
"typescript": "^5.0.0",
"vite": "^5.0.0"
}
对照仓内实测(扫 46 个仓内 manifest 的 dependencies + devDependencies,均一致):
文档示例
仓内锚点
差距
vite ^5.0.0
^8.2.0(28 处一致)
3 个 major
typescript ^5.0.0
^6.0.3(38 处一致)
1 个 major
这与 #3709 修掉的 create-plugin.mdx 里 @object-ui/core ^0.3.0、以及 #3742 / #3827 处理的生成器化石是同一族 :示例/生成物里的版本区间与仓内真实工具链脱钩。
扫全 content/ 的结果:这是仅剩的两处。 用
grep -rn '"vite": "\^[0-7]\|"typescript": "[\^~][0-5]\|"@vitejs/plugin-react": "\^[0-5]\|"tailwindcss": "\^[0-3]' content/
只命中这一个文件的这两行 —— 也就是说文档面的这族化石收口到这一处,修掉它这一族在 content/ 就清了(生成器面由 #3827 / #3826 覆盖,packages/components README 的 Tailwind 3 写法是 #3780 ,cli 生成产物的 Tailwind 3 全套是 #3852 )。
顺带一提该示例的 peerDependencies 写 react: ^18.0.0 || ^19.0.0,与仓内平台包的 peer 面一致,不用动 —— peer 说的是"能接受什么",与"本仓装哪个"是两回事(#3827 的锚定表按同一判据把 peer 排除在锚源之外)。
影响:今天没有东西是红的(故打 finding)
纯文档示例,不参与构建,也没有测试断言它。
会咬人的场景:作者照抄这份 devDependencies 起新插件,拿到的是 vite 5 / TS 5,与仓内 vite 8 / TS 6 的构建配置(以及 @vitejs/plugin-react ^6.0.5 的 peer 面)不一致,踩到的问题会以"我的插件构建不出来"的形式出现,而根因在文档。
test(scripts): 给文档散文里的版本宣称落一道棘轮门禁(带历史叙述结构性豁免) #3711 的 version-claims 闸门扫的是文档面 —— 值得顺手确认它为什么没抓到这两行(是不是只认某几种写法),否则修完这一处,下一处照样溜进来。这个确认本身可能是这一单更有价值的一半。
可选方向(不预设结论)
改成仓内实测值并交给闸门守 (^8.2.0 / ^6.0.3),同时查明 test(scripts): 给文档散文里的版本宣称落一道棘轮门禁(带历史叙述结构性豁免) #3711 闸门为何漏掉这两行、能否覆盖到。最彻底,和 create-plugin 生成产物的 build 侧 devDependencies 内部不一致且落后仓库工具链 1–2 个 major:@vitejs/plugin-react ^4.2.1 的 peer 结构性无法被 vite ^7.3.1 满足 #3742 建立的判据一致。
示例里干脆不写版本 (改成 "vite": "*" 或把这两行删掉,让读者用 pnpm add -D vite typescript 装当前版本)。示例不再承担锚定义务,也就不会再化石化 —— 与 create-plugin 生成产物的 dependencies 里 lucide-react: '^0.563.0' 被钉死在 0.563.x(仓内 23 处均为 ^1.28.0),且没有任何生成的源文件 import 它 #3755 删掉无人 import 的声明是同一取向(不维护一张没人守的表)。
只改值,不碰闸门。最省事,但下一次仓内 bump 之后还会漂。
倾向方向 1(要连闸门一起看);若判定文档示例不值得维护锚定表,方向 2 也自洽。
Generated by Claude Code
越界发现,记录于 #3827(cli 生成产物清单锚定)实施期间 —— 按"规则消费半径而非编辑包"扫一遍文档面有没有同类化石时扫到的。#3827 的文件面是
packages/cli/src/utils/app-generator.ts,这一条在content/,故只记录。事实(对
origin/main@844d17fc9实测)content/docs/guide/plugins.md:394-403,一份教作者怎么写插件包package.json的示例:对照仓内实测(扫 46 个仓内 manifest 的
dependencies+devDependencies,均一致):vite ^5.0.0^8.2.0(28 处一致)typescript ^5.0.0^6.0.3(38 处一致)这与 #3709 修掉的
create-plugin.mdx里@object-ui/core ^0.3.0、以及 #3742 / #3827 处理的生成器化石是同一族:示例/生成物里的版本区间与仓内真实工具链脱钩。扫全
content/的结果:这是仅剩的两处。 用grep -rn '"vite": "\^[0-7]\|"typescript": "[\^~][0-5]\|"@vitejs/plugin-react": "\^[0-5]\|"tailwindcss": "\^[0-3]' content/只命中这一个文件的这两行 —— 也就是说文档面的这族化石收口到这一处,修掉它这一族在
content/就清了(生成器面由 #3827 / #3826 覆盖,packages/componentsREADME 的 Tailwind 3 写法是 #3780,cli 生成产物的 Tailwind 3 全套是 #3852)。顺带一提该示例的
peerDependencies写react: ^18.0.0 || ^19.0.0,与仓内平台包的 peer 面一致,不用动 —— peer 说的是"能接受什么",与"本仓装哪个"是两回事(#3827 的锚定表按同一判据把 peer 排除在锚源之外)。影响:今天没有东西是红的(故打
finding)@vitejs/plugin-react ^6.0.5的 peer 面)不一致,踩到的问题会以"我的插件构建不出来"的形式出现,而根因在文档。可选方向(不预设结论)
^8.2.0/^6.0.3),同时查明 test(scripts): 给文档散文里的版本宣称落一道棘轮门禁(带历史叙述结构性豁免) #3711 闸门为何漏掉这两行、能否覆盖到。最彻底,和 create-plugin 生成产物的 build 侧 devDependencies 内部不一致且落后仓库工具链 1–2 个 major:@vitejs/plugin-react ^4.2.1的 peer 结构性无法被vite ^7.3.1满足 #3742 建立的判据一致。"vite": "*"或把这两行删掉,让读者用pnpm add -D vite typescript装当前版本)。示例不再承担锚定义务,也就不会再化石化 —— 与 create-plugin 生成产物的 dependencies 里lucide-react: '^0.563.0'被钉死在 0.563.x(仓内 23 处均为^1.28.0),且没有任何生成的源文件 import 它 #3755 删掉无人 import 的声明是同一取向(不维护一张没人守的表)。倾向方向 1(要连闸门一起看);若判定文档示例不值得维护锚定表,方向 2 也自洽。
Generated by Claude Code