skills/continuous-learning/SKILL.md
Promote valuable session learnings into reusable, triggerable skill files in ~/.claude/skills/learned/. Unlike Claude Code's built-in memory (which captures conversational facts and preferences), this skill extracts structured patterns — error resolutions, user corrections, workarounds, debugging techniques, project conventions — that future sessions can match against specific triggers. Use at end of a session (typically via Stop hook), after solving a hard bug, when the user says "save what we learned", "remember this for next time", or "extract patterns from this session".
npx skillsauth add mhylle/claude-skills-collection continuous-learningInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Extract patterns from sessions and save them as structured skill files that future sessions can consult by trigger match. This is the layer above Claude Code's auto-memory: memory captures facts and preferences about you and your projects; continuous-learning captures reusable problem-solving patterns that need more structure than a memory entry can carry.
Claude Code has a built-in memory system (~/.claude/projects/.../memory/) that captures user, feedback, project, and reference memories — short, typed entries loaded into every future conversation's context. Use that for:
This skill handles the things auto-memory doesn't:
~/.claude/skills/learned/, discoverable as portable skills across projects and machines.Rule of thumb: a one-line fact goes in memory. A reproducible fix-recipe or debugging playbook goes here.
Automatic triggers:
references/hook-setup.md.Manual triggers:
Signal phrases to watch for:
Each pattern gets classified into one of five types. Full YAML templates and extraction criteria for each → references/pattern-types.md. Detailed examples → references/examples.md. Brief summary:
Scan the session for these learning signals:
Apply the extraction threshold to filter noise:
Include if:
Exclude if:
Configurable threshold — tune via ~/.claude/config/learning.yaml:
extraction:
threshold: 0.7 # 0.0-1.0, higher = more selective
min_investigation_steps: 3 # Minimum complexity for extraction
require_root_cause: true # Must understand why, not just what
max_patterns_per_session: 10 # Prevent noise
For each pattern that passes threshold:
references/pattern-types.md). Pattern-body fields only — the surrounding file wrapper (metadata, usage:, confidence:, tags:) lives in references/storage-format.md.confidence: block, not the pattern body).Before saving, check for existing similar patterns:
1. Load existing patterns from ~/.claude/skills/learned/
2. For each candidate:
a. Search for patterns with similar triggers
b. Search for patterns in same category/context
c. Calculate similarity score
3. If similarity > 0.8:
a. Merge — combine insights, increment times_applied
b. Update — if new pattern is more complete, replace
4. If similarity < 0.8: save as new pattern
Similarity by type: error patterns compare error-message patterns; user corrections compare original/corrected approaches; workarounds compare limitations+solutions; debugging compares problem classes; project-specific compares project+category.
Write the pattern file and update the index. Full file layout, naming, and schema → references/storage-format.md.
Patterns that score ≥ the threshold get saved.
| Indicator | Weight | |---|---| | Non-obvious solution (answer wasn't in first search result) | High | | Time investment (took significant debugging time) | High | | Root-cause depth (understanding goes beyond symptoms) | High | | Recurrence likelihood (likely to encounter again) | High | | Transferability (applies beyond immediate context) | Medium | | Specificity (clear trigger conditions) | Medium | | Actionability (concrete steps, not abstract advice) | Medium |
quality_score = (
non_obvious * 0.20 +
time_investment * 0.15 +
root_cause_depth * 0.20 +
recurrence * 0.20 +
transferability * 0.10 +
specificity * 0.10 +
actionability * 0.05
)
# Save if quality_score >= threshold (default 0.7)
Effective capture:
useState stale closure in event handler" > "React bug".Avoiding anti-patterns:
Pattern hygiene:
With context-saver: when context-saver runs at session end, it can include a "Patterns Discovered This Session" section pointing into ~/.claude/skills/learned/.
With brainstorm: learned patterns can inform brainstorming sessions — surface relevant patterns when discussing technical approaches, reference past workarounds when evaluating options.
With future sessions: at session start, patterns are loaded and available for automatic matching when similar errors occur, explicit recall ("what did we learn about X?"), and pattern suggestions during debugging.
references/pattern-types.md — Full YAML templates and extraction criteria for all five pattern typesreferences/examples.md — Complete worked examples, one per pattern typereferences/storage-format.md — Directory layout, file naming, skill file schema, index file structure, lifecyclereferences/hook-setup.md — Stop hook configuration, options, lifecycle integration, testingtools
--- name: tt-workflow-build description: Tasktracker-native trigger for a PARALLEL build via the Claude Code Workflow tool. Thin by design — it does two things, then drives to done: (1) ensure a tasktracker project exists (use the existing one, or create one), then (2) start a dynamic `Workflow` that builds it, tracking the work in tasktracker and using the build + verify skills. It does NOT analyze parallelism up front, ask the user to choose a mode, hand back, or fall back to a sequential skil
tools
--- name: grumpy-reviewer description: A single grumpy, nitpicky structural code reviewer that runs as an isolated subagent and treats the code as third-party work submitted by a junior programmer for validation. It cares about exactly one thing — maintainability — judged through separation of concerns, service-oriented design, helper-method extraction, small files, and the rule of 7 (as any grouping nears 7 members, it pushes for sub-groupings). It is deliberately kept OUT of the implementation
development
--- name: tt-workflow-run description: Tasktracker-native autonomous build-loop orchestrator. Drives a first-class `workflow_run` end-to-end — create the run (Gate 1 lifecycle completeness + Gate 2 zero-defects-in), then loop while `getNextReadyTask(projectId)` returns a slice — `setActiveTask` → record a pre-slice `scanArchitectureDrift` baseline → delegate the slice to `/tt-implement-phase` (which does the code work, registers the architecture delta in-slice, and auto-logs defects/learnings/fr
tools
Tasktracker-native project-wide parallel audit using the Claude Code Workflow tool (dynamic workflows). Partitions a repo / backlog / architecture and fans out read-only agents (one per partition) that return schema-checked findings, aggregates them into a deduplicated, ranked risk register, and OPTIONALLY writes fixes back as tasks under a Bug Fix phase — with all tasktracker writes done by the PARENT, never the parallel agents (single global active-task pointer). Journaled and resumable, so a rate-limit or crash mid-audit resumes without re-running completed partitions. Use for large, embarrassingly-parallel, read/analyze-heavy jobs where each unit is self-contained and the output aggregates — audit every file/component for risk, find all architecture drift (scanArchitectureDrift) or duplicate tasks (detectDuplicates/auditDuplicates), per-file tech-debt sweep, test-coverage or security-surface scan across a whole project. Triggers on "/tt-workflow-audit", "audit the whole repo", "parallel audit", "scan every file/component", "find all drift/duplicates", "tech-debt sweep (tasktracker)", or any whole-project analyze-at-scale request inside a session with a tasktracker project. Prefer this over /codebase-audit or /code-quality-audit when the project is tracked in tasktracker AND you want the findings written back as tasks; prefer it over team-* modes when the units don't need to negotiate live (they just report).