Source profileQuality 91/100

Yeachan-Heo/oh-my-claudecode/skills/learner/SKILL.md

learner

Extract a learned skill from the current conversation

Source repository stars
38,325
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

Deprecated compatibility alias: use /oh-my-claudecode:skillify for new skill extraction workflows. This file remains for internal implementation/history and compatibility.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/Yeachan-Heo/oh-my-claudecode --skill "skills/learner"
    Safe inspection promptEditorial

    Inspect the Agent Skill "learner" from https://github.com/Yeachan-Heo/oh-my-claudecode/blob/41a4c0f77144c5beb5f5f000a89cff379c680606/skills/learner/SKILL.md at commit 41a4c0f77144c5beb5f5f000a89cff379c680606. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Workflow

      This section contains the stable extraction procedure. It should NOT be updated during improvement cycles.

      Problem Statement: The SPECIFIC error, symptom, or confusion that occurredInclude actual error messages, file paths, line numbersExample: "TypeError in src/hooks/session.ts:45 when sessionId is undefined after restart"
    2. 02

      Step 1: Gather Required Information

      Problem Statement: The SPECIFIC error, symptom, or confusion that occurred

      Problem Statement: The SPECIFIC error, symptom, or confusion that occurredInclude actual error messages, file paths, line numbersExample: "TypeError in src/hooks/session.ts:45 when sessionId is undefined after restart"
    3. 03

      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)

      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)
    4. 04

      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

      Expertise (domain knowledge, pattern, gotcha) → Save as {topic}-expertise.mdWorkflow (operational procedure, step sequence) → Save as {topic}-workflow.mdBefore 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
    5. 05

      Step 4: Save Location

      User-level: ${CLAUDECONFIGDIR:-/.claude}/skills/omc-learned/.md - Rare. Only for truly portable insights.

      User-level: ${CLAUDECONFIGDIR:-/.claude}/skills/omc-learned/.md - Rare. Only for truly portable insights.Project-level: .omc/skills/.md - Default. Intended to be committed with the repo when you want the team to keep the skill. In linked worktrees, uncommitted skills are still worktree-local and disappear if that worktree…- User-level: ${CLAUDECONFIGDIR:-/.claude}/skills/omc-learned/.md - Rare. Only for truly portable insights. - Project-level: .omc/skills/.md - Default. Intended to be committed with the repo when you want the team to ke…

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars38,325SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    Yeachan-Heo/oh-my-claudecode
    Skill path
    skills/learner/SKILL.md
    Commit
    41a4c0f77144c5beb5f5f000a89cff379c680606
    License
    MIT
    Collected
    2026-08-04
    Default branch
    main
    View the original SKILL.md

    Learner Skill

    Deprecated compatibility alias: use /oh-my-claudecode:skillify for new skill extraction workflows. This file remains for internal implementation/history and compatibility.

    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

    1. 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" ✓
    2. 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" ✓
    3. 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" ✓
    4. 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_CONFIG_DIR:-~/.claude}/skills/omc-learned/<skill-name>.md - Rare. Only for truly portable insights.
    • Project-level: .omc/skills/<skill-name>.md - Default. Intended to be committed with the repo when you want the team to keep the skill. In linked worktrees, uncommitted skills are still worktree-local and disappear if that worktree is deleted.

    Required File Format

    Every learned skill file MUST start with YAML frontmatter so learned-skill flat-file discovery can load it. Do not write plain markdown without frontmatter.

    Minimum required frontmatter:

    ---
    name: <skill-name>
    description: <one-line description>
    triggers:
      - <trigger-1>
      - <trigger-2>
    ---
    

    Skill Body Template

    ---
    name: <skill-name>
    description: <one-line description>
    triggers:
      - <trigger-1>
      - <trigger-2>
    ---
    
    # [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

    Alternatives

    Compare before choosing

    Computed 10023,781

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 10014,225

    wanshuiyin/Auto-claude-code-research-in-sleep

    citation-audit

    Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.

    Computed 1004,922

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

    Computed 1002,504

    aaron-he-zhu/aaron-marketing-skills

    social-selling-planner

    Use when the user asks to "set up my founder social-selling routine", "build a daily engagement block for target accounts", or "turn funding / hiring signals into selling plays"; produces the founder/seller daily operating block — a time-boxed engagement-block spec (substantive value-add comments on target-account posts, never a pitch), warm-touch-before-ask cadence rules, trigger-response plays consuming the social-pulse-monitor B2B trigger watchlist (funding / hiring / launch signals), and a q