mcpbeat

Learn

notque/learn

Manually teach error pattern and solution to learning database.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
413
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/notque/vexjoy-agent --skill learn

The instruction itself

11 sections, as written by the author

Learn Error Pattern Skill

Parse a user-provided "error -> solution" pair, classify it, store it in the cross-session learning database at high confidence, and confirm back. One pattern per invocation. All database operations go through the learning-db.py CLI.

Instructions

Step 1: Parse Input

Extract two fields from the user's input:

  • error_pattern: The error message or symptom text
  • solution: The fix or resolution text

Accepted input formats:

  • /learn "error pattern" -> "solution"
  • /learn "error pattern" => "solution"
  • Freeform: "teach that X means Y" or "remember: when X, do Y"

Both fields must be non-empty. If either is missing, ask the user for the missing part before proceeding. If the error pattern is vague (e.g., "it broke") or the solution is non-actionable (e.g., "fix it"), ask the user to provide the specific error message and concrete fix steps — vague patterns fail to match future errors and waste database space.

Step 2: Classify Fix Type

Determine fix_type and fix_action from the solution text by applying these rules in order:

  • Solution contains an install command (pip install, npm install, apt install) -> fix_type=auto, fix_action=install_dependency
  • Solution contains replace_all -> fix_type=auto, fix_action=use_replace_all
  • Solution references a skill name -> fix_type=skill, fix_action=<skill-name>
  • Solution references an agent name -> fix_type=agent, fix_action=<agent-name>
  • Otherwise -> fix_type=manual, fix_action=apply_suggestion

Step 3: Store Pattern

Execute the learning-db.py CLI to persist the pattern. Always pass user-provided strings as CLI arguments exactly as shown — never inline them into Python code via f-strings or string concatenation, because quotes or special characters in error text will break the script and create injection risk.

python3 ~/.claude/scripts/learning-db.py record \
  "<error_type>" \
  "<error_signature>" \
  "<error_pattern> → <solution>" \
  --category error \
  --confidence 0.9
  • <error_type>: The classified type (e.g., "missing_file", "multiple_matches")
  • <error_signature>: A kebab-case key derived from the error pattern
  • Confidence is always 0.9 for manually taught patterns. If the pattern already exists, this updates its confidence to 0.9.

Example:

python3 ~/.claude/scripts/learning-db.py record \
  "multiple_matches" \
  "edit-tool-multiple-matches" \
  "Edit tool fails with 'found N matches' → Use replace_all=True parameter" \
  --category error \
  --confidence 0.9

The script must exit 0 and print confirmation. If it fails, see Error Handling below.

Step 4: Confirm to User

Always display what was stored so the user can verify correctness — silently storing without confirmation hides typos and misclassifications:

Learned pattern:
  Error: "<error_pattern>"
  Solution: "<solution>"
  Type: <fix_type> (<fix_action>)
  Confidence: 0.9

Error Handling

Error: "Script fails with ImportError or FileNotFoundError"

Cause: scripts/learning-db.py not found or not synced to ~/.claude/scripts/

Solution: Verify working directory is the repo root, or use ~/.claude/scripts/learning-db.py for cross-repo access.

Error: "Database locked"

Cause: Another process holds the SQLite lock

Solution: Retry after 2 seconds. If persistent, check for hung processes with lsof ~/.claude/learning/learning.db.

Error: "User provides only error, no solution"

Cause: Incomplete input

Solution: Ask the user explicitly for the solution text. Do not guess or fabricate solutions.

References

  • hooks/lib/learning_db_v2.py: Unified learning database module
  • scripts/learning-db.py: CLI for recording, querying, and managing learnings
  • hooks/error-learner.py: Automatic error learning hook (complementary system)

How to use it

Copy the folder

Take notque/learn 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.

Install what it needs

The instructions reference pip, npm. Without those the skill loads but fails at the first command.