Skip to content

.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

Description

@os-project-manager

Found while implementing #3523 (PR #3722). Filed rather than fixed there — out of that card's scope — but it cost real time in that task, which is the argument for it being a defect rather than tidiness.

Measured

Comparing the **File**: ...yml entries in .github/WORKFLOWS.md against .github/workflows/:

Documented, but does not exist (5): changeset-check.yml, codeql.yml, deploy-docs.yml, pr-checks.yml, size-check.yml

Exists, but undocumented (9): changeset-guard.yml, check-links.yml, control-bytes.yml, cross-repo-issue-closer.yml, docs-links.yml, live-e2e.yml, lint.yml, performance-budget.yml, shadcn-check.yml

Why this is worse than an out-of-date file

The page does not merely lag; it advertises guardrails that do not exist, which is the exact direction scripts/__tests__/ci-cd-pipeline-doc.test.ts was written to catch on the other page:

Two candidate resolutions

  1. Delete .github/WORKFLOWS.md and leave content/docs/guide/ci-cd-pipeline.md as the single home. That page is pinned in both directions — a workflow with no heading fails pnpm test, and a heading naming a nonexistent .yml fails too — so the drift cannot recur there. A second, unpinned copy of the same inventory is a drift generator by construction, which is the lint.yml 的头部注释说「三条 object-ui/* 规则设成 error」,实际已经是四条 #3261 argument for not keeping hand-maintained enumerations at all.
  2. Keep it and extend the pin to cover both files. More work, and it leaves two documents saying the same thing, which is how they diverged.

Recommendation: (1). The content worth keeping (the "when to skip" guidance, the per-workflow "if it fails" notes) either already exists on the guide page or can be moved there in the same change, and the guide page's pin then owns it.

Not urgent, but not cosmetic either: this page is what an agent or a new contributor reads first, being in .github/, and it currently instructs them to do impossible things.

Activity

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

    @yinlianghui
    Collaborator

    认领:PM 循环批 180(objectui 整仓席位,登记表 objectstack#4604)

    裁决:采纳正文建议 方案 1(删除 .github/WORKFLOWS.md,单一家园归 pinned 的 ci-cd-pipeline.md)——理由:未钉住的手工清单副本按构造就是漂移生成器(#3261 仓规),双向棘轮已在 guide 页;值得保留的「何时跳过 / 失败怎么办」内容随同一 PR 移入 guide 页并入其钉。此为恢复不变量类裁决,维护者可否决(否决窗口)。

    会话:session_01GTRjn8xBqp75dk7kFupVRt
    分支:claude/issue-3724-workflows-md-dedup
    Worktree:objectui-3724
    文件面:.github/WORKFLOWS.md(删)+ content/docs/guide/ci-cd-pipeline.md + scripts/__tests__/ci-cd-pipeline-doc.test.ts(如需扩钉)(越界即停)


    Generated by Claude Code

  3. yinlianghui commented on Aug 8, 2026

    @yinlianghui
    Collaborator

    验收:PR #3745 ACCEPT(会话 session_01GTRjn8xBqp75dk7kFupVRt,PM 循环批 180)。

    交付内容:按裁决方案 1——.github/WORKFLOWS.md 删除(−422),真且缺的内容迁入有双向钉的 guide 页(+89/−6):Lockfile Merge Driver 新节(.gitattributes 半与加新 workflow 半此前无家)、stale.yml 豁免标签按 issues/PRs 分资源改真、bundle budget 的 If-it-fails 注记、并显式否认虚构的 changeset 门禁及其标签。钉面 +127(3 新钉):单一清单钉(复活被删页即红)、merge-driver 表双向钉(漏行红/幻行红)、.gitattributes 路由钉。

    超出票面的两处测量修正(正确处置):幸存 guide 页自己的 merge-driver 清单也是错的——两份拷贝各漏一个,真相是三个 workflow 都带该步;stale.yml 豁免标签两资源各有其表,原文合并成一张是错的。第 6 类虚构(Issue & PR Templates 节描述了不存在的模板)随页面消亡,不立单——"关于虚无的文档"非代码缺陷,判断成立。

    证据:逆向验证 5 变体全部预测红、逐条命中(含"恢复被删页 → 新钉红"的防复活牙、以及"种回 changeset-check 幻名 → 既有钉红"的双保险);入站引用 git grep 零命中(无需修链接);CI 16 项全落定零失败;无 changeset——先例机械化核过(近 40 提交中 docs 类 16/16 无 changeset)。


    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