读 — GitHub Trending 里的 Claude Code 技能包
jdon.com 有一篇文章盘点了本周 GitHub 增长最快的 10 个项目,过半数与 AI agent 相关。其中三个项目直接面向 Claude Code 用户:一个教你怎样用配置文件约束 AI 的行为,一个帮 AI 记住上次会话的上下文,一个提供 20 个工程化技能模板。本文解读这三个项目背后的设计思路。
CLAUDE.md:把编码规矩写进配置文件
项目 forrestchang/andrej-karpathy-skills 把 Andrej Karpathy 对 LLM 编程行为的观察浓缩为一份 CLAUDE.md 文件。Claude Code 在每次会话开始时会自动读取项目根目录下的这个文件,然后在整个会话中遵循里面写的规矩。
这份文件只有四条规则,每条都针对 AI 编码时最常见的"坏习惯":
- 先想再做 (Think Before Coding):动手之前要把假设说清楚。如果存在多种理解,不能自己偷偷选一个,要列出来让用户决定。拿不准就停下来问,不要猜着往下写。
- 能少就少 (Simplicity First):只写解决问题需要的最少代码。没要求的功能不加,单次使用的代码不抽象,不可能发生的错误不处理。如果写了 200 行但 50 行就够,那就重写。
- 只改该改的 (Surgical Changes):改现有代码时,只动跟任务直接相关的部分。不改旁边的注释、不重构没坏的东西、不删别人留下的死代码(除非是你的改动让它变成了死代码)。判断标准:每一处改动都应该能追溯到用户的请求。
- 目标驱动 (Goal-Driven Execution):把任务转成可验证的目标。"加验证"变成"给非法输入写测试然后让它通过","修 bug"变成"写一个能复现的测试然后修好它"。对多步骤任务,先列计划,每步写清楚验证标准。
这四条规则有一个共同的哲学:宁可慢一点、多问一句,也不要自作主张地写出一堆后来要重来的代码。文件本身也坦诚说明了这个取舍:这些规则偏向谨慎而非速度,对于简单任务需要自行判断。
这种做法代表了一个趋势:从"提示工程"(prompt engineering,通过精心措辞的提示词来引导 AI)走向"行为工程"(behavior engineering,通过结构化的规则文件来定义 AI 在整个项目中的行为边界)。提示词是一次性的,每次会话都要重新组织语言;CLAUDE.md 是持久的,写一次就在整个项目周期内有效。
claude-mem:让 AI 记住上次聊了什么
Claude Code 有一个让用户很头疼的问题:每次会话结束后,上下文就清零了。下次打开,AI 对项目的历史、你的偏好、之前踩过的坑一无所知。claude-mem 就是来解决这个问题的。
它的工作原理分三步:
- 自动捕获 :在会话过程中,自动记录 Claude Code 的工具调用和观察结果。
- AI 压缩 :用 Claude 自身的 agent-sdk 对记录做语义摘要,把冗长的操作日志压缩成精炼的上下文。
- 按需注入 :在新会话开始时,把相关的历史上下文注入进去,让 AI "记住"之前的经验。
安装只需要一条命令:
npx claude-mem install
安装后重启 Claude Code,此后每次新会话都能自动获取之前积累的上下文。它还提供了一个本地 Web 界面(默认在 http://localhost:37777),可以浏览所有被记录的观察结果。
值得关注的几个设计细节:
- 渐进式披露 (Progressive Disclosure):不会一股脑把所有历史都塞进上下文,而是分层加载,同时在界面上显示 token 消耗,让你知道记忆的代价。
- 隐私控制 :可以用
<private>标签包裹敏感内容,被包裹的内容不会被记录到记忆库中。 - 跨工具支持 :除了 Claude Code,还支持 Gemini CLI、OpenCode 等工具。
这个项目解决的是一个根本性问题:AI 编码助手目前是"无状态的"(每次对话都不记得之前发生了什么),claude-mem 通过在应用层建立记忆机制来弥补这个缺陷,让 AI 能在多次会话之间积累对项目的理解。
agent-skills:把资深工程师的工作流打包成技能
addyosmani/agent-skills 提供了 20 个技能模板,覆盖从需求定义到上线的完整开发流程。与前两个项目不同,它不是针对某个具体问题(行为约束或记忆持久化),而是试图把资深工程师的工作方法论系统化地教给 AI。
20 个技能按六个阶段组织:
| 阶段 | 对应命令 | 核心原则 |
|---|---|---|
| 定义(Define) | /spec | 先写规格再写代码 |
| 规划(Plan) | /plan | 拆成小而独立的任务 |
| 构建(Build) | /build | 每次只做一个垂直切片 |
| 验证(Verify) | /test | 测试是证明,不是装饰 |
| 审查(Review) | /review | 提升代码健康度 |
| 发布(Ship) | /ship | 越快发布越安全 |
每个技能都有统一的内部结构:概述、触发条件、分步工作流、验证标准,以及一张反借口表(Anti-rationalization,列举 AI 常用的偷懒借口和对应的反驳)。比如在测试驱动开发技能中,表里列着"我晚点再加测试"这个借口,旁边写着反驳:"如果你现在不写,你就不会写。测试是设计的一部分,不是事后补的装饰。"
这个项目的设计哲学可以概括为三点:
- 流程而非文档 :每个技能不是供 AI 阅读的参考手册,而是带检查点和退出标准的工作流。
- 验证不可妥协 :每个技能都以证据要求结束,"看起来对"从来不等于"对了"。
- 反借口设计 :承认 AI(和人一样)会偷懒跳步骤,所以把常见的偷懒理由和反驳都写进去。
这些技能中融入了不少来自 Google 工程文化的概念。比如 Hyrum's Law(你 API 的任何可观测行为都会被别人依赖,即使你没承诺过保持它不变),Beyonce Rule(如果你没给它写测试,它就不存在,出了问题自己扛),Chesterton's Fence(不懂为什么存在的代码就不要删,因为删了才发现它其实是在防止某个你看不见的问题)。
三个项目的共同线索
这三个项目虽然解决不同的问题,但都指向同一个方向:AI 编码助手正在从"一次性对话工具"进化为"可持续协作伙伴"。
- CLAUDE.md 解决 行为一致性 问题,通过配置文件让 AI 在整个项目周期内保持稳定的工作方式
- claude-mem 解决 状态连续性 问题,通过跨会话记忆让 AI 能积累对项目的理解
- agent-skills 解决 过程规范性 问题,通过结构化的工作流让 AI 遵循资深工程师的决策习惯
三者组合起来的效果是:AI 知道怎么做事(CLAUDE.md),记得之前做过什么(claude-mem),按照什么流程来做(agent-skills)。这正是把 AI 从"工具"升级为"队友"所需要的基础设施。