mcpbeat

Continuous Learning

vibeeval/continuous-learning

Automatically extract reusable patterns from Claude Code sessions and save them as learned skills for future use.

1k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
521
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/vibeeval/vibecosystem --skill continuous-learning

What comes with it

2 424 bytes besides the instruction
config.json
evaluate-session.sh

The instruction itself

10 sections, as written by the author

Continuous Learning Skill

Automatically evaluates Claude Code sessions on end to extract reusable patterns that can be saved as learned skills.

How It Works

This skill runs as a Stop hook at the end of each session:

  • Session Evaluation: Checks if session has enough messages (default: 10+)
  • Pattern Detection: Identifies extractable patterns from the session
  • Skill Extraction: Saves useful patterns to ~/.claude/skills/learned/

Configuration

Edit config.json to customize:

{
  "min_session_length": 10,
  "extraction_threshold": "medium",
  "auto_approve": false,
  "learned_skills_path": "~/.claude/skills/learned/",
  "patterns_to_detect": [
    "error_resolution",
    "user_corrections",
    "workarounds",
    "debugging_techniques",
    "project_specific"
  ],
  "ignore_patterns": [
    "simple_typos",
    "one_time_fixes",
    "external_api_issues"
  ]
}

Pattern Types

| Pattern | Description |

|---------|-------------|

| error_resolution | How specific errors were resolved |

| user_corrections | Patterns from user corrections |

| workarounds | Solutions to framework/library quirks |

| debugging_techniques | Effective debugging approaches |

| project_specific | Project-specific conventions |

Hook Setup

Add to your ~/.claude/settings.json:

{
  "hooks": {
    "Stop": [{
      "matcher": "*",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/skills/continuous-learning/evaluate-session.sh"
      }]
    }]
  }
}

Why Stop Hook?

  • Lightweight: Runs once at session end
  • Non-blocking: Doesn't add latency to every message
  • Complete context: Has access to full session transcript
  • The Longform Guide - Section on continuous learning
  • /learn command - Manual pattern extraction mid-session

Comparison Notes (Research: Jan 2025)

vs Homunculus (github.com/humanplane/homunculus)

Homunculus v2 takes a more sophisticated approach:

| Feature | Our Approach | Homunculus v2 |

|---------|--------------|---------------|

| Observation | Stop hook (end of session) | PreToolUse/PostToolUse hooks (100% reliable) |

| Analysis | Main context | Background agent (Haiku) |

| Granularity | Full skills | Atomic "instincts" |

| Confidence | None | 0.3-0.9 weighted |

| Evolution | Direct to skill | Instincts → cluster → skill/command/agent |

| Sharing | None | Export/import instincts |

Key insight from homunculus:

> "v1 relied on skills to observe. Skills are probabilistic—they fire ~50-80% of the time. v2 uses hooks for observation (100% reliable) and instincts as the atomic unit of learned behavior."

Potential v2 Enhancements

  • Instinct-based learning - Smaller, atomic behaviors with confidence scoring
  • Background observer - Haiku agent analyzing in parallel
  • Confidence decay - Instincts lose confidence if contradicted
  • Domain tagging - code-style, testing, git, debugging, etc.
  • Evolution path - Cluster related instincts into skills/commands

See the continuous-learning-v2 spec for full details.

How to use it

Copy the folder

Take vibeeval/continuous-learning from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.