Install
mkdir -p .claude/skills/learner && curl -L -o skill.zip "https://mcp.directory/api/skills/download/3747" && unzip -o skill.zip -d .claude/skills/learner && rm skill.zipInstalls to .claude/skills/learner
About this skill
Learner Skill
This is a Level 7 (self-improving) skill. It has two distinct sections:
- Expertise: Domain knowledge about what makes a good skill. Updated automatically as patterns are discovered.
- Workflow: Stable extraction procedure. Rarely changes.
Only the Expertise section should be updated during improvement cycles.
Expertise
This section contains domain knowledge that improves over time. It can be updated by the learner itself when new patterns are discovered.
Core Principle
Reusable skills are not code snippets to copy-paste, but principles and decision-making heuristics that teach Claude HOW TO THINK about a class of problems.
The difference:
- BAD (mimicking): "When you see ConnectionResetError, add this try/except block"
- GOOD (reusable skill): "In async network code, any I/O operation can fail independently due to client/server lifecycle mismatches. The principle: wrap each I/O operation separately, because failure between operations is the common case, not the exception."
Quality Gate
Before extracting a skill, ALL three must be true:
- "Could someone Google this in 5 minutes?" → NO
- "Is this specific to THIS codebase?" → YES
- "Did this take real debugging effort to discover?" → YES
Recognition Signals
Extract ONLY after:
- Solving a tricky bug that required deep investigation
- Discovering a non-obvious workaround specific to this codebase
- Finding a hidden gotcha that wastes time when forgotten
- Uncovering undocumented behavior that affects this project
What Makes a USEFUL Skill
-
Non-Googleable: Something you couldn't easily find via search
- BAD: "How to read files in TypeScript" ❌
- GOOD: "This codebase uses custom path resolution in ESM that requires fileURLToPath + specific relative paths" ✓
-
Context-Specific: References actual files, error messages, or patterns from THIS codebase
- BAD: "Use try/catch for error handling" ❌
- GOOD: "The aiohttp proxy in server.py:42 crashes on ClientDisconnectedError - wrap StreamResponse in try/except" ✓
-
Actionable with Precision: Tells you exactly WHAT to do and WHERE
- BAD: "Handle edge cases" ❌
- GOOD: "When seeing 'Cannot find module' in dist/, check tsconfig.json moduleResolution matches package.json type field" ✓
-
Hard-Won: Took significant debugging effort to discover
- BAD: Generic programming patterns ❌
- GOOD: "Race condition in worker.ts - the Promise.all at line 89 needs await before the map callback returns" ✓
Anti-Patterns (DO NOT EXTRACT)
- Generic programming patterns (use documentation instead)
- Refactoring techniques (these are universal)
- Library usage examples (use library docs)
- Type definitions or boilerplate
- Anything a junior dev could Google in 5 minutes
Workflow
This section contains the stable extraction procedure. It should NOT be updated during improvement cycles.
Step 1: Gather Required Information
-
Problem Statement: The SPECIFIC error, symptom, or confusion that occurred
- Include actual error messages, file paths, line numbers
- Example: "TypeError in src/hooks/session.ts:45 when sessionId is undefined after restart"
-
Solution: The EXACT fix, not general advice
- Include code snippets, file paths, configuration changes
- Example: "Add null check before accessing session.user, regenerate session on 401"
-
Triggers: Keywords that would appear when hitting this problem again
- Use error message fragments, file names, symptom descriptions
- Example: ["sessionId undefined", "session.ts TypeError", "401 session"]
-
Scope: Almost always Project-level unless it's a truly universal insight
Step 2: Quality Validation
The system REJECTS skills that are:
- Too generic (no file paths, line numbers, or specific error messages)
- Easily Googleable (standard patterns, library usage)
- Vague solutions (no code snippets or precise instructions)
- Poor triggers (generic words that match everything)
Step 3: Classify as Expertise or Workflow
Before saving, determine if the learning is:
- Expertise (domain knowledge, pattern, gotcha) → Save as
{topic}-expertise.md - Workflow (operational procedure, step sequence) → Save as
{topic}-workflow.md
This classification ensures expertise can be updated independently without destabilizing workflows.
Step 4: Save Location
- User-level: ~/.claude/skills/omc-learned/ - Rare. Only for truly portable insights.
- Project-level: .omc/skills/ - Default. Version-controlled with repo.
Skill Body Template
# [Skill Name]
## The Insight
What is the underlying PRINCIPLE you discovered? Not the code, but the mental model.
## Why This Matters
What goes wrong if you don't know this? What symptom led you here?
## Recognition Pattern
How do you know when this skill applies? What are the signs?
## The Approach
The decision-making heuristic, not just code. How should Claude THINK about this?
## Example (Optional)
If code helps, show it - but as illustration of the principle, not copy-paste material.
Key: A skill is REUSABLE if Claude can apply it to NEW situations, not just identical ones.
Related Commands
- /oh-my-claudecode:note - Save quick notes that survive compaction (less formal than skills)
- /oh-my-claudecode:ralph - Start a development loop with learning capture
More by Yeachan-Heo
View all skills by Yeachan-Heo →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversExtract web content and convert to clean Markdown. Fast data extraction from web pages with caching, robots.txt support,
Rtfmbro is an MCP server for config management tools—get real-time, version-specific docs from GitHub for Python, Node.j
Fetch JSONPath retrieves and extracts data from HTTP APIs using JSONPath, supporting batch processing, custom headers, p
Unlock AI-ready web data with Firecrawl: scrape any website, handle dynamic content, and automate web scraping for resea
Browser Use lets LLMs and agents access and scrape any website in real time, making web scraping and web page scraping e
Extend your developer tools with GitHub MCP Server for advanced automation, supporting GitHub Student and student packag
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.