Skip to content

[finding] plugin-gantt 其余六个源码文件共 163 行中文注释(诫条 #-1),仓内无任何门机械强制该条款 #4884

Description

@yinlianghui

实施 #4021(QuickFilterBar.tsx 注释中文改英文,PR #4883)时,按派发要求顺扫了 packages/plugin-gantt 全包源码注释。#4021 修掉的是同文件的三行;别的文件里同形残留规模远大于此,按"不扩围"另单记录,未在该 PR 顺手改。

现状(origin/main 718ca9d45)

packages/plugin-gantt/src/ 下非测试源码,ripgrep \p{Han} 命中行数:

文件 命中行
GanttView.tsx 93
ObjectGantt.tsx 51
shifts.ts 9
scheduling.ts 8
ResourceWorkload.tsx 1
workload.ts 1
合计 163

样本:

  • GanttView.tsx:51 — 行尾注释 starting a MOVE instead of a resize (命中不稳)
  • GanttView.tsx:146 — JSDoc Per-task alert stroke (逐任务预警描边)
  • ObjectGantt.tsx:68 — JSDoc One quick-filter dimension (快速筛选维度)
  • ObjectGantt.tsx:1254 — 行尾注释 // 写后回读
  • shifts.ts:4 — 模块 JSDoc named time bands (白班 08:00-20:00, 夜班 …)
  • scheduling.ts:9 — 模块 JSDoc moved *later* (顺延)

形态与 #4021 完全同类:英文正文里嵌中文括注 / 行尾中文小注 / JSDoc 里的中文术语。

为什么是 observation-class 而不是缺陷

  • 已逐一确认全部位于注释内:JSDoc、行尾 //、JSX {/* … */} 注释块。非测试源码里没有中文运行期字符串 —— 唯二看着像字符串的是 ObjectGantt.tsx:216-217 的 JSDoc 代码示例(label: '白班'),是文档示例不是运行期取值。所以这不是 i18n 缺陷,用户看不到,今天没有人会撞上;
  • 纯注释,不进产物,零行为风险;
  • 严重度交 PM triage,不自行判定。

为什么它能长期存在(值得单独记一笔)

仓内没有任何门机械强制诫条 #-1 的英文注释条款:eslint.config.js 无对应规则,scripts/ 下也没有对应检查(已 grep chinese|han|non-ascii|english-only 确认)。诫条其余条款多半有门(如 check:control-bytes、check-changeset-no-major),这一条靠人读。因此这类残留只能靠人工发现,规模也就随包一起长 —— 如果决定修,顺带考虑加一条只扫注释的 lint 规则会比再来一次人工顺扫更耐久(注意:必须只扫注释,测试夹具的中文字面量是被验证的数据,见下)。

明确不在本条范围内

复现

rg -c '\p{Han}' packages/plugin-gantt/src --glob '!*.test.*'

Activity

  1. self-assigned this
    on Aug 17, 2026
  2. yinlianghui commented on Aug 17, 2026

    @yinlianghui
    CollaboratorAuthor

    【分诊晋级 + 认领】objectui 分片 PM(session_01GTRjn8xBqp75dk7kFupVRt)批次 15 派发,os-dev 实施。分支:claude/issue-4884-gantt-comments-english。

    晋级理由:与刚落地的 #4021/PR4883 完全同形(Commandment #-1 注释英文化),六文件 163 行清单已在卡内逐一确认全部位于注释内、非测试源码无中文运行期字符串 —— 机械可派,无需等分诊轮。「仓内无门强制该条款」的机制化半边不在本单(是否建门属门禁强度,归维护者,留卡内记录)。文件面:packages/plugin-gantt/src 六个源码文件(GanttView.tsx、ObjectGantt.tsx、shifts.ts、scheduling.ts、ResourceWorkload.tsx、workload.ts)注释-only + changeset;⛔ 测试文件、⛔ 行为代码。与在飞零交集(#4308 已交付)。


    Generated by Claude Code

  3. yinlianghui commented on Aug 17, 2026

    @yinlianghui
    CollaboratorAuthor

    【实施记录 + 对本卡复现命令的一处修正】PR #4888(draft)。前提复核通过:基线已从立卡时的 718ca9d45 漂到 372d9f9b4(PR #4883 的合并提交),六文件逐一重扫,行数与卡内清单完全吻合,合计 163,已全部改英文,改后 rg '\p{Han}' 零命中、无声明例外。

    一处值得回填到本卡的事实:本卡的复现命令会漏数。

    rg -c '\p{Han}' packages/plugin-gantt/src --glob '!*.test.*'
    

    \p{Han} 只匹配汉字(Lo),不匹配 CJK 标点。GanttView.tsx:3725 的 「→」 用的是 U+300C/U+300D(类别 Po),这条命令扫不到它 —— 所以 163 这个数是偏低的,实际还有这一处。已在 PR 里一并改掉,并补扫 U+3000-303F、U+FF00-FFEF、U+FE10-FE1F 确认归零。

    对本卡「若决定建门」那一段的直接影响:判据不能只有 \p{Han},否则门自身就带着这个盲区上线 —— 一条全角括号/顿号写成的注释可以永远绿着。这与仓内字节纪律踩过的同一类坑同形(门扫不到的字符正是它们藏身的地方)。

    其余按现状改写的两处(注释引用的中文 UI 字面量早已迁到 gantt.* bundle 键;一段注释块贴在了错误的 JSX 上方)已在 PR 正文逐条列出。行为零变有机械证明:六文件用 TypeScript 编译器 removeComments 转译后与改前 byte-identical;测试 386/386 全绿,type-check 14/14。

    本卡「仓内无门强制诫条 #-1」的机制化半边按派发要求不在本单,留给维护者定。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions