关于 compound-learnings
Compound Learnings 是一套工作流技能,可将近期 Claude Code 会话记录转化为持久规则、技能、钩子或 Agent 更新。它会合并重复模式,并通过出现次数门槛和审批步骤决定创建内容。
主要功能
- 01收集近期学习记录
- 02合并重复模式
- 03识别元模式
- 04选择产物类型
- 05应用出现次数门槛
- 06创建获批产物
适用场景
- 01从重复调试会话提炼规则
- 02将常见步骤转为技能
- 03为自动会话任务提出钩子方案
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill compound-learnings安装后在 Claude Code 中输入/compound-learnings确认已加载。
详细介绍
复利式学习
将临时的会话经验转化为持久、不断积累的能力。
适用场景
- “我应该从最近的会话中学到什么?”
- “根据最近的工作改进我的设置”
- “将经验转化为技能/规则”
- “哪些模式应该固化下来?”
- “让我的经验不断积累”
流程
步骤 1:收集经验
# List learnings (most recent first)
ls -t $CLAUDE_PROJECT_DIR/.claude/cache/learnings/*.md | head -20
# Count total
ls $CLAUDE_PROJECT_DIR/.claude/cache/learnings/*.md | wc -l
阅读最近的 5-10 个文件(或指定日期范围)。
步骤 2:提取模式(结构化)
对于每个经验文件,从以下特定部分提取条目:
| 章节标题 | 提取内容 |
|---|---|
## Patterns 或 Reusable techniques | 可直接作为规则的候选项 |
**Takeaway:** 或 **Actionable takeaway:** | 决策启发式 |
## What Worked | 成功模式 |
## What Failed | 反模式(反向转化为规则) |
## Key Decisions | 设计原则 |
逐步建立频次表:
| Pattern | Sessions | Category |
|---------|----------|----------|
| "Check artifacts before editing" | abc, def, ghi | debugging |
| "Pass IDs explicitly" | abc, def, ghi, jkl | reliability |
步骤 2b:合并相似模式
计数前,合并表达相同原则的模式:
合并示例:
- “优先检查产物的调试方式”
- “通过检查文件验证钩子输出”
- “优先从文件系统入手调试” → 都表达了同一原则:“先观察输出,再修改代码”
采用最通用的表述,并更新频次表。
步骤 3:检测元模式
**关键步骤:**查看经验主要集中在哪些方面。
如果超过 50% 的模式都与某个主题有关(例如“钩子”“跟踪”“异步”): → 该主题可能需要一个专用技能,而不是多条规则 → 一个技能的累积效果胜过五条规则
问问自己:“有没有一种技能可以让所有这些规则都不再必要?”
步骤 4:分类(决策树)
确定每种模式对应的产物类型:
Is it a sequence of commands/steps?
→ YES → SKILL (executable > declarative)
→ NO ↓
Should it run automatically on an event (SessionEnd, PostToolUse, etc.)?
→ YES → HOOK (automatic > manual)
→ NO ↓
Is it "when X, do Y" or "never do X"?
→ YES → RULE
→ NO ↓
Does it enhance an existing agent workflow?
→ YES → AGENT UPDATE
→ NO → Skip (not worth capturing)
产物类型示例:
| 模式 | 类型 | 原因 |
|---|---|---|
| “提交前运行 lint” | 钩子(PreToolUse) | 自动门禁 |
| “在会话结束时提取经验” | 钩子(SessionEnd) | 自动触发 |
| “逐步调试钩子” | 技能 | 手动流程 |
| “始终显式传递 ID” | 规则 | 启发式 |
步骤 5:应用信号阈值
| 出现次数 | 操作 |
|---|---|
| 1 | 记录但跳过(关键故障除外) |
| 2 | 考虑创建——提交给用户决定 |
| 3+ | 强烈信号——建议创建 |
| 4+ | 确定创建 |
步骤 6:提出产物方案
按以下格式呈现每项方案:
---
## Pattern: [Generalized Name]
**Signal:** [N] sessions ([list session IDs])
**Category:** [debugging / reliability / workflow / etc.]
**Artifact Type:** Rule / Skill / Agent Update
**Rationale:** [Why this artifact type, why worth creating]
**Draft Content:**
\`\`\`markdown
[Actual content that would be written to file]
\`\`\`
**File:** `.claude/rules/[name].md` or `.claude/skills/[name]/SKILL.md`
---
使用 AskUserQuestion 获取用户对每项产物的批准(也可批量批准)。
步骤 7:创建已批准的产物
对于规则:
# Write to rules directory
cat > $CLAUDE_PROJECT_DIR/.claude/rules/<name>.md << 'EOF'
# Rule Name
[Context: why this rule exists, based on N sessions]
## Pattern
[The reusable principle]
## DO
- [Concrete action]
## DON'T
- [Anti-pattern]
## Source Sessions
- [session-id-1]: [what happened]
- [session-id-2]: [what happened]
EOF
对于技能:
创建 .claude/skills/<name>/SKILL.md,包含:
- Frontmatter(name、description、allowed-tools)
- 适用场景
- 分步说明(可执行)
- 来自经验的示例
如果适用,将触发条件添加到 skill-rules.json。
对于钩子:
创建 shell 包装器和 TypeScript 处理程序:
# Shell wrapper
cat > $CLAUDE_PROJECT_DIR/.claude/hooks/<name>.sh << 'EOF'
#!/bin/bash
set -e
cd "$CLAUDE_PROJECT_DIR/.claude/hooks"
cat | node dist/<name>.mjs
EOF
chmod +x $CLAUDE_PROJECT_DIR/.claude/hooks/<name>.sh
然后创建 src/<name>.ts,使用 esbuild 构建,并在 settings.json 中注册:
{
"hooks": {
"EventName": [{
"hooks": [{
"type": "command",
"command": "$CLAUDE_PROJECT_DIR/.claude/hooks/<name>.sh"
}]
}]
}
}
对于 Agent 更新:
编辑 .claude/agents/<name>.md 中现有的 Agent,添加所学到的能力。
步骤 8:摘要报告
## Compounding Complete
**Learnings Analyzed:** [N] sessions
**Patterns Found:** [M]
**Artifacts Created:** [K]
### Created:
- Rule: `explicit-identity.md` - Pass IDs explicitly across boundaries
- Skill: `debug-hooks` - Hook debugging workflow
### Skipped (insufficient signal):
- "Pattern X" (1 occurrence)
**Your setup is now permanently improved.**
质量检查
创建任何产物前:
- 是否足够通用? 是否适用于其他项目?
- 是否足够具体? 是否提供了明确的指导?
- 是否已经存在? 先检查
.claude/rules/和.claude/skills/ - 类型是否正确? 流程 → 技能,启发式 → 规则
文件参考
- 经验:
.claude/cache/learnings/*.md - 技能:
.claude/skills/<name>/SKILL.md - 规则:
.claude/rules/<name>.md - 钩子:
.claude/hooks/<name>.sh+src/<name>.ts+dist/<name>.mjs - Agent:
.claude/agents/<name>.md - 技能触发条件:
.claude/skills/skill-rules.json - 钩子注册:
.claude/settings.json→hooks部分
评论
支持 Markdown