$npx -y skills add lightpointventures/claude-code-starter --skill learn当用户踩坑后想记录经验教训、当调试完想防止同样的问题再次发生、当做了重要技术决策想记录时使用 — 自动更新 CLAUDE.md 的已知陷阱和决策日志
| 1 | # 自我改进 |
| 2 | |
| 3 | 把这次踩的坑或做的决策记录到 CLAUDE.md 中,防止下次再犯。 |
| 4 | |
| 5 | ## 与其他 Skill 的区别 |
| 6 | |
| 7 | - /debug 解决当前的 bug |
| 8 | - /learn 把 bug 的经验教训写入 CLAUDE.md,让 Claude 永远记住 |
| 9 | |
| 10 | ## 步骤 |
| 11 | |
| 12 | ### 1. 确定要记录什么 |
| 13 | |
| 14 | 如果用户已经说了,直接分析。否则问: |
| 15 | |
| 16 | > 你想记录什么? |
| 17 | > - 刚踩了个坑,想防止下次再犯 |
| 18 | > - 做了个技术决策,想记录原因 |
| 19 | > - 发现了项目的特殊规则,想让 Claude 记住 |
| 20 | |
| 21 | ### 2. 提取关键信息 |
| 22 | |
| 23 | 根据类型收集信息: |
| 24 | |
| 25 | **踩坑记录:** |
| 26 | - 问题是什么?(一句话描述现象) |
| 27 | - 根因是什么?(为什么会出现) |
| 28 | - 正确的做法是什么?(下次应该怎么做) |
| 29 | |
| 30 | **技术决策:** |
| 31 | - 选了什么方案? |
| 32 | - 为什么选这个?(2-3 个关键理由) |
| 33 | - 考虑过但没选的方案?(为什么不选) |
| 34 | |
| 35 | **项目规则:** |
| 36 | - 什么规则? |
| 37 | - 为什么需要这个规则? |
| 38 | |
| 39 | ### 3. 生成记录条目 |
| 40 | |
| 41 | 用精确简洁的语言写一条记录: |
| 42 | |
| 43 | **踩坑格式:** |
| 44 | ``` |
| 45 | - [现象描述] — [正确做法] |
| 46 | ``` |
| 47 | 例:`uv sync 会删除未在 pyproject.toml 中声明的包 — 运行前后对比 uv pip list` |
| 48 | |
| 49 | **决策格式:** |
| 50 | ``` |
| 51 | - 选择 [方案] 而不是 [备选] — 原因:[理由];否决 [备选] 因为 [理由] |
| 52 | ``` |
| 53 | 例:`选择 SQLite 而不是 PostgreSQL — 原因:单用户项目不需要并发;否决 PostgreSQL 因为运维成本高` |
| 54 | |
| 55 | ### 4. 写入 CLAUDE.md |
| 56 | |
| 57 | 读取当前 CLAUDE.md,将新条目追加到对应区块: |
| 58 | - 踩坑 → 追加到「已知陷阱」区块 |
| 59 | - 决策 → 追加到「决策日志」区块 |
| 60 | - 规则 → 追加到最匹配的区块(铁律 / 不要做什么 / 工作流程) |
| 61 | |
| 62 | 写入前展示给用户确认: |
| 63 | |
| 64 | > 准备在 CLAUDE.md 的「已知陷阱」中添加: |
| 65 | > - [新条目内容] |
| 66 | > |
| 67 | > 确认写入? |
| 68 | |
| 69 | ### 5. 确认 |
| 70 | |
| 71 | 用户确认后写入文件。 |
| 72 | |
| 73 | > 已更新 CLAUDE.md。下次 Claude 会自动遵守这条规则。 |
| 74 | |
| 75 | ## 规则 |
| 76 | |
| 77 | - 每条记录必须简洁(一行以内),不要写段落 |
| 78 | - 用「现象 — 正确做法」格式,不要只描述问题不给方案 |
| 79 | - 不要和已有条目重复 — 写入前检查是否已经存在类似记录 |
| 80 | - 如果已有类似记录但不完整,更新它而不是添加新的 |