pnpm 12.18 开始管 agent skill 的链接:装个包,.claude/skills 里就多一个目录

这个版本把「依赖包自带的 agent skills」当成一等公民:链接名按 skill 本身命名、冲突时自动加前缀、install 时可逐个批准;另外加了 pnpm store add 支持离线安装。

pnpm 12.18 是 11 月 5 日发的。我读它的 Minor Changes,第一条就把我看愣了:pnpm 现在会把你依赖包里的 agent skill 链接进项目。

pnpm 12.18.0 的发布说明:agent skills、平台变体、离线安装

依赖包里带 skill,这件事终于有规范了

具体是这么回事:如果 @acme/kit 这个包在 skills/auth/ 里带了一个 skill,pnpm 会把它链接成 .claude/skills/auth。

注意这个命名 —— 早先的形态是 .claude/skills/pnpm-@acme+kit-auth,把包名和版本编码进目录名。能工作,但难读,而且和手写的 skill 目录混在一起时看起来很怪。现在直接用 skill 自己的名字。

冲突的处理也定下来了:两个包带同名 skill,或者这个名字已经被占了,pnpm 会链接成 pnpm-<package>-<skill>。以前这种情况会直接让 install 失败 —— 那才是真正让人抓狂的地方:你什么都没改,只因为升了一个依赖,装不上了。

发布说明往下:Agent skills 一节的三条规则

逐个批准,而不是全都要

第二条我更喜欢:当包带了不止一个 skill 时,pnpm approve 会问你要链接哪些。选择被记进 permissions.<pkg>.skills(一个列表),没被选中的以后不会再弹出来烦你。

第一次批准 skill 时,它还会问你要把 skill 链接到哪些 agent 目录,答案存在 skills.dirs。

这是把「依赖的代码可以执行」这件事,往前推了一步:skill 本质上是一段会被 agent 读取并执行的指令,它比一段库代码更接近「权限」。 让安装工具为它设一道确认,是对的。

另外,嵌套在分类目录里的 skill(skills/engineering/implement/SKILL.md)现在也能被识别,最多三层。

其余两条

  • pnpm store add:从下载好的 tarball 离线安装。这个对隔离网络(内网构建机、气隙环境)是刚需
  • 重复 install 与 verifyDepsBeforeRun 不再读取未变更的 workspace 项目的 package.json:大 monorepo 里这一条能省掉实实在在的时间
  • 一批 peer dependency 解析的修复

pnpm 的博客

一点个人判断

包管理器过去二十年的战场是「装得快不快、装得对不对」。现在多了一条:装进来的东西里,有多少是会被自动执行的。

pnpm 这次的处理方式不算激进 —— 它只是给 skill 起名、去重、加确认。但它承认了一个事实:依赖不再只是代码,它也可能是 agent 的行为指令。这个承认本身,比功能更有分量。

pnpm 的安装文档

如果你现在还没用到带 skill 的包,这个版本对你最大的实际收益是「少读几个 package.json」和「离线安装」。但等哪天你 pnpm install 之后发现 .claude/skills 里多了东西,不必惊讶 —— 那说明这条链路已经在跑了。

← 返回文章列表

评论

…