Skip to content

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

Closed

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 路线决策)。本单未指派。

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Aug 6, 2026
  2. added
    domain:devxDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    and removed
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Aug 6, 2026
  3. claude commented on Aug 6, 2026

    @claude
    Contributor

    发现分诊轮:晋级 finding → pm:queue,域 domain:devx。

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


    Generated by Claude Code

  4. self-assigned this
    on Aug 6, 2026
  5. hotlong commented on Aug 6, 2026

    @hotlong
    Contributor

    认领:PM 循环第 3 轮(devx 车道)
    会话:session_01BDmDsu2575gDxeMCxXhDE3
    分支:claude/issue-5471-ban-empty-changeset-gate(与 #5471 并轨,同一 PR 双 Fixes)
    Worktree:objectstack-issue-5471
    域:domain:devx
    文件面:同 #5471 + 处方注释文本一句(skills/** 走路线 2)(越界即停,报告说明)

    并轨理由:#5471 的已批闸门(新空 changeset 即红)使路线 3 从此不可走,本单的「两权威冲突」被机械消解;剩余工作 = 处方文本把 skills/** 的正解写明一句。⛔ 不改发布语义(分诊边界,裁决本就不碰)。


    Generated by Claude Code

  6. hotlong commented on Aug 6, 2026

    @hotlong
    Contributor

    验收记录:本单随 PR #6059(双 Fixes,并轨 #5471)一并交付并 ACCEPT —— 处方文本已把 skills/** 正解写明(路线 2),路线 3 标 (CLOSED),两权威合一;闸门落地后空 changeset 路线对新 PR 机械不可走。完整验收摘要见 #5471 的验收评论。


    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

domain:devxDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpm:queueReady for the PM dispatch loop

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions