mcpField
C
compound-learnings

compound-learnings

github.com/parcadeiAgent 工作流3.9k507 次安装39 周前更新
代码仓库

关于 compound-learnings

Compound Learnings 是一套工作流技能,可将近期 Claude Code 会话记录转化为持久规则、技能、钩子或 Agent 更新。它会合并重复模式,并通过出现次数门槛和审批步骤决定创建内容。

主要功能

  1. 01收集近期学习记录
  2. 02合并重复模式
  3. 03识别元模式
  4. 04选择产物类型
  5. 05应用出现次数门槛
  6. 06创建获批产物

适用场景

  1. 01从重复调试会话提炼规则
  2. 02将常见步骤转为技能
  3. 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.**

质量检查

创建任何产物前:

  1. 是否足够通用? 是否适用于其他项目?
  2. 是否足够具体? 是否提供了明确的指导?
  3. 是否已经存在? 先检查 .claude/rules/ 和 .claude/skills/
  4. 类型是否正确? 流程 → 技能,启发式 → 规则

文件参考

  • 经验:.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