pnpm 12.18 开始管 agent skill 的链接:装个包,.claude/skills 里就多一个目录
这个版本把「依赖包自带的 agent skills」当成一等公民:链接名按 skill 本身命名、冲突时自动加前缀、install 时可逐个批准;另外加了 pnpm store add 支持离线安装。
pnpm 12.18 是 11 月 5 日发的。我读它的 Minor Changes,第一条就把我看愣了:pnpm 现在会把你依赖包里的 agent skill 链接进项目。

依赖包里带 skill,这件事终于有规范了
具体是这么回事:如果 @acme/kit 这个包在 skills/auth/ 里带了一个 skill,pnpm 会把它链接成 .claude/skills/auth。
注意这个命名 —— 早先的形态是 .claude/skills/pnpm-@acme+kit-auth,把包名和版本编码进目录名。能工作,但难读,而且和手写的 skill 目录混在一起时看起来很怪。现在直接用 skill 自己的名字。
冲突的处理也定下来了:两个包带同名 skill,或者这个名字已经被占了,pnpm 会链接成 pnpm-<package>-<skill>。以前这种情况会直接让 install 失败 —— 那才是真正让人抓狂的地方:你什么都没改,只因为升了一个依赖,装不上了。

逐个批准,而不是全都要
第二条我更喜欢:当包带了不止一个 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 这次的处理方式不算激进 —— 它只是给 skill 起名、去重、加确认。但它承认了一个事实:依赖不再只是代码,它也可能是 agent 的行为指令。这个承认本身,比功能更有分量。

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

评论
…