Skip to content

已发布 skill 变更的 changeset 路线先例与 #5292 现行处方冲突(空 frontmatter vs skip-changeset 标签) #5947

Description

@os-zhuang

观察类发现,来自 #5245 / PR #5937 的先例实测。今天没有用户会碰到,不是缺陷单;记录下来是因为它是个会自我复制的作者侧陷阱。

现象

已发布 skill(skills/**,随 npx skills add objectstack-ai/objectstack/skills 发给第三方)时,「走哪条 changeset 路线」有两个互相矛盾的权威来源:

现行处方(.github/workflows/pr-automation.yml,#5292 / PR #5467,2026-08-05 13:18 UTC)明确三路不等价:

实际先例链却一致走路线 3:#4607#5130#5451 / PR #5799(77adf297f)都用空 frontmatter changeset,理由写在 PR #5799 的 changeset 正文里 —— 「skills/ 不随任何 npm 包发布,没有包可署名」。

关键时间差:77adf297f 落于 2026-08-06 06:57 UTC,比 #5292 把路线 3 降级为 LAST RESORT 晚了一天。即最新的已发布-skill 先例,是在处方已经改口之后,仍然用了被降级的那条路线。

为什么值得记一笔

skills/ 不随 npm 包发布,没有包可署名」这句推理本身是对的 —— 实测 skills/ 不是 workspace 成员,根包 private: true,没有任何 package 的 files 收录它。但由此得出的结论应是路线 2(本 PR 不发布任何东西 → 标签),而不是路线 3:空 changeset 同样名不到任何包,其正文到不了任何 CHANGELOG,买不到标签给不了的任何东西,却额外承担了 #4898 的风险。

陷阱在于它自我复制:下一个改已发布 skill 的 agent 按惯例 git log 找先例,命中 #4607 / #5130 / #5451 三个一致的空-changeset 样本,就会照抄那条被降级的路线,而处方藏在 workflow 注释里不在 git log 里。

当前风险面(实测,非推断)

.changeset/ 待发 1198 份:空 frontmatter 182 份,非空 1016 份。非空占绝大多数,所以眼下不会触发 #4898 的全空静默停摆 —— 故本单按观察类归档,不带 pm:queue

可能的处置方向(仅供分诊,未实现)

  1. 什么都不做,只在处方里补一句「skills/** 的变更走路线 2」,让下一个 agent 搜到;
  2. 把这条判据写进 AGENTS.md 或 skill 作者指引,和 workflow 注释同源;
  3. check-changeset 加一条:PR 只动 skills/** 且新增的 changeset 是空 frontmatter 时,提示改用标签。

方向 3 是新门禁,按 #5245 的分诊纪律不该顺手写;方向 1 最省。留给维护者判。

发现于 #5245 的先例实测(PR #5937 的 changeset 路线决策)。本单未指派。

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions