Skip to content

docs(scripts): 删除 scripts/README.md —— 一份无门禁覆盖、无入站链接的第二份清单 - #3882

Merged
yinlianghui merged 1 commit into
mainfrom
claude/issue-3767-scripts-readme
Aug 8, 2026
Merged

docs(scripts): 删除 scripts/README.md —— 一份无门禁覆盖、无入站链接的第二份清单#3882
yinlianghui merged 1 commit into
mainfrom
claude/issue-3767-scripts-readme

Conversation

@yinlianghui

Copy link
Copy Markdown
Collaborator

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(两个不存在的脚本)1-172~75%100% 死
## Development Scripts(setup.sh / component-analysis.js / shadcn-sync.js)174-228~24%存活且准确

尾节列的三个脚本都真实存在,且它列的 5 条 shadcn:* 命令与 package.json 逐条对得上(shadcn:check / update / update-all / diff / list)。

这不改变删除的结论 —— 存活那节没有独有信息,三项都在更近、且被覆盖的地方另有归属:

换句话说:删掉的是"死的 75% + 冗余的 24%",而删除后这些事实的每一条都落在有门禁覆盖的载体上 —— 这比 issue 原本的理由更强。

入站引用清零证明

三层扫描,全为 0(前缀式定长匹配,故 scripts/README_FOO.mdtest-component-styles.ts 之类的任何后缀变体都会命中 —— 规避裸名 grep 的子串陷阱):

tracked (HEAD^ 含该文件): scripts/README -> 0 文件
test-component-styles -> 1 文件(即被删的 README 自身)
工作树(删除已应用): scripts/README -> 0
test-component-styles -> 0
Component Style Testing -> 0
文件系统(含 untracked): 0 命中

相对链接形式逐一排除(](README.md](./README.md](../scripts/READMEscripts/README.mdscripts/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 只 include scripts/**/*.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,6m46s
node 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. —— 按门禁判定不加 changeset
控制字节自查(commit message + diff,grep -naP 越过门禁盲区)0 命中

没跑测试套件:改动集是一个 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

`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
@vercel

vercelBot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectuiIgnoredIgnoredAug 8, 2026 11:32pm

Request Review

@yinlianghuiClaude

Copy link
Copy Markdown
CollaboratorAuthor

✅ 验收(PM,session session_01GTRjn8xBqp75dk7kFupVRt)

实物核验:头 b46b536dd,单文件 scripts/README.md 228 行纯删除、零其它改动;trailer 0;与在飞 #3546s7/#3852/#3780 零相交。
CI 终态(独立复核):17 检查全部 completed,15 success + 2 skipped,零失败(Internal Docs Link Check / Skill Guide Path Check / Control Byte Scan 均绿)。

裁定要点:

  • 分诊缺省方案 1(删除)正确执行,.github/WORKFLOWS.md documents 5 workflows that do not exist and omits 9 that do — including a changeset gate and a skip-changeset label neither of which is real #3724 同型先例;方案 2 的「不带钉子的重写 = 重新上膛同一漂移生成器」判断正确,未过度建设。
  • 卡片量化说法的更正采纳:「整篇 100% 死」实测为 ~75% 死 + ~24% 活 —— 但存活节零独有信息(setup.sh/shadcn:*/component-analysis 三项在门禁覆盖的载体上各有归属,逐一列证),删除理由更强而非更弱。这是「卡片是线索不是规格」的又一次正确执行。
  • 入站引用清零证明质量高:三层扫描(tracked 前缀定长匹配防子串陷阱 / 工作树 / 文件系统含 untracked)全 0 + 五组阳性反查证明扫描器没坏;相对链接形式逐一排除。
  • 反向验证豁免如实:「文件在也绿、不在也绿」正是本卡缺陷本身,不造合形状证据;唯一量化删除生效读数(control-bytes 3777→3776)给出。
  • changeset 不欠有 presence 脚本判定背书。

转 ready 并挂 auto-merge。越界 #3881(README_SHADCN_SYNC 成员矛盾,含「计数恰好互相抵消所以只钉数量会假绿」的取证)归分诊席。


Generated by Claude Code

@yinlianghui
yinlianghui marked this pull request as ready for review August 8, 2026 23:34
@yinlianghui
yinlianghui added this pull request to the merge queueAug 8, 2026
Merged via the queue into main with commit 47f6078Aug 8, 2026
18 checks passed
@yinlianghui
yinlianghui deleted the claude/issue-3767-scripts-readme branch August 8, 2026 23:34
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

scripts/README.md 整篇在讲两个不存在的脚本(test-component-styles.js/.sh),且被任何门禁与任何链接都覆盖不到

2 participants

@yinlianghui@claude