
Continuous Learning
- 6.3k installs
- 234k repo stars
- Updated July 27, 2026
- affaan-m/everything-claude-code
A deprecated v1 Claude Code Stop-hook skill that evaluates completed sessions to extract and save reusable coding patterns to a local skills directory.
About
Continuous Learning v1 is a deprecated Stop-hook skill for Claude Code that evaluates sessions at end-of-session to extract reusable patterns and save them to ~/.claude/skills/learned/. It triggers only when a session reaches a configurable minimum message count (default 10+), then detects patterns across five categories: error resolution, user corrections, workarounds, debugging techniques, and project-specific conventions. Configuration is managed via config.json, and the hook is registered in ~/.claude/settings.json under the Stop event. Compared to v2, this version observes only at session end (not per-tool-use), stores skills globally without project scoping, and lacks confidence scoring or instinct-based atomic behavior tracking. Developers maintaining older installs or needing the simpler extraction flow can keep v1, but new projects should use continuous-learning-v2.
- Runs as a Stop hook via evaluate-session.sh registered in ~/.claude/settings.json, firing once at end of each session
- Extracts five pattern types: error_resolution, user_corrections, workarounds, debugging_techniques, and project_specific
- Configurable via config.json with fields for min_session_length, extraction_threshold, auto_approve, and patterns_to_det
- Saves learned patterns to ~/.claude/skills/learned/ for reuse across future Claude Code sessions
- Officially deprecated in favor of continuous-learning-v2, which uses PreToolUse/PostToolUse hooks and atomic instincts w
Continuous Learning by the numbers
- 6,290 all-time installs (skills.sh)
- +283 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #18 of 826 Skill Development skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
continuous-learning capabilities & compatibility
- Capabilities
- session pattern extraction · stop hook integration · learned skill persistence · configurable extraction thresholds · pattern category filtering
- Use cases
- debugging · documentation · orchestration
- Platforms
- macOS · Linux · WSL
- Runs
- Runs locally
- Pricing
- Free
npx skills add https://github.com/affaan-m/everything-claude-code --skill continuous-learningAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 6.3k |
|---|---|
| repo stars | ★ 234k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 27, 2026 |
| Repository | affaan-m/everything-claude-code ↗ |
What it does
Deprecated v1 Stop-hook skill that auto-extracts reusable patterns from Claude Code sessions; route new usage to continuous-learning-v2.
Who is it for?
Developers already running v1 installs who need backward compatibility with existing learned-skill workflows and prefer the simpler Stop-hook extraction flow.
Skip if: New installs or projects requiring per-tool-use observation, project-scoped learning, or confidence-weighted instinct tracking - use continuous-learning-v2 instead.
When should I use this skill?
Reviewing archived v1 behavior, maintaining compatibility with older learned-skill workflows, or comparing v1 Stop-hook approach against v2 instinct-based approach.
What you get
Reusable patterns from sessions are automatically saved to ~/.claude/skills/learned/ and available in future Claude Code sessions without manual extraction.
- Extracted pattern files saved to ~/.claude/skills/learned/
- Configured config.json with extraction thresholds and pattern categories
- Stop hook entry in ~/.claude/settings.json
By the numbers
- Default minimum session length for extraction is 10 messages
- Five pattern categories are detected: error_resolution, user_corrections, workarounds, debugging_techniques, project_spe
- v1 skill fire rate is approximately 50-80% vs 100% for v2 hook-based observation
Files
Continuous Learning Skill - DEPRECATED
DEPRECATED 2026-04-28. Use continuous-learning-v2 instead. v2 is a strict superset: stop-hook observation becomes PreToolUse/PostToolUse observation, full skills become atomic instincts with confidence scoring, and global-only storage becomes project-scoped plus global promotion.>
This file is kept for archival reference and backward compatibility with existing installs.
---
Original v1 Documentation (archival)
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
Status
This v1 skill is still supported, but continuous-learning-v2 is the preferred path for new installs. Keep v1 when you explicitly want the simpler Stop-hook extraction flow or need compatibility with older learned-skill workflows.
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
| 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
Related
- The Longform Guide - Section on continuous learning
/learncommand - Manual pattern extraction mid-session
---
Comparison Notes (Research: Jan 2025)
vs 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
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: docs/continuous-learning-v2-spec.md for full spec.
{
"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"
]
}
#!/bin/bash
# Continuous Learning - Session Evaluator
# Runs on Stop hook to extract reusable patterns from Claude Code sessions
#
# Why Stop hook instead of UserPromptSubmit:
# - Stop runs once at session end (lightweight)
# - UserPromptSubmit runs every message (heavy, adds latency)
#
# Hook config (in ~/.claude/settings.json):
# {
# "hooks": {
# "Stop": [{
# "matcher": "*",
# "hooks": [{
# "type": "command",
# "command": "~/.claude/skills/continuous-learning/evaluate-session.sh"
# }]
# }]
# }
# }
#
# Patterns to detect: error_resolution, debugging_techniques, workarounds, project_specific
# Patterns to ignore: simple_typos, one_time_fixes, external_api_issues
# Extracted skills saved to: ~/.claude/skills/learned/
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIG_FILE="$SCRIPT_DIR/config.json"
LEARNED_SKILLS_PATH="${HOME}/.claude/skills/learned"
MIN_SESSION_LENGTH=10
# Load config if exists
if [ -f "$CONFIG_FILE" ]; then
if ! command -v jq &>/dev/null; then
echo "[ContinuousLearning] jq is required to parse config.json but not installed, using defaults" >&2
else
MIN_SESSION_LENGTH=$(jq -r '.min_session_length // 10' "$CONFIG_FILE")
LEARNED_SKILLS_PATH=$(jq -r '.learned_skills_path // "~/.claude/skills/learned/"' "$CONFIG_FILE" | sed "s|~|$HOME|")
fi
fi
# Ensure learned skills directory exists
mkdir -p "$LEARNED_SKILLS_PATH"
# Get transcript path from stdin JSON (Claude Code hook input)
# Falls back to env var for backwards compatibility
stdin_data=$(cat)
transcript_path=$(echo "$stdin_data" | grep -o '"transcript_path":"[^"]*"' | head -1 | cut -d'"' -f4)
if [ -z "$transcript_path" ]; then
transcript_path="${CLAUDE_TRANSCRIPT_PATH:-}"
fi
if [ -z "$transcript_path" ] || [ ! -f "$transcript_path" ]; then
exit 0
fi
# Count messages in session
message_count=$(grep -c '"type":"user"' "$transcript_path" 2>/dev/null || echo "0")
# Skip short sessions
if [ "$message_count" -lt "$MIN_SESSION_LENGTH" ]; then
echo "[ContinuousLearning] Session too short ($message_count messages), skipping" >&2
exit 0
fi
# Signal to Claude that session should be evaluated for extractable patterns
echo "[ContinuousLearning] Session has $message_count messages - evaluate for extractable patterns" >&2
echo "[ContinuousLearning] Save learned skills to: $LEARNED_SKILLS_PATH" >&2
Related skills
Forks & variants (1)
Continuous Learning has 1 known copy in the catalog totaling 1.3k installs. They canonicalize to this original listing.
- affaan-m - 1.3k installs
How it compares
Pick continuous-learning over manual skill authoring when solved session problems should auto-compound into ~/.claude/skills/learned/ without per-message hook overhead.
FAQ
Why is this skill marked deprecated?
v2 replaces v1 with PreToolUse/PostToolUse hooks (100% reliable vs ~50-80% for skills), atomic instincts with confidence scoring (0.3-0.9), and project-scoped plus global storage.
What patterns does v1 extract?
Five categories: error_resolution, user_corrections, workarounds, debugging_techniques, and project_specific conventions, all configurable via patterns_to_detect in config.json.
How is the Stop hook registered?
Add an entry under hooks.Stop in ~/.claude/settings.json pointing to the evaluate-session.sh command with a wildcard matcher.
Is Continuous Learning safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.