compound-learnings について
Compound Learningsは、最近のClaude Codeセッションの記録を、ルール、スキル、フック、エージェント更新に変えるワークフロースキルです。パターンを統合し、出現回数の基準と承認手順に沿って作成内容を決めます。
主な機能
- 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を入力して読み込まれたか確認します。
詳細
蓄積される学び
一時的なセッションでの学びを、永続的に積み重なる能力へと変換します。
使用するタイミング
- 「最近のセッションから何を学ぶべきですか?」
- 「最近の作業に基づいてセットアップを改善してください」
- 「学びをスキルやルールに変換してください」
- 「どのパターンを永続化すべきですか?」
- 「学びを積み重ねてください」
プロセス
Step 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件読み込むか、日付範囲を指定します。
Step 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 |
Step 2b: 類似するパターンを統合する
数える前に、同じ原則を表すパターンを統合します。
統合の例:
- 「成果物を優先したデバッグ」
- 「ファイルを調べてフックの出力を検証する」
- 「ファイルシステムを優先したデバッグ」 → いずれも 「コードを編集する前に出力を確認する」 を表しています。
最も一般的な表現を使います。頻度表を更新します。
Step 3: メタパターンを検出する
重要なステップ: 学びが何を中心に集まっているかを確認します。
パターンの50%超が1つのトピック(例:「フック」「トレース」「非同期処理」)に関連している場合: → そのトピックには、複数のルールではなく専用スキルが必要かもしれません → 5つのルールより、1つのスキルのほうが効果的に積み重なります
自問します。「これらすべてのルールを不要にするスキルはありますか?」
Step 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)
成果物の種類の例:
| パターン | 種類 | 理由 |
|---|---|---|
| 「コミット前にリンティングを実行する」 | フック(PreToolUse) | 自動ゲート |
| 「セッション終了時に学びを抽出する」 | フック(SessionEnd) | 自動トリガー |
| 「フックを段階的にデバッグする」 | スキル | 手動の手順 |
| 「IDは必ず明示的に渡す」 | ルール | ヒューリスティック |
Step 5: シグナルのしきい値を適用する
| 発生回数 | 対応 |
|---|---|
| 1 | 記録するが、スキップする(重大な失敗を除く) |
| 2 | 検討し、ユーザーに提示する |
| 3+ | 強いシグナル ― 作成を推奨する |
| 4+ | 必ず作成する |
Step 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 を使います。
Step 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 を作成し、次の内容を含めます。
- フロントマター(name、description、allowed-tools)
- 使用するタイミング
- 段階的な手順(実行可能なもの)
- 学びからの例
適切であれば、skill-rules.json にトリガーを追加します。
フックの場合:
シェルラッパーと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"
}]
}]
}
}
エージェントの更新の場合:
.claude/agents/<name>.md の既存のエージェントを編集し、学んだ能力を追加します。
Step 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 - エージェント:
.claude/agents/<name>.md - スキルのトリガー:
.claude/skills/skill-rules.json - フックの登録:
.claude/settings.json→hooksセクション