Skip to content

唯一一处「真 Claude 装真插件」的 CI 从不跑 doctor:#1096 这类接线漂移能一路绿灯发出去 #1099

Description

@leeguooooo

事实

release.ymlcheck Claude plugin (2.1.154 / 2.1.232) 是全流程里唯一让真 Claude真插件包碰面的地方。它跑三件事:

  1. sync-agentparty-plugin.ts --check(镜像同步)
  2. claude plugin validate --strict plugins/agentparty(Claude 自己的清单校验)
  3. verify-agentparty-plugin-install.ts(隔离目录里装一遍,查装完的文件树)

三件事里没有一件调过 inspectClaudePluginBundle,也没有一处读过 claude plugin list --jsonmcpServers,或者断言过 party doctor claude-plugin --jsonbundle_valid

$ grep -n "inspectClaudePluginBundle\|doctor claude-plugin\|bundle_valid\|plugin list --json" \
    scripts/verify-agentparty-plugin-install.ts
(无输出)

所以 #1096 在 0.2.263、0.2.264 两个版本上,这两个 job 都是绿的——它们校验的是「包本身合法」,不是「装完之后我们自己的检查器认不认它」。而用户撞上的正是后者。

修法

verify-agentparty-plugin-install.ts 装完之后加一步:拿装出来的那份 claude plugin list --json 里的条目,喂给 inspectClaudePluginBundle,断言 valid === true;不过就把 reason 打出来。

它跟单测的分工是清楚的、不重复:

两条缺一条,#1096 就还会再来一次:单测那侧当时是绿的,因为 fixture 和检查器一起错;CI 这侧是绿的,因为它压根没问过这个问题。

验收

不是靠 job 变绿:把 plugins/agentparty/claude-mcp.json 的 args 临时改一个字(模拟 #1089 那种改动),这个 job 必须红。改不红就是没接上。

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

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions