Skip to content

[finding] 已发布的 skills/objectstack-platform/SKILL.md 把能力词汇表的计数抄进散文(「all 28」「other eight」)而无任何门禁对账 —— #18694 一落地就同时变假,同形先例 #16853 已在另一个 skill 上修过 #18705

Description

@os-bill

⏱️ 本卡所有读数取自同一动作:2026-09-17T15:49Z。逐条本席第一手实测,亮控暗控写在读数旁边。

一句话

发布出去的 skills/objectstack-platform/SKILL.md 把平台能力词汇表的数量抄进了散文(「all 28」「the other eight」),而没有任何门禁把这个数对常量核 —— 在飞的 PR #18694 把词汇表带到 29,那两句当场变假。

实测

skills/objectstack-platform/SKILL.md(共 1223 行)
  :452  The other **eight** tokens in the vocabulary are **not** in that map and do not …
  :463  The authoritative list of all **28** is `PLATFORM_CAPABILITY_TOKENS`
         (`@objectstack/spec`, `kernel/platform-capabilities.ts`)

PR #18694(#18053 / 裁决 A′ item 1,已复核 PASS)把 token 数 28 → 29
  ⇒ 「all 28」与「other eight」在该 PR 落地的那一刻同时变假

没有门禁读它:

把 PLATFORM_CAPABILITY_TOKENS 引到的门禁面(scripts/ · packages/*/scripts/ · .github/)   0 个文件
⭐ 亮控 同一把 grep 在全树                                                              17 个文件
⭐ 暗控 伪造常量名                                                                        0

⛔ 为什么这不是落地阻塞,而是另立一卡

⭐ 决定性的一句就在同一节里::463 逐字把权威交给了常量本身 ——「The authoritative list of all 28 is PLATFORM_CAPABILITY_TOKENS」,并且下一句说未知 token 由 defineStack 在 authoring 时拒绝。⇒ 变假的是计数,⛔ 不是操作指令:照这节做事的人仍然被导向常量,而常量是对的。

而把它塞进 #18694 的代价是路线级的:那是手写的 skills/** 散文,⛔ 不是生成物,所以 #11705 生成物例外抬不起它 —— 一进 diff,一个本可普通队列落地的 PR 就变成受管四件套、留 draft 等维护者

⇒ 用一个陈旧计数换掉一次干净落地是不划算的;而且它无门禁,下一次加 token 还会再假一次 —— 那才是本卡要治的东西

⭐ 同形先例已经修过一次,修法是现成的

#16853(closed / completed)逐字:「skills/objectstack-ai/SKILL.md restates the platform-tool registry's counts and line ranges instead of citing it — three numbers go stale the moment PR #16844 lands」。它的修法落在 a256f18962,提交题目就是答案:「docs(skills): cite the platform-tool registry instead of restating it」

⇒ 同一个缺陷类在另一个已发布 skill 上重现了。

建议的修法(⛔ 非裁定)

  • A(照先例):把两处计数改成引用而不是复述 —— 不写数字,写「PLATFORM_CAPABILITY_TOKENS 里除去下表所列的其余 token」。⭐ 代价最低,且一次修好永不再假
  • B(加门禁):让某个门禁把 skills/** 里声明的计数对常量核。⚠️ 要先量误报:散文里的数字未必都是这个词汇表的。
  • C:A + B。A 治这一处,B 治「下一个把数字抄进散文的人」。

⚠️ 无论取哪条,skills/**受管面 ⇒ 承接它的 PR 按规矩留 draft 等维护者,⛔ 不走普通队列。这一点要写进那张卡的派发令,免得下一席以为它能照常入队。

顺带一条更硬的缺口,同一次复核升级上来的

marketplace 的 provider 行仍然指向 @objectstack/service-package。裁决 A′ 说「marketplace 只留目录/浏览那一半」,但把那一行重新指向谁,目前没有任何一方拥有:#18694 的面里没有它,#17676 的 items 2/3/5 按现文字也没写它。⇒ 「只留目录那一半」这句裁决目前执行在零个地方

⛔ 本席不代 domain:engine 车道认领;记在这里,是因为下一个读 platform-capabilities 的人会同时撞上这两件事。

查重(MCP search_issues,含 closed,9 条命中逐条读过)

出处

domain:spec seat 2(座位贴 #18549)在 PR #18694隔离达档契约复核(记录 5717148298,VERDICT PASS)的 boundary flag 里接手;本席复测了计数、门禁面与先例,并把它与升级上来的 provider 行缺口一并记下。


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions