
Continuous Learning
Turn Claude Code session endings into reviewable learned skills instead of losing fixes and workarounds every time you close the editor.
Overview
Continuous Learning is a journey-wide agent skill that mines Claude Code Stop-hook sessions for reusable error, workaround, and debugging patterns and saves reviewable skill drafts for solo builders.
Install
npx skills add https://github.com/affaan-m/everything-claude-code --skill continuous-learningWhat is this skill?
- Runs once on the Claude Code Stop hook (not every prompt) to keep sessions fast
- Detects five pattern types: error_resolution, user_corrections, workarounds, debugging_techniques, project_specific
- Ignores noise: simple_typos, one_time_fixes, external_api_issues
- Writes candidate skills to ~/.claude/skills/learned/ with auto_approve: false for human review
- Configurable via config.json: min_session_length 10, extraction_threshold medium
- min_session_length: 10
- 5 patterns_to_detect categories
- 3 ignore_patterns categories
Adoption & trust: 5.4k installs on skills.sh; 210k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You keep re-teaching your coding agent the same project fixes because nothing persists after the session stops.
Who is it for?
Claude Code power users who run Stop hooks, use jq, and want a lightweight loop from live debugging to documented agent capabilities.
Skip if: Builders on agents without hook support, one-off chats with no recurring patterns, or anyone who needs fully automatic skill publishing without manual review (auto_approve is false).
When should I use this skill?
Claude Code session ends via Stop hook and session length meets configured minimum for pattern extraction.
What do I get? / Deliverables
After each qualifying session, structured pattern candidates land in ~/.claude/skills/learned/ so you can approve and promote them into formal agent skills.
- Candidate learned skill files under ~/.claude/skills/learned/
- Session evaluation driven by config.json thresholds
Recommended Skills
Journey fit
Useful at every journey phase - explore requirements and options before committing to a direction.
Where it fits
After fixing a recurring API error with the agent, let Stop hook capture the resolution pattern for the next feature branch.
When test failures required multi-step debugging_techniques, extract them so the next release cycle does not repeat the same agent trial-and-error.
Post-incident session review promotes project_specific workarounds into learned skills for on-call style agent assistance.
Spike sessions that surfaced user_corrections become draft skills before you commit to full build scope.
How it compares
Use instead of ad-hoc “save this chat as a skill” notes—it is a structured Stop-hook extractor, not a generic chat summarizer.
Common Questions / FAQ
Who is continuous-learning for?
Solo and indie developers who ship with Claude Code, maintain ~/.claude/settings.json hooks, and want session memory converted into reusable SKILL.md-style artifacts.
When should I use continuous-learning?
Use it on every substantial Claude Code session end during build debugging, ship-time incident fixes, or operate-phase iteration when you want error_resolution and workaround patterns captured; it also helps after validate prototypes when you discover repeatable agent corrections
Is continuous-learning safe to install?
It runs shell on session stop and writes under your home directory; review the Security Audits panel on this Prism page and inspect evaluate-session.sh plus hook config before enabling in production repos.
Workflow Chain
Then invoke: skill development
SKILL.md
READMESKILL.md - Continuous Learning
{ "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 --- name: continuous-learning description: "[DEPRECATED - use continuous-learning-v2] Legacy v1 stop-hook skill extractor. v2 is a strict superset with instinct-based, project-scoped, hook-reliable learning. Do not invoke v1; route continuous learning, session learning, and pattern extraction requests to continuous-learning-v2." origin: ECC --- # 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 - Compa