首页/文章/CLAUDE.md 越写越长?在新加坡 Mac mini 上把参考文档拆成 Claude Code Skills,一份主库统一管理

CLAUDE.md 越写越长?在新加坡 Mac mini 上把参考文档拆成 Claude Code Skills,一份主库统一管理

· Zumac.Ai

CLAUDE.md 为什么会越写越长

刚开始用 Claude Code 时,CLAUDE.md 往往只有几行:怎么构建、怎么跑测试。用了几个月,它就慢慢变成了一份「项目百科」:部署步骤、接口约定、数据库表说明、发版检查清单、踩过的坑,全都往里堆。

问题在于,CLAUDE.md 每次开会话都会被整份读进上下文。你今天只是想改一个按钮的文案,Claude 也得先把几百行部署手册读一遍。结果是两件事:留给真正工作的上下文变少了;规则太多、太杂,关键的那几条反而容易被忽略。

另一个常见的烦恼是 skill 散落各处。同时用好几个工具、在好几台电脑上干活,同一份「发版流程」可能存了三四份,这份改了、那份忘了,最后谁也说不清哪一份是最新的。

Claude Code 的 Skills 正好能解决这两件事:它是一个个带说明的文件夹,平时只占用一行简介,Claude 判断当前任务用得上时才去读完整内容。下面在一台常开的 Mac mini 上把这套结构搭起来。

Claude 账号由你自己开通并登录,请遵守 Anthropic 的服务条款与支持地区规则。本文只讲怎么搭一个稳定合规的使用环境,不涉及共享或转卖账号。Zumac.Ai 与 Anthropic 没有官方合作关系。

准备清单

  • 一台常开、不休眠的 Mac mini,已安装 Claude Code 并用你自己的账号登录。
  • 能用 SSH 或 UU 远程连接登录这台机器,终端里装好 git 和 tmux。
  • 一个正在维护、CLAUDE.md 已经比较长的项目仓库。

步骤一:给 CLAUDE.md 做一次体检

SSH 登录 Mac mini,进入项目目录,先看看它到底有多长:

  1. 运行 wc -l CLAUDE.md 看行数,再从头到尾读一遍。
  2. 把每一段归到两类里:每一轮都必须遵守的(构建和测试命令、不能碰的目录、提交信息格式、「改完先跑测试」这类硬规矩),和只在某类任务里才用得上的(部署手册、某个服务的接口说明、发版检查清单、排错笔记)。
  3. 第一类留在 CLAUDE.md,尽量写成短句;第二类就是接下来要拆出去的 Skills 候选。

一个简单的判断标准:如果一段内容一周只用得上一两次,它就不该每轮都占着上下文。

步骤二:把参考文档写成 Skill

一个 Skill 就是一个文件夹,里面必须有一个 SKILL.md。它可以放在两个位置:

  • 项目内:.claude/skills/<名字>/SKILL.md,跟代码一起进 git,团队成员拉下来就能用。
  • 个人全局:~/.claude/skills/<名字>/SKILL.md,对这台机器上的所有项目生效。

以「发版前检查」为例,在项目里新建 .claude/skills/release-check/SKILL.md,开头是一段 YAML 头信息:name 写 release-check,description 写清楚什么时候该用它,比如「准备发新版本、打 tag、更新版本号或更新日志时使用」。下面的正文才是具体步骤:核对版本号、更新 CHANGELOG、跑完整测试、确认构建产物、最后再打 tag。

description 是最关键的一行。Claude 平时只看得到每个 skill 的名字和这句说明,靠它来判断要不要加载全文,所以要写「什么场景用」,而不是只写「这是什么」。

篇幅很长的资料,比如完整的接口字段表,可以放在同一文件夹下的 reference.md,在 SKILL.md 里写一句「需要字段细节时再读 reference.md」;配套的检查脚本也可以放进来,比如 scripts/check.sh,让 Claude 直接执行,而不是每次重新写一遍。

拆完之后,回到 CLAUDE.md,把对应的长段落删掉,只留一句指引即可,例如「发版相关流程见 release-check skill」。

步骤三:建一个 skill 主库,用软链接接入

多台电脑、多个项目都要用的通用 skill,不要到处复制,集中放在一个 git 仓库里:

  1. 在 Mac mini 上建目录 ~/agent-kit,里面放 skills/ 子目录,每个 skill 一个文件夹,然后 git init 并推到你自己的私有远程仓库。
  2. 把主库接到 Claude Code 的个人目录:如果 ~/.claude/skills 里还没有东西,可以先把它移走备份,再执行 ln -s ~/agent-kit/skills ~/.claude/skills;也可以只为单个 skill 建链接,比如 ln -s ~/agent-kit/skills/release-check ~/.claude/skills/release-check。
  3. 如果你还用其他也支持同类 SKILL.md 格式的工具,同样用软链接指向这份主库,具体读取目录以各工具自己的文档为准。
  4. 以后改 skill 只改 ~/agent-kit 里那一份,git commit 后推送;其他电脑上执行 git pull 就同步了。

这样「同一个 skill 存了好几份」的问题就从结构上消失了:只有一份文件,其他位置都是指向它的链接。

步骤四:验证 skill 能被正确调用

  1. 在 tmux 里开一个新会话:tmux new -s skills,进入项目目录运行 claude。
  2. 先直接问它:「你现在可以使用哪些 skills?分别在什么情况下用?」确认刚才写的 skill 出现在列表里,说明也读对了。
  3. 再给一个符合 description 的任务,比如「准备发 1.4.0 版本」,观察它是否先加载 release-check、按里面的顺序逐项检查。
  4. 如果它没有用上,大多是 description 写得太泛。把触发场景写得更具体,再开一个新会话重试。

步骤五:让主库在常开的 Mac mini 上保持最新

Mac mini 一直开着,最适合当这套 skill 的「中心」:

  • 在 Mac mini 上用 crontab -e 加一条每天早上执行 cd ~/agent-kit && git pull --ff-only 的任务,其他电脑推上去的修改会自动同步过来。
  • 主库里只放流程和说明,不要放任何密钥、令牌或账号信息;需要凭据的步骤写成「从环境变量读取」,并在仓库里加好 .gitignore。
  • 每隔一段时间回头看一次 CLAUDE.md,新加进去的长段落及时挪到 skill 里,让它一直保持简短。

为什么放在一台常开的新加坡整机上

Skills 和 CLAUDE.md 的价值,在于每次会话都在同一套规则下工作。放在笔记本上,合盖、换网络、系统更新都会打断长会话,几台电脑之间的配置也容易各走各的。放在一台常开的 Mac mini 上,主库、项目和 tmux 会话都在同一个地方,你从哪台设备用 SSH 或 UU 远程连接进去,看到的都是同一个现场。

Zumac.Ai 提供的就是这样的环境:位于新加坡家庭宽带上的实体 Mac mini M6,整机独享(一人一台物理机),7×24 在线,支持 SSH 和 UU 远程连接,FileVault 全盘加密,退租时抹机重装。新客户整机租用 ¥999/月起,季付、半年付、年付有折扣。实际延迟取决于你本地的网络线路,建议先租一个月,把自己的 skill 主库和工作流跑通。

小结

  • CLAUDE.md 只留每一轮都要遵守的短规则,长资料不要每轮都读。
  • 只在某类任务里才用的内容写成 Skill,description 写清楚「什么时候用」。
  • 通用 skill 集中放进一个 git 主库,用软链接接入,改一处、处处生效。
  • 在常开的 Mac mini 上定时 git pull,主库里不放任何密钥。

有问题可以在 Telegram 联系 @singatao,或直接看 价格与付款周期。

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服