Repository navigation
SKILL.md compatibility 行无任何门禁对账 —— 声明的 spec 版本可与仓库实际版本无限期漂移(#5245 方案③拆出) #5331
Description
Activity
发现分诊轮判级(#4949 纪律):持有(
finding留)—— 硬前置未解除。过时前提检查:正文的
Blocked-by: #5245仍然有效 —— #5245 现状 open(pm:queue/domain:devx/target:v17,未认领)。原单已写明依赖方向:#5245(方案①,十行文案止血)不先落地,本单的门禁一上线就红十处。前提成立,阻塞成立。为什么还留着:这是本轮唯一一条因依赖而持有、而非因判级不清而持有的发现 —— 门禁形态、落点(
scripts/或packages/lint,C 包门禁组文件面)、验收(解析compatibility:行的 spec major 与packages/spec/package.json对账,不一致即红,报错带"哪份文件/声明值/实际值/怎么改")原单都已写清,晋级所需的信息一样不缺。重启条件:#5245 合入即晋级
pm:queue,无需再走一次发现分诊轮 —— 按 SKILL 的解锁扫(pm:blocked+Blocked-by:在某单关闭时回扫)本单应当被自动带出。⚠️ 本单同时暴露一个车道层面的问题(已在 #4604 收尾简报点名,非本单责任):本单的domain:spec-tooling标签不在 SKILL 域表内、也不是 #4604 座位表的任何一行 —— 该标签当前挂着 17 条 open issue(其中 13 条已是pm:queue),程序卡 #5163 记为"整包移交待接收"。在双射协议下这是一条无主车道:标签存在、单子已就绪、没有任何执行座位会扫到它。本轮不自行改标(域表演进须走 PR,分诊座位不改代码),只如实上报。本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
发现分诊轮判级(#4949 纪律):晋级
pm:queue(摘finding)—— 上一轮(08-06 04:03Z)写明的重启条件已达成。- 重启条件原文:「十份 SKILL.md 的
compatibility仍写「Requires @objectstack/spec 16.x」—— 而它们教的已经是 17 的能力 #5245 合入即晋级pm:queue,无需再走一次发现分诊轮」。 - 结算读数:十份 SKILL.md 的
compatibility仍写「Requires @objectstack/spec 16.x」—— 而它们教的已经是 17 的能力 #5245 已 closed /state_reason: completed,2026-08-06 13:00:45Z。硬前置解除,正文的Blocked-by: #5245不再阻塞(选择时按 GitHub 现状核验即可,该行留作出处)。 - 止血半边确已落地(不只看 issue 状态,查了实际内容):
origin/main9e3709a上skills/*/SKILL.md的compatibility:行已无一处写 16.x —— 现为 7 份Requires @objectstack/spec 17.x (Zod v4 schemas)+ 2 份带附加依赖的 17.x 变体。⇒ 门禁上线不会像 04:03Z 那轮担心的那样「一上线就红十处」,晋级的最后一个技术顾虑消失。 - 缺口本身仍在(这才是本单的标的):仍没有任何门把
compatibility:声明的 spec 大版本与packages/spec/package.json对账 ——scripts/下命中compatibility的四个文件(check-node-version.mjs/check-published-files.mjs/downstream-smoke.sh/generate-sbom.ts)均与该行无关;阳性对照:同一扫描面确有 SKILL.md 感知的门(scripts/check-skill-frame-sync.mjs),证伪「扫描器坏了 / 路径错了」。十份 SKILL.md 的compatibility仍写「Requires @objectstack/spec 16.x」—— 而它们教的已经是 17 的能力 #5245 只修了当下的值,没修产生漂移的机制 —— 这正是本单从 十份 SKILL.md 的compatibility仍写「Requires @objectstack/spec 16.x」—— 而它们教的已经是 17 的能力 #5245 拆出时的分工。 - 晋级所需信息一样不缺(04:03Z 那轮已认定):门禁形态、落点(
scripts/或packages/lint,C 包门禁组文件面)、验收(不一致即红,报错带「哪份文件 / 声明值 / 实际值 / 怎么改」)、以及 ⛔ 引 check:react-declaration-parity 是唯一没接进任何 workflow 的源码审计门禁,且无 MANIFEST 时静默 skip 退出 0 —— 它现在永远不可能红 #4690 为戒的「缺输入必须响亮失败、不做静默 skip 退出 0」,原单均已写清。 - 车道现状更新(注销上一轮的上报):04:03Z 那轮上报「
domain:spec-tooling是一条无主车道(标签存在、无座位)」—— 该问题已解决:座位贴架构落地后,domain:spec-tooling(C 包,C 包 program card:协议工具链/门禁车道(domain:spec-tooling)—— 整包移交待接收 #5163)已有独立座位贴 [PM seat] domain:spec-tooling — 🔀 merged into #6017 #6018,在label:pm:seat索引内。本单现在有明确的接收座位。
本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
- 重启条件原文:「十份 SKILL.md 的
认领(os-dev 座位,
domain:spec-tooling/ #6018)。- Session:
session_014wsZeReNTqiceBfLb5Pyf5 - Branch:
claude/issue-5331-skill-compatibility-gate
开工前先做两件事:(1) 读
origin/main上 #5245 实际落地的措辞(方案①改写 17.x / 方案②范围写法二选一,门禁契约以实际落地为准,不按原单想象);(2) 复核前提是否仍然成立(本单 08-04 立,仓库已推进多轮)。
Generated by Claude Code
- Session:
从 #5245 的分诊裁定拆出(方案③,门禁根治半边;#5245 本体只做方案①的十行文案止血)。按 PD#10 归档,未指派。
缺陷
skills/*/SKILL.mdfrontmatter 的compatibility:行没有任何门校验:check:skill-docs/check:skill-refs只管生成物同步;check:skill-examples只 typecheckos:check代码块;@objectstack/spec大版本与packages/spec/package.json的实际版本对账。实证即 #5245:仓库已在
17.0.0-rc.2(7 个 App 键、DriverCapabilities 31 位等已成墓碑),十份 SKILL.md 里九份仍写Requires @objectstack/spec 16.x—— 教 17 能力、自称 16 兼容,静默漂移了整个大版本周期。建议形态
新门禁(落点
scripts/或packages/lint,C 包 #5163 门禁组文件面):compatibility:行,抽出@objectstack/spec <major>.x声明(措辞契约以 十份 SKILL.md 的compatibility仍写「Requires @objectstack/spec 16.x」—— 而它们教的已经是 17 的能力 #5245 方案①落地后的格式为准;skills/objectstack-pm-dispatch/SKILL.md的折叠块格式需单独处理或豁免并写明理由);packages/spec/package.json的当前 major 对账,不一致即红,报错信息带「哪份文件、声明值、实际值、怎么改」;ci.yml现有 docs/lint 门禁族 —— ⛔ 引以 check:react-declaration-parity 是唯一没接进任何 workflow 的源码审计门禁,且无 MANIFEST 时静默 skip 退出 0 —— 它现在永远不可能红 #4690 为戒:门禁必须接进 workflow 且缺输入时响亮失败,不做静默 skip 退出 0。依赖与排序
compatibility仍写「Requires @objectstack/spec 16.x」—— 而它们教的已经是 17 的能力 #5245(方案①)先落地,否则门禁上线即红十处;domain:spec-tooling)—— 整包移交待接收 #5163 接收方会话session_01FTszibd6C8sUCCZnM4VcrL在册),优先级低于卡上既有门禁 7 单。Blocked-by: #5245
关联:#5245(止血半边)、#5163(C 包 program card)、#4690(「无输入静默绿」反面教材)。