CtrlK
BlogDocsLog inGet started
Tessl Logo

jbvc/continuous-learning

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

49

Quality

49%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files
name:
continuous-learning
description:
Automatically extract reusable patterns from Claude Code sessions and save them as learned skills for future use.

Continuous Learning Skill

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

When to Activate

  • Setting up automatic pattern extraction from Claude Code sessions
  • Configuring the Stop hook for session evaluation
  • Reviewing or curating learned skills in ~/.claude/skills/learned/
  • Adjusting extraction thresholds or pattern categories
  • Comparing v1 (this) vs v2 (instinct-based) approaches

How It Works

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

  1. Session Evaluation: Checks if session has enough messages (default: 10+)
  2. Pattern Detection: Identifies extractable patterns from the session
  3. 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

PatternDescription
error_resolutionHow specific errors were resolved
user_correctionsPatterns from user corrections
workaroundsSolutions to framework/library quirks
debugging_techniquesEffective debugging approaches
project_specificProject-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

Related

  • 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:

FeatureOur ApproachHomunculus v2
ObservationStop hook (end of session)PreToolUse/PostToolUse hooks (100% reliable)
AnalysisMain contextBackground agent (Haiku)
GranularityFull skillsAtomic "instincts"
ConfidenceNone0.3-0.9 weighted
EvolutionDirect to skillInstincts → cluster → skill/command/agent
SharingNoneExport/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

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

See: /Users/affoon/Documents/tasks/12-continuous-learning-v2.md for full spec.

Workspace
jbvc
Visibility
Public
Created
Last updated
Publish Source
CLI
Badge
jbvc/continuous-learning badge