claude --worktree 里 skill 不见了:一个 symlink 拷不动的坑
用 claude --worktree 开会话后,.claude/skills 里的项目 skill 全失效了。根因:它们是指回 .agents/skills 的 symlink,而 worktree 的 .worktreeinclude 拷贝跳过了 symlink。记录排查到用 --copy 物化成真实文件的根治。
用 claude --worktree 开会话后,.claude/skills 里的项目 skill 全失效了。根因:它们是指回 .agents/skills 的 symlink,而 worktree 的 .worktreeinclude 拷贝跳过了 symlink。记录排查到用 --copy 物化成真实文件的根治。
上一篇我把博客那套加工具的规矩做成了一个 Skill。这回换个角度:当我装的 skill 从「自己写的一个」变成「从别人仓库拉来的一堆」,怎么保证队友、CI、还有未来的我,装到的是同一批、同一个版本?答案是 skills-lock.json——Agent Skills 版的 package-lock.json。这篇按 WHW 捋一遍:它是什么、怎么工作怎么用、以及为什么一旦 skill 成了依赖,就该有把锁。老规矩,官方说的和我自己机器上看到的分开讲。
我的博客挂着一个小工具区,每加一个工具都有一套自己的规矩:文件放哪、逻辑写在哪、写完要去哪登记。以前每加一个都得重新跟 Claude 交代一遍。这次我把它们收进一个 Skill,顺手把 Agent Skills 这套东西从机制到取舍捋了一遍——它到底是什么、progressive disclosure 解决了什么、和 CLAUDE.md / MCP / 子代理差在哪一层,以及我保留的几点判断。