Repository navigation
docs-drift 的 **Name** tile 散文规则只在英文页开火——zh 页正文里的磁贴引用无人检查 #725
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3Medium: important, M3
Description
Activity
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentationbugSomething isn't workingSomething isn't workingpm:queueReady for the PM dispatch loopReady for the PM dispatch looppm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchand removedpm:queueReady for the PM dispatch loopReady for the PM dispatch loop
on Aug 5, 2026 🔒 认领(/pm-dispatch R28)— session
session_01VHrPAGEgFDoHjphqYG4BMa,分支claude/issue-725-tile-regex-locale。文件面:
test/docs-drift.test.ts的TILE_REFERENCE正则族与相邻 Locale note 注释,守卫单,不动任何文档页。裁定:
- 修法二选一由你依代码结构定(正则加
(?:tiles?|磁贴|磁貼)分支,或小映射表取词),PR 里说明取舍;倾向映射表若不增加复杂度。 - 两阶段红→绿验证必做(账本类守卫先例 docs(i18n): spell the lead convert verb 转化 on every Chinese page (#844) #906):先在某 zh 页临时注入一条假磁贴散文引用(
**不存在的磁贴** 磁贴)证新正则能红,移除后回绿;两次运行输出贴进 PR body。临时注入不得进提交历史(工作树内验证即可)。 - vacuity guard(refs.length>0 并集断言)行为不得变脆——改后单跑该文件确认三 locale 的引用计数都被算入。
- 英文页现有行为零变化;基线 17.0.0-rc.3;此为测试代码,遵循文件既有注释风格。
Generated by Claude Code
- 修法二选一由你依代码结构定(正则加
✅ 验收通过 —— PR #929 已转 ready 并挂 auto-merge(CI 9/9 全绿实核)。
验收要点:
- premise partial 收窄得当:核心前提成立(规则确实只读英文),但把 issue 的「7 个加粗名」精确到「符合『加粗名+紧跟磁贴名词』构造的只有 2 条,en 侧对其余 5 个同样不读」——修的是真实的洞,不是虚胖的洞。
- 映射表取舍论证充分:词表在文件内被三处消费(正则、vacuity 报错文案、新自检),内联即三份拷贝的漂移风险;代价(失去正则字面量语法校验)如实写明。
- 两处正则细节按实测定稿是本单亮点:分隔符放宽到零空白(中文排版不要求空格,否则
**X**磁贴仍是洞);尾部用 ASCII 负向前瞻替代\b(JS 词边界在「磁贴」+中文句号处不成立,照搬会让中文分支是死的)——第二条是「写守卫的人先证明守卫活着」的教科书案例。 - 红→绿完整且有历史根据:注入的假名正是 content/docs/analytics/dashboards.mdx describes tiles that no dashboard ships (near-total drift, plus a fabricated usage stat) #610 里以散文形态真实出现过的 Slipping Deals(带空格)+ 无空格繁体各一条,1 failed 逐条点名 → 移除 34 passed;反向(旧正则+注入)引用规则绿、新自检红并列出全部 6 种读不到的拼法——休眠缺口被双向证明。自检从首败中断改为收集后断言,报错完整性也顺手修了。
- 命中计数 en 2→2(行为零变化)、zh 0→2×2,并集 2→6;vacuity 判据未动,新自检补上「并集靠英文撑着静默重开」那一刀;注入未进历史(git log -S 验证)。零越界发现。
Generated by Claude Code
- added a commit that references this issue
on Aug 10, 2026 - added a commit that references this issue
on Aug 27, 2026 - addedpriority:p2Medium: important, M3Medium: important, M3and removed
on Sep 9, 2026
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3Medium: important, M3
在实现 #685 时发现,作为观察记录立单,不在该 PR 里顺手改(属于判据变更,#685 的文件面明确限定为「
DOC_PAGES增两路径」)。现象
test/docs-drift.test.ts的 dashboards 守卫有两类规则:- **Name** — …必须解析到该仪表盘的真实 widget。**Name** tile/tiles必须解析到某个仪表盘的真实 widget。第 2 条的正则是:
它要求加粗名之后紧跟英文单词
tile/tiles。#685 把两个语言页加进DOC_PAGES之后,第 1 条规则对三份文件都生效,第 2 条实际上只对英文页生效 —— 因为 zh 页写的是**Quiet 90+ Days** 磁贴/**Quiet 90+ Days** 磁貼,正则匹配不到。为什么现在不是活的缺陷
#685 的 PR 里,两个语言页正文中出现的每一个加粗磁贴引用都人工逐条核对过,全部是真实 widget:
Win / Loss by Rep、Why We Lose、Quiet 90+ Days、SLA Violations、SLA Compliance、Interactions on Deals、Open Deals。所以今天没有任何读者会踩到假引用 —— 这是休眠的覆盖缺口,不是现存错误,故按 observation-class 归类(finding,不带pm:queue)。它值得记下来的原因是:#610 的原始缺陷里,
Slipping Deals恰恰同时出现在清单和散文("每周五使用 Slipping Deals 磁贴来规划下周的交易评审通话")。也就是说,这一类缺陷在历史上真的以散文形态出现过;现在只是碰巧两处都干净。下一次有人往 zh 页正文里补一句「用 XXX 磁贴来…」,没有任何东西会拦。可选的修法
正则加一个语言无关的替换分支即可,例如把量词部分放宽为
(?:tiles?|磁贴|磁貼);或者更稳的做法是让各语言页的「磁贴」用词从一个小映射表里取,避免正则里硬编码中文。两种都不影响英文页现有行为。注意第 3 条 vacuity guard(
refs.length必须 > 0)是对三份文件的并集断言,所以放宽正则不会让它变得更脆。现状记录
#685 的 PR 已在
test/docs-drift.test.ts的 Locale note 注释里写明了这个不对称,免得下一个读者误以为 zh 页正文也已被覆盖。本单只是把它挂到 backlog 上等 PM 分诊。https://claude.ai/code/session_01VHrPAGEgFDoHjphqYG4BMa