团队开发经验的长期记忆——让 Claude 跨 session 记住并复用过去解决问题的经验。
Claude Code 的 skill,基于 grep 搜索 + CLAUDE.md 触发,零额外费用,随代码进 git。
LLM 天然无记忆。同样的 WebSocket 重连坑、同样的 Next.js 构建陷阱,每次都要重新踩。
Exp-book 给 Claude 配备一个团队共享的经验库:
- 召回:开始任务前自动搜索历史经验,避免重复踩坑
- 沉淀:任务结束后 Claude 自动评估,满足条件则写成卷轴永久留存
与 Claude 自带 MEMORY.md 的区别:
| MEMORY.md | Exp-book | |
|---|---|---|
| 内容 | Claude 的碎片笔记 | 完整解题经验 |
| 受众 | 个人,不进 git | 团队,进 git 共享 |
| 容量 | 200 行上限,全量加载 | 无上限,按需 grep |
| 触发写入 | Claude 自动 | CLAUDE.md 指令触发 |
两者互补——MEMORY.md 记住「你喜欢用 bun」,exp-book 记住「这个项目的 WebSocket 重连要这样写」。
在你的项目根目录执行,安装分两步:复制 skill 文件到项目 + 追加 CLAUDE.md 指令。
卷轴会写入项目的 .claude/skills/exp-book/references/,随代码一起进 git。
在项目根目录,把以下 prompt 发给 Claude:
请参考 https://github.com/Dearest/exp-book-skill 的 README.md,
帮我手动安装 exp-book skill:
1. 把 skills/exp-book/ 目录复制到当前项目的 .claude/skills/exp-book/
2. 在当前项目根目录的 CLAUDE.md 末尾追加 Exp-book 写入触发指令
在项目根目录执行:
Step 1 — 复制 skill 文件到项目:
mkdir -p .claude/skills
cp -r /path/to/exp-book-skill/skills/exp-book .claude/skills/exp-bookStep 2 — 在项目根目录的 CLAUDE.md 末尾追加(文件不存在则新建):
## Exp-book 经验沉淀
任务完成后,评估本次经验是否有复用价值——团队成员遇到类似场景时,读到这份经验能显著节省时间。
满足以下任一条件时,调用 exp-book skill 写成卷轴:
- 走了弯路或多次尝试才找到正确方案
- 涉及未文档化的行为、陷阱或反直觉的决策
- 沉淀了可复用的自动化流程或标准操作步骤
不写:官方文档已明确说明的标准操作、无可迁移洞察的一次性配置、已有卷轴覆盖的内容(改为更新或补充已有卷轴)。召回(任务开始时触发):
/exp-book 修复 WebSocket 重连失败的问题
Claude 提取关键词,grep 搜索 references/,命中则读取卷轴并给出建议。
沉淀(任务结束后自动触发):
Claude 评估本次任务是否满足写入条件,满足时自动写入并告知:
✅ 已保存卷轴:references/websocket-reconnect-backoff.md
卷轴随 git 提交,成为团队共享资产。
无固定模板。用自然语言写清楚四件事:遇到什么问题、踩过哪些坑、最终怎么解决、有什么注意事项。像写给同事的笔记。
文件名英文小写连字符,描述问题核心:
✅ react-hooks-dependency-trap.md
✅ nextjs-image-cdn-cors.md
❌ bug-fix.md(太模糊)
参考示例:skills/exp-book/references/example-claude-code-skill-grep-search.md
零维护成本:原版 exp-book 依赖 index.yml 双份维护,没人愿意写。新版去掉索引——卷轴内容即索引,grep 直接搜,写入零负担。
零额外费用:借鉴 MEMORY.md 机制,把触发指令写进 CLAUDE.md,Claude 在正常推理中顺带评估,不需要额外的 Hook 或 API 调用。
经验即团队资产:卷轴与 SKILL.md 同仓库,通过 PR 贡献,通过版本控制管理,可共享、可追溯。
Long-term memory for your team's development experience — lets Claude remember and reuse past solutions across sessions.
A Claude Code skill powered by grep search + CLAUDE.md triggers. Zero extra cost, lives in git alongside your code.
LLMs have no memory. The same WebSocket reconnection bug, the same Next.js build trap — you rediscover them every time.
Exp-book gives Claude a shared team knowledge base:
- Recall: Searches past solutions before starting a task, avoiding known pitfalls
- Write: Claude auto-evaluates after each task and saves a scroll if the criteria are met
How it differs from Claude's built-in MEMORY.md:
| MEMORY.md | Exp-book | |
|---|---|---|
| Content | Claude's quick notes | Full problem-solving experience |
| Audience | Personal, not in git | Team-shared, in git |
| Capacity | 200-line limit, always loaded | Unlimited, grep on demand |
| Write trigger | Claude auto | CLAUDE.md instruction |
Complementary — MEMORY.md remembers "you prefer bun", exp-book remembers "this is how WebSocket reconnection works in this project".
Run from your project root. Two steps: copy the skill files into the project + append to CLAUDE.md.
Scrolls are written to .claude/skills/exp-book/references/ inside your project and committed to git alongside your code.
From your project root, send this prompt to Claude:
Please follow the README at https://github.com/Dearest/exp-book-skill
to manually install the exp-book skill:
1. Copy skills/exp-book/ into this project at .claude/skills/exp-book/
2. Append the Exp-book write trigger to CLAUDE.md at the project root
From your project root:
Step 1 — Copy the skill files into the project:
mkdir -p .claude/skills
cp -r /path/to/exp-book-skill/skills/exp-book .claude/skills/exp-bookStep 2 — Append to CLAUDE.md at the project root (create if it doesn't exist):
## Exp-book Experience Log
After completing a task, evaluate whether the experience has reuse value — would a team member in a similar scenario save significant time by reading it?
Write a scroll if any apply:
- Took wrong turns or multiple attempts before finding the correct approach
- Involved undocumented behavior, traps, or counter-intuitive decisions
- Established a reusable automation workflow or standard operating procedure
Do NOT write if: the solution is standard and well-documented, is a one-off configuration with no transferable insight, or is already covered by an existing scroll (update or supplement that scroll instead).Recall (trigger before a task):
/exp-book fix WebSocket reconnection failures
Claude extracts keywords, grep-searches references/, and surfaces relevant scrolls with suggestions.
Write (auto-triggered after a task):
Claude evaluates whether the task warrants a scroll. If so, it writes one and notifies you:
✅ Scroll saved: references/websocket-reconnect-backoff.md
Commit the scroll to git — it becomes a permanent team asset.
No fixed template. Write it as a memory for next time — when someone hits a similar scenario, what should they know and do? A scroll might be a bug fix, a workflow, a code pattern, or a correction to a bad habit.
Cover whatever is relevant: the scenario or context, the key insight or correct approach, what to avoid, and any caveats to watch out for.
Filename: lowercase English, hyphen-separated, describing the core problem:
✅ react-hooks-dependency-trap.md
✅ nextjs-image-cdn-cors.md
❌ bug-fix.md (too vague)
See example: skills/exp-book/references/example-claude-code-skill-grep-search.md
Zero maintenance overhead: The original exp-book required maintaining both index.yml and the scroll file — too much friction, nobody wrote. The new version drops the index entirely. The scroll content is the index; grep searches it directly.
Zero extra cost: Modeled after MEMORY.md — the write trigger is a plain instruction in CLAUDE.md. Claude evaluates it during normal reasoning. No hooks, no extra API calls.
Experience as a team asset: Scrolls live in the same repo as SKILL.md, contributed via PRs, managed with version control — shareable and traceable.