learner

Extract a learned skill from the current conversation

11 stars

Best use case

learner is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Extract a learned skill from the current conversation

Teams using learner should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/learner/SKILL.md --create-dirs "https://raw.githubusercontent.com/MeroZemory/oh-my-droid/main/skills/learner/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/learner/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How learner Compares

Feature / AgentlearnerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Extract a learned skill from the current conversation

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Learner Skill

## The Insight

Reusable skills are not code snippets to copy-paste, but **principles and decision-making heuristics** that teach the agent 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."

A good skill changes how the agent APPROACHES problems, not just what code it produces.

## Why This Matters

Before extracting a skill, ask yourself:
- "Could someone Google this in 5 minutes?" → If yes, STOP. Don't extract.
- "Is this specific to THIS codebase?" → If no, STOP. Don't extract.
- "Did this take real debugging effort to discover?" → If no, STOP. Don't extract.

If a potential skill fails any of these questions, it's not worth saving.

## Recognition Pattern

Use /learner 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

## The Approach

### Extraction Process

**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: Save Location**

- **User-level**: ~/.factory/skills/omc-learned/ - Rare. Only for truly portable insights.
- **Project-level**: .omd/skills/ - Default. Version-controlled with repo.

### What Makes a USEFUL Skill

**CRITICAL**: Not every solution is worth saving. A good skill is:

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

## Skill Format

Skills are saved as markdown with this structure:

### YAML Frontmatter

Standard metadata fields:
- id, name, description, source, triggers, quality

### Body Structure (Required)

```markdown
# [Skill Name]

## The Insight
What is the underlying PRINCIPLE you discovered? Not the code, but the mental model.
Example: "Async I/O operations are independently failable. Client lifecycle != server lifecycle."

## Why This Matters
What goes wrong if you don't know this? What symptom led you here?
Example: "Proxy server crashes on client disconnect, taking down other requests."

## Recognition Pattern
How do you know when this skill applies? What are the signs?
Example: "Building any long-lived connection handler (proxy, websocket, SSE)"

## The Approach
The decision-making heuristic, not just code. How should the agent THINK about this?
Example: "For each I/O operation, ask: what if this fails right now? Handle it locally."

## Example (Optional)
If code helps, show it - but as illustration of the principle, not copy-paste material.
```

**Key**: A skill is REUSABLE if the agent can apply it to NEW situations, not just identical ones.

## Related Commands

- /note - Save quick notes that survive compaction (less formal than skills)
- /ralph - Start a development loop with learning capture

Related Skills

writer-memory

11
from MeroZemory/oh-my-droid

Agentic memory system for writers - track characters, relationships, scenes, and themes

ultrawork

11
from MeroZemory/oh-my-droid

Decompose multi-step tasks into parallel sub-agent workloads, route each sub-task to the cheapest capable model tier (Haiku/Sonnet/Opus), run long-running commands in the background, and verify all deliverables before stopping. Use when the user asks to 'go fast', 'parallelize', 'ultrawork', or when a request contains 3+ independent sub-tasks that benefit from concurrent execution.

team

11
from MeroZemory/oh-my-droid

Coordinate named agents as a team with inter-agent communication

tdd

11
from MeroZemory/oh-my-droid

Enforce strict Test-Driven Development (TDD) using the red-green-refactor cycle. Use when writing unit tests, practicing test-first development, applying TDD discipline, or implementing features via red-green-refactor workflows.

swarm

11
from MeroZemory/oh-my-droid

N coordinated agents on shared task list with SQLite-based atomic claiming

skill

11
from MeroZemory/oh-my-droid

Manage local skills - list, add, remove, search, edit

security-review

11
from MeroZemory/oh-my-droid

Run a comprehensive security review on code

review

11
from MeroZemory/oh-my-droid

Review a plan with Critic

research

11
from MeroZemory/oh-my-droid

Orchestrate parallel scientist agents for comprehensive research with AUTO mode

release

11
from MeroZemory/oh-my-droid

Automated release workflow for oh-my-droid

ralplan

11
from MeroZemory/oh-my-droid

Iterative planning with Planner, Architect, and Critic until consensus

ralph

11
from MeroZemory/oh-my-droid

Self-referential loop until task completion with architect verification