Uh oh!
There was an error while loading. Please reload this page.
docs(scripts): 删除 scripts/README.md —— 一份无门禁覆盖、无入站链接的第二份清单 - #3882
Merged
Conversation
`scripts/README.md` 的标题与主体(228 行里的 1-172 行)是 "Component Style Testing",通篇为 `scripts/test-component-styles.js` 与 `.sh` 写用法、Features、 Quick Start、CI 集成。这两个文件在仓库里都不存在,全仓对 `test-component-styles` 的命中只有这份 README 自己。 与 #3724 删 `.github/WORKFLOWS.md` 同一处理:一份没有任何门禁钉住的第二份清单, 按构造会漂移,而读起来同样权威。使它无声的两个因素在本次核查中都复现了: - `check-doc-links.mjs` 的 `SCAN_ROOTS` 是 7 项(content/docs、examples、 README.md、CONTRIBUTING.md、ROADMAP.md、docs、packages/*/README.md),不含 `scripts/` —— 这份文件从未被链接检查读到过。 - 全仓零入站引用:`scripts/README` 与 `test-component-styles` 两个前缀式定长 匹配(任何后缀都会命中)在 tracked 文件、工作树、文件系统三层均为 0;两处 `](./README.md)` 形式的相对链接分别落在仓根 `QUICK_REFERENCE.md`(指向仓根 README)与 `examples/console-starter/README.md`(`../README.md` 指向 examples/README),都不可能解析到 scripts/README.md。 文件尾部(174-228 行)的 "Development Scripts" 一节确实描述了三个真实存在的 脚本(setup.sh、component-analysis.js、shadcn-sync.js),这部分不是漂的 —— 但它在别处都有更近、更被覆盖的归属,删除不丢失任何独有信息: - `setup.sh` 的用法:仓根 `README.md` 的 "Development Setup"(在 SCAN_ROOTS 内) 与 `skills/objectui/guides/project-setup.md`(在 skills 路径门禁扫描面内)。 - 5 条 `shadcn:*` 命令:`packages/components/README_SHADCN_SYNC.md` 的 Usage 一节逐条覆盖(且更准确,带参数形式),`packages/components/README.md` 亦有 引用;`scripts/shadcn-sync.js` 自带 usage 输出,`scripts/__tests__/` 有 pin test。 - `component-analysis.js`:`package.json` 的 `shadcn:analyze` 与脚本自身文件头。 没有按可选修法 2(改写成真实索引):不带 `scripts/*.mjs` 文件集钉子的重写只是 把同一个漂移生成器重新上膛,而那颗钉子属于 #3735 家族的独立卡片。 Refs #3767
The latest updates on your projects. Learn more about Vercel for GitHub. |
yinlianghui
commented
Aug 8, 2026
CollaboratorAuthor
✅ 验收(PM,session 实物核验:头 裁定要点:
转 ready 并挂 auto-merge。越界 #3881(README_SHADCN_SYNC 成员矛盾,含「计数恰好互相抵消所以只钉数量会假绿」的取证)归分诊席。 Generated by Claude Code |
yinlianghui
marked this pull request as ready for review
August 8, 2026 23:34
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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#3767
自
origin/main@56ff0916e09085a5430957d5c62a7e5dc1a80d82切出。按分诊缺省走方案 1(删除),同型先例 #3724(删.github/WORKFLOWS.md)。改动
一个文件,只删不改:
scripts/README.md(228 行,全删)。前提复核(含一处对 issue 正文的更正)
在
origin/main上复核,核心前提成立:该文件标题与主体仍是 "Component Style Testing",为scripts/test-component-styles.js与.sh写用法、Features、Quick Start、CI 集成;两个脚本git ls-tree零命中,全仓对test-component-styles的命中只有这份 README 自己。但 issue 正文"整篇 / 100% 漂移死 / 没有一行提到 scripts/ 目录今天真正装着的东西"这一量化说法偏重,按行核对如下 —— 分诊评论说"premise fully holds",应该是只读了文件头:
# Component Style Testing(两个不存在的脚本)## Development Scripts(setup.sh / component-analysis.js / shadcn-sync.js)尾节列的三个脚本都真实存在,且它列的 5 条
shadcn:*命令与package.json逐条对得上(shadcn:check/update/update-all/diff/list)。这不改变删除的结论 —— 存活那节没有独有信息,三项都在更近、且被覆盖的地方另有归属:
setup.sh用法:仓根README.md的 "Development Setup"(在check-doc-links的SCAN_ROOTS内)+skills/objectui/guides/project-setup.md:316(在 docs(skills): guide 里反引号包裹的仓内路径无任何门禁校验 —— #3713/#3730 两轮 13+ 处死路径都是靠人肉发现的 #3735 落地的 skills 路径门禁扫描面内)。shadcn:*命令:packages/components/README_SHADCN_SYNC.md的 Usage 一节逐条覆盖(且更准确,带参数形式)+packages/components/README.md:24(packages/*/README.md在 SCAN_ROOTS 内)+scripts/shadcn-sync.js自带 usage 输出 +scripts/__tests__/的 pin test。component-analysis.js:package.json的shadcn:analyze+ 脚本自身文件头。换句话说:删掉的是"死的 75% + 冗余的 24%",而删除后这些事实的每一条都落在有门禁覆盖的载体上 —— 这比 issue 原本的理由更强。
入站引用清零证明
三层扫描,全为 0(前缀式定长匹配,故
scripts/README_FOO.md、test-component-styles.ts之类的任何后缀变体都会命中 —— 规避裸名 grep 的子串陷阱):相对链接形式逐一排除(
](README.md、](./README.md、](../scripts/README、scripts/README.md、scripts/README.md#):唯二命中的./README.md落在仓根QUICK_REFERENCE.md:99(解析到仓根 README)与examples/console-starter/README.md:94的../README.md(解析到examples/README.md),都不可能解析到scripts/README.md。反查(证明扫描器没坏,不是零命中假绿) —— 同一条命令形状打在确定存在的邻近词上:
scripts/check-doc-links→ 13 文件、scripts/setup.sh→ 3、shadcn:list→ 3、README_SHADCN_SYNC→ 1、Component Style Testing→ 1(且仅在被删文件内)。命中面横跨 md / yml / ts / json,并含skills/。反向验证:方向按实报,不套模板
模板预设的"回装被删的肢体 → 诊断转红"在这里按构造不可能,如实记录而不是造一个合形状的证据:这是一次纯文档删除,没有谓词可回装,而且回装前的基线本身就是全绿(删除前
check-doc-links=Links are valid across 7 scan roots,check-control-bytes= OK)。"文件在也绿、文件不在也绿"正是这张卡描述的缺陷本身 —— 它对 CI 完全不可见(SCAN_ROOTS七项里没有scripts/;tsconfig.scripts.json只 includescripts/**/*.ts;scripts/__tests__/scripts-type-check.test.ts只 walk.tsx?,故.md的增删对它是惰性的)。所以按分诊给定的可测等价物报:删除后
check-doc-links仍绿 + 入站引用三层零命中(含反查)。唯一能量化确认删除已生效的读数来自 control-bytes 门禁的扫描计数:3777 → 3776(恰少一个 tracked 文本文件)。门禁与验证
pnpm exec turbo run type-check --concurrency=2(末次编辑后,全仓,CI 同命令)Tasks: 78 successful, 78 total,exit 0,6m46snode scripts/check-doc-links.mjsLinks are valid across 7 scan roots.(删除前后一致)node scripts/check-control-bytes.mjsOK (scanned 3776 tracked text file(s); skipped 85 binary)node scripts/check-changeset-presence.mjs✅ No source of a released package changed in this range, so no changeset is owed.—— 按门禁判定不加 changesetgrep -naP越过门禁盲区)没跑测试套件:改动集是一个 markdown 文件的删除,零 TS/JS 面;
scripts/__tests__/里没有任何用例读取scripts/README.md(全仓README_SHADCN_SYNC/scripts/README检索已覆盖这一判断)。未做的事
没有走可选修法 2(改写成真实索引)。 不带
scripts/*.mjs文件集钉子的重写只是把同一个漂移生成器重新上膛,而那颗钉子属于 #3735 家族的独立卡片 —— 不在本卡范围内,也不过度建设。越界发现(已另立单,未在本 PR 修)
实施中为证明"存活那节在别处已有覆盖",顺着
packages/components/README_SHADCN_SYNC.md这条覆盖来源核对时撞到同族漂移,已查重后立为 #3881(finding,不带pm:queue,未指派):该文件的组件分类清单与shadcn-components.json相互矛盾 ——resizable被列为"可从 registry 更新"而 manifest 写明"re-syncing would break the build"、chart缺席、custom 计数 14≠15。附带一个值得记的细节:它的 "(46)" 计数今天仍然对得上,因为两处成员错误刚好互相抵消,所以只钉数量的检查会绿着放过它。#3767 的删除结论不受影响(该文件里 5 条shadcn:*命令用法是准确的,漂的是分类清单)。Generated by Claude Code