Skip to content

[finding] 三处 agent-facing 文本仍称「ci.yml/lint.yml 把 **/*.md 与 .changeset/** 列进 paths-ignore,只加 changeset 的 PR 不启动任何 workflow」—— #3523 step 2 已把 pull_request 的 paths-ignore 删掉,实测 md-only PR 起了 16 个 check #3857

Description

@yinlianghui

越界发现,记录于 #3737 / PR #3856(订正 console-development.md 顶部注记的 commit 归因)期间 —— 我照 AGENTS.md 的这句话在 PR 正文里写了「md-only 改动 CI 本不会触发」,推上去才看到 16 个 check 全起来了。按纪律只报不改,单独立单,未认领。

打 finding:三处都是注释/文档,没有任何用户或运行时受影响,门禁本身照旧工作。但它是 agent-facing 的陈述性错误,而且是那种「照它做决定 → 决定错」的类型(我就是当场的样本),与 #3737 同一族的验证税。严重度留给分诊裁。

事实(基线 origin/main @ c32323e1e4e5d7c72adda03dce0b46ecbe079403)

三处都断言 ci.yml / lint.yml 在 pull_request 上以 paths-ignore 排除 **/*.md 与 .changeset/**,并由此推出「只加 changeset(或只改 md)的 PR 不会启动任何 workflow」:

位置 原文要点
AGENTS.md:206 「ci.yml/lint.yml 都把 **/*.md 和 .changeset/** 列进 paths-ignore,只加 changeset 的 PR 不会启动任何 workflow」
scripts/check-changeset-presence.mjs:33-40 「ci.yml and lint.yml both list .changeset/** under paths-ignore, so a PR that adds ONLY a changeset starts no other workflow at all … the one check that could notice is the one check guaranteed not to run」
.github/workflows/changeset-guard.yml:3-8 「both ci.yml and lint.yml list '**/*.md' AND .changeset/** under paths-ignore. A PR that adds only a changeset therefore starts no workflow at all」

而这两个 workflow 自己的头注写着相反的事:

  • .github/workflows/ci.yml:12 —— 「No paths-ignore here any more (objectui#3523, step 2). It skipped the whole workflow on a docs-only / changeset-only PR, so every context this file produces was simply absent there and none of them could be made required. The path decision now lives inside the jobs — see the Decide whether this change needs a full run step in type-check. push above deliberately keeps its copy」
  • .github/workflows/lint.yml:37 —— 同样的「No paths-ignore here any more (objectui#3523, step 2)」

即 paths-ignore 今天只留在 push 触发上(ci.yml:6、lint.yml:32);pull_request 上已无路径过滤,workflow 照常启动,再由 job 内的 Decide whether this change needs a full run(ci.yml:130)决定跑不跑重活 —— 这正是 #3523 的目的:让 docs-only PR 也产出 required context,而不是让它们缺席。

活体反证:PR #3856 只改一个 .md 文件(skills/objectui/guides/console-development.md,+33/-7),推上去起了 16 个 check,含 Lint、Type Check、Test (shard 1..4/4)、Internal Docs Link Check、Control Byte Scan、Changeset Declaration。按上表三处文本的说法,这个 PR 应当「不启动任何 workflow」。

为什么值得改而不只是过时注释

check-changeset-presence.mjs 与 changeset-guard.yml 用这句话作为「为什么必须是独立 workflow / 反向触发」的论证前提。前提已被 #3523 撤掉,结论(独立 workflow + 反向触发)未必随之失效 —— 但下一个读者要么信了错的前提,要么得把 #3523 重新考古一遍才能判断这两个门今天还该不该长这样。AGENTS.md 那句更直接:它是给 agent 读的操作性断言。

建议范围(未实现,留给分诊/派发)

三处文本各改一句,统一改成「paths-ignore 只在 push 上;pull_request 的路径决策在 job 内(ci.yml 的 Decide whether this change needs a full run),见 #3523 step 2」,并把两个 changeset 门的存在理由重新表述为它今天真正的理由(反向触发的门本身没坏,只是理由要换)。不建议顺手改动 workflow 行为。

已就关键词(paths-ignore、check-changeset-presence、changeset-guard.yml、AGENTS.md)搜过本仓开放 issue,无同源单(#3805/#3736 是 AGENTS.md #-1 相关,不同题)。

Activity

  1. claude commented on Aug 8, 2026

    @claude
    Contributor

    Findings-round grading: promoted — finding removed, pm:queue applied (label and verdict land as a pair).

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  2. self-assigned this
    on Aug 11, 2026
  3. yinlianghui commented on Aug 11, 2026

    @yinlianghui
    CollaboratorAuthor

    CLAIM(与 #3859 并批,按 triage 的 docs-truth 同类注记) — session session_017Qqyix2QcnpUC9XeYVDzx3,dispatching now。Branch: claude/issue-3857-3859-docs-truth。一 PR 双关:本卡三处文本各改一句(paths-ignore 只在 push;PR 路径决策在 job 内,引 #3523 step 2)+ 两个 changeset 门的存在理由重述为今日真实理由(⛔ 不改 workflow 行为);#3859 的 "Retired names" 表改为 git 准确表述(d601ef6 落地 / ff9a0d9 删除)。dev 于分支点重验三锚点与活体反证(md-only PR 起 check 的事实今天是否仍然成立——#4339 刚证明过 docs-only PR 有 17 个 check)。


    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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions