docs: 清偿门禁记账里的 8 处版本失真 — 无锚宣称删版本指真相、脚手架记录对齐生成器、有锚重述收窄到清单 (#3708, #3709, #3710) - #3726
Merged
Merged
Conversation
Fixes #3708 Fixes #3709 Fixes #3710 按失真的三种性质分别处置,不套统一口径: - 无锚宣称(#3708 三处)—— 照 #3645 / PR #3688 仓规删版本号指真相: architecture-overview 的三层架构 ASCII 图与散文不再写 spec 的版本区间 (改指各包 package.json 的 dependencies),architecture.md 不再写 TypeScript 的大版本下限。一律不改写成 rc.5 / ^6 —— 重写等于把同一台 漂移机器重新上膛。 - 脚手架记录(#3709)—— create-plugin.mdx 逐字复制的那份 package.json 三处版本错、字段也错(把 workspace 链接的 dependencies 记成 ^0.3.0 的 peer),读者照做会装出一个装不上的包。改为描述真实生成形态并指向生成器 模板本身,不再逐字复制版本区间。 - 有锚重述(#3710)—— 与自家清单对齐而不是删除:layout 的三条 peer 行 收窄成清单逐字一致的形态(原 >= 拼写过度承诺,读者照装会拿到 peer 冲突), plugin-chatbot 的 @ai-sdk/react 主版本对齐清单。 ledger 相应收缩 27 → 21 条,stale 9 → 1(仅剩 plugin-report 那条, 其修法在清单侧,归 #3690)。棘轮两步实测:清前红并逐条点名 8 条陈旧条目 与 2 条未记录的新宣称,清后 6/6 绿。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
yinlianghui
marked this pull request as ready for review
August 8, 2026 10:06
This was referenced Aug 8, 2026
yinlianghui
pushed a commit
that referenced
this pull request
Aug 8, 2026
冲突只有一处:scripts/__tests__/doc-version-claims.test.ts。PR #3726(fbf7d6d) 在同一文件上清偿了 #3708/#3709/#3710 的 8 条失真,KNOWN_CLAIMS 27 → 21、stale 9 → 1(刻意留下的那条就是 plugin-report,修法在清单侧,归本单)。 三段冲突按并集语义在 #3726 之后的新形态上重写,而不是把本分支的旧文本贴回去: - 条目区(第三段):两侧各自删掉了自己那条 stale——main 删的是 layout(#3710 已把 README 的 `>= 18.0.0` 收窄成清单拼写),本分支删的是 plugin-report。 删除的并集就是整块去掉。layout 那条必须删:它指的宣称已不在树里,留着会让 「no entry may outlive the claim it excuses」这条棘轮红。plugin-report 那条也 必须删:本分支新增的 restatement 单行与它 keyOf() 完全相同,两条并存会撞上 「KNOWN_CLAIMS has duplicate entries」。 - 两段散文:改以 main 的事实清单为底(谁清偿了哪几条),把计数按合并后文件的 真实行重算。本分支原来写的「NINE → eight」在 #3726 之后本身已经过期。 计数逐行数出来,不靠推断:合并后 21 条(与 main ±0),restatement 12 → 13, stale 1 → 0。逐行比对 main 与解析结果的行集合,唯一差异是 `packages/plugin-report/README.md :: stale` → `:: restatement`,没有任何文件被 整条丢掉——即 #3726 的 9 条清偿全部完好过桥。另外同步了两处非冲突但被本次翻转 写旧的注释:restatement 类「12 of 21」→「13 of 21」,PEER_18_19 头注的「10 个 README / 第十一个 plugin-report 仍是 stale」→ 11 个,并说明它是从相反方向 (改清单而非改散文)加入的。 清单侧重新核对(一行读):packages/plugin-report/package.json 的 peerDependencies 现为 react / react-dom 皆 `^18.0.0 || ^19.0.0`,README:24-25 逐字相同,故 restatement 的 why 文本成立。package.json 与 changeset 均干净合并。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt
This was referenced Aug 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #3708
Fixes #3709
Fixes #3710
清偿 PR #3711 门禁记账的 9 处失真里属这三单的 8 处(第 9 处
plugin-report/README.md:24的修法在清单侧,归 #3690,本 PR 一字未动)。6 文件,+69 / -94。前提复核:三单全部成立,行号也没漂
在
origin/main(切点36bf20235,即 PR #3711 的合并点)逐处核过,8 处宣称全在,与 ledger 记的一致。两个反读也复现:29 个packages清单全部@objectstack/spec: ^17.0.0-rc.5,34 处typescript全部^6.0.3—— 均匀,不存在「部分包还在旧大版本」这种能救散文的读法。处置按失真性质分三类,不套统一口径
裁决要求分类执行,实测下来三类的处置方向确实不同,记在这里免得读成不一致。
一、无锚宣称(#3708 三处)—— 删版本号,指真相
照 #3645 / PR #3688 立下的仓规:版本号入散文即漂移保证,一律不改写成
rc.5/^6,重写等于把同一台漂移机器重新上膛。content/docs/guide/architecture-overview.md,三层架构 ASCII 图内(围栏里,这正是 #3711 决定扫描围栏而非抹掉围栏的实测依据之一):删掉 7 个字符、补回 7 个空格,该行长度保持 70 不变(方框本就因宽字形而各行不等宽,
:18是 69 —— 这个既有偏差不是本 PR 引入的,也没被本 PR 改动)。同页散文:
照 PR #3698 处理 Node 行的办法:真相存在(每个包清单的
dependencies)、由包管理器安装期强制,所以保留句子、把值改成指针,而不是整句删掉。content/docs/guide/architecture.md:317:这一处不加指针,与上一处不同处置,理由据实:这句话的主语是 strict mode 而不是编译器版本;而 TypeScript 的声明是贡献者工具链事实(34 处 devDependencies),不是消费者约束(包发
.d.ts),指过去会让读者以为那是安装要求。PR #3688 对同一条宣称的处置也是直接删版本(「差一个大版本,且无处可核实」)。二、脚手架记录(#3709)—— 对齐真实生成形态,不再逐字复制
先按裁决实测当前生成形态(truth =
packages/create-plugin/src/index.ts的 manifest 字面量),测出的不符远多于 ledger 记的三行:文档那份package.json还多报了一个files字段、少报了type/license/module/exports/dependencies/devDependencies,main也写错(文档dist/index.js,实为dist/index.umd.cjs)。处置取「改写为无版本形态」而非「入 ledger」,以该页上下文取舍,理由:这一页没有任何门禁或测试守着,而它已经证明了自己会漂;把一份逐字复制的 manifest 记成
restatement,等于宣告一个无人强制的等式。改为描述真实形态 + 指向生成器模板本身:「字段错」这一半因此被正面写进散文(dependencies,不是 peer)—— 这是读者照做会坏的根因,删掉数字并不会让它自己消失。
三、有锚重述(#3710)—— 对齐清单,不删
与前两类方向相反:这一族有同包
package.json作锚,分诊已裁 B(保留并钉住),所以处置是收窄到与清单逐字一致,而不是删版本号。packages/layout/README.md—— 分诊追评把同一块里的另外两行也并入本单(README 承诺>=,清单其实拒绝更高大版本,方向是过度承诺,读者照装会拿到 peer 冲突):三行现在与
packages/layout/package.json的peerDependencies逐字相等,已用脚本核对(三行全 MATCH)。packages/plugin-chatbot/README.md:58:清单是
^4.0.47,取其主版本。保留而不删的理由:全语料唯一一处指名协议来源的宣称,读者据它去查协议文档;删掉即失去该信息。这里刻意不改写成不带点也不带符号的裸「4」—— 那个拼写门禁的VERSION正则匹配不到(它自己的头注已写明这个已知召回缺口),写成裸大版本等于绕过门禁,所以写v4并入 ledger。ledger 清偿:27 -> 21 条,
stale9 -> 1anchoredrestatementsampleunanchoredstalelayout从独立stale条目并入按字母排序的 peer 一行式组(即裁决说的「照抄既有 9 包形态」),claim键随之变成PEER_18_19;plugin-chatbot改判restatement,why里写明锚是dependencies["@ai-sdk/react"]与保留而非删除的理由;stale是plugin-report,归@object-ui/plugin-report的 peerDependencies 只允许 React/ReactDOM^18.0.0,其余 28 个 UI 包都是^18.0.0 || ^19.0.0(仓库自身 dev 用 19.2.8) #3690。棘轮两步(照 #3703 手法):方向先预测,后跑
裁决要求「清前红报陈旧点名、清后绿」。两步都先写下预测再跑,且预测精确到条数与条目名。
步骤一 —— 文档已改、ledger 未动
预测:两条测试变红。「no entry may outlive the claim」点名 8 条(6 条被删的 + 2 条 claim 文本变了的);「records every version literal」点名 2 条新宣称;并且
react-dom/react-router-dom两行不会出现 —— 依据不是猜:packages/auth/README.md同款react-dom行今天就在树上而 ledger 里没有它的条目,main 却是绿的,所以那个拼写正则匹配不到。实测,与预测逐条相符:
8 条、2 条,
react-dom/react-router-dom均未出现。这一步是本 PR 唯一能证明「ledger 缩短不是走形式」的证据:清偿前它确实以「条目所指的宣称已不在树上」变红,并把 8 条逐条点名。步骤二 —— ledger 同步收缩
预测:6/6 绿。
反向验证:新增的那条自仓链接确实被门禁读到
create-plugin.mdx新增了一条blob/main/自仓链接,正落在check-doc-links.mjs§2 的可判定形状里。预测:把路径改成不存在的,门禁必须变红并点名该行 —— 只有红了,修后的绿才是真覆盖(同 PR #3698 的做法)。措辞遵 #3656:先量后改,并检查有没有重新上膛
^4.0.4^4.0.0rc.5|17.0.0TypeScript 5.0^6.0.3|TypeScript 6^0.3.0"react": "^18.0.0"workspace:*|^0.563|^19.0.0>= 18.0.0>= 6.0.0ai-sdk/react` v3ai-sdk/react` v4最后一行是故意不为零的:#3710 那一族有锚,处置是对齐而不是删除,所以它必须留下一个字面量并进 ledger。三类处置方向不同,这张表如实反映,不强行凑成「全部归零」。
门禁
scripts/的 351 与 PR #3711 正文记的 345 不同,据实说明:那是它合并前在自己分支上量的数;本 PR 的 diff 只碰 19 个测试文件里的 1 个,该文件测试数前后都是 6,未增未减。CI 预期(按 #3722 / #3523 step 2 落地后的真实机制写,不照抄旧口径):
ci.yml/lint.yml在pull_request上已经没有 trigger 级paths-ignore了 —— 那份排除表被移进 job 内的 "Decide whether this change needs a full run" 步骤(push那份保留,因为没人评判推到 main 的提交)。所以本 PR 不会显示成 workflow skipping,而是照跑、由该步骤判定。排除表是**/*.md/content/**/docs/**/apps/site/**/.changeset/**;我这 6 个文件里 5 个被排除(create-plugin.mdx是靠content/**命中,不是靠**/*.md—— 它是.mdx),但scripts/__tests__/doc-version-claims.test.ts不在排除表内,于是should_run=true,跑全量。结论方向与 PR #3688 / #3698 那两次的旧口径同(会真的跑),但机制不同:这条我在开 PR 后按
origin/main的当前 workflow 重读过一遍才写,原稿把过滤描述成 trigger 级的,已按实际机制改写 —— 在一个专门清偿失真宣称的 PR 里留一句失真的机制描述,是本 PR 自己要防的那件事。超出
KNOWN_CLAIMS行的那部分改动,单独交代派发文件面把该测试文件限定在「
KNOWN_CLAIMS行」。我另改了同文件的四处头注,理由是不改会让这个文件自己变成它要防的东西:@objectstack/spec ^4.0.x(差 13 个大版本)与 architecture.md 的 TypeScript 5.0+ #3708/create-plugin.mdx 记录的脚手架产物与packages/create-plugin/src/index.ts实际生成的不符(版本错、字段也错) #3709/两个包 README 的版本宣称与自己的 package.json 不符:plugin-chatbot 的@ai-sdk/reactv3(实为 ^4.0.47)、layout 的 react peer 比清单更宽 #3710 清偿,剩 1 条在清单侧(@object-ui/plugin-report的 peerDependencies 只允许 React/ReactDOM^18.0.0,其余 28 个 UI 包都是^18.0.0 || ^19.0.0(仓库自身 dev 用 19.2.8) #3690)」;restatement类注里的「largest class (11 of 27) … already drifting」计数与状态都变了,改为 12 of 21,并补写一句这个类买到了什么、没买到什么:它声称的逐字相等由人复核,门禁只问「有没有登记」;PEER_18_19常量注「9 package READMEs」-> 10(layout 加入),并写明第 11 个plugin-report是无清单支撑的那条。changeset:不加(写明判断)
content/docs/**不在任何包的files里,只被apps/site消费,不是发布物;scripts/__tests__/**不发布;README.md确在发布物内,但本改动是修正失真文档,无 API / 行为变更,且仓内先例一致不加(docs(packages): 退役 36 个包 README 里已死的 release-metadata §Compatibility 生成块 #3688 改 36 个包 README、docs(runner): 把 README 两处开放集合的插件措辞按实测闭合 (#3632) #3644、fix(plugin-tree): 补上 package.json files 已声明、但仓库里不存在的 LICENSE (#3647) #3662、feat(scripts): check-doc-links 扫描面第四扩 packages/*/README.md,并付清入场价的 11 条死链 (#3622) #3649 的合并提交.changeset/文件数均为 0);围栏
packages/plugin-report/README.md一字未动(@object-ui/plugin-report的 peerDependencies 只允许 React/ReactDOM^18.0.0,其余 28 个 UI 包都是^18.0.0 || ^19.0.0(仓库自身 dev 用 19.2.8) #3690 另裁,方向相反 —— 那处该改的是清单);content/docs/guide/release-notes.md未动(版本标题下的历史叙述,结构性豁免);content/docs/releases/未动;任何package.json未动;越界发现(只记录、不顺手修)
create-plugin.mdx该页其余部分同样描述了一个不存在的脚手架:6 个提示词(实为 3)、产物目录my-awesome-plugin/(实为packages/plugin-NAME/)、npm run dev(生成的 scripts 没有 dev,照做报 Missing script)、整节虚构的.create-plugin.config.js、Version0.3.1(清单为17.3.0)、依赖写 Inquirer / Ora(实为 commander / prompts)。全部落在本单 ledger 三行与裁决 truth 窗口(index.ts的 dependencies / peerDependencies 两段)之外,且大多不含版本字面量、门禁看不见,故不在本 PR 越界修。本 PR 因此刻意没有改写该页 §2 的npm run dev,也没在新散文里枚举scripts的具体名字 —— 那会把 create-plugin.mdx 描述的是一个不存在的脚手架:提示词、产物目录、dev 脚本、配置文件、版本与依赖清单全部与真实生成器不符 #3715 的范围拖进来。test脚本,却没在 devDependencies 里声明 @testing-library/react 与 jest-dom #3716 ——create-plugin生成的插件跑不了自己的测试:模板写入test脚本与一个 test 文件,却没在生成的 devDependencies 里声明@testing-library/react与jest-dom,vite 配置也没有 test 段/jsdom 环境。产物首次npm test即红。restatement类只是记账、没有断言:12 条 README 版本重述与自家 package.json 的逐字一致靠人复核(#3710 分诊裁的 B 只落地了一半) #3717 —— 两个包 README 的版本宣称与自己的 package.json 不符:plugin-chatbot 的@ai-sdk/reactv3(实为 ^4.0.47)、layout 的 react peer 比清单更宽 #3710 分诊裁的 B 只落地了一半:两处已对齐并改判restatement,但那条断言没加(派发文件面把本文件限定在KNOWN_CLAIMS行)。今天 12 条restatement声称的「与自家清单逐字一致」由人复核,棘轮两个方向都不响 ——@object-ui/plugin-report的 peerDependencies 只允许 React/ReactDOM^18.0.0,其余 28 个 UI 包都是^18.0.0 || ^19.0.0(仓库自身 dev 用 19.2.8) #3690 正是这个形状的活样本。🤖 Generated with Claude Code
https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt