Back to Skills
    šŸ¦ž

    self-improvement

    Captures learnings, errors, and corrections to enable

    By @pskoett
    View on GitHub
    SKILL.md
    ---
    name: self-improvement
    description: "Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Claude ('No, that's wrong...', 'Actually...'), (3) User requests a capability that doesn't exist, (4) An external API or tool fails, (5) Claude realizes its knowledge is outdated or incorrect, (6) A better approach is discovered for a recurring task. Also review learnings before major tasks."
    ---
    
    # Self-Improvement Skill
    
    Log learnings and errors to markdown files for continuous improvement. Coding agents can later process these into fixes, and important learnings get promoted to project memory.
    
    ## Quick Reference
    
    | Situation | Action |
    |-----------|--------|
    | Command/operation fails | Log to `.learnings/ERRORS.md` |
    | User corrects you | Log to `.learnings/LEARNINGS.md` with category `correction` |
    | User wants missing feature | Log to `.learnings/FEATURE_REQUESTS.md` |
    | API/external tool fails | Log to `.learnings/ERRORS.md` with integration details |
    | Knowledge was outdated | Log to `.learnings/LEARNINGS.md` with category `knowledge_gap` |
    | Found better approach | Log to `.learnings/LEARNINGS.md` with category `best_practice` |
    | Similar to existing entry | Link with `**See Also**`, consider priority bump |
    | Broadly applicable learning | Promote to `CLAUDE.md`, `AGENTS.md`, and/or `.github/copilot-instructions.md` |
    | Workflow improvements | Promote to `AGENTS.md` (OpenClaw workspace) |
    | Tool gotchas | Promote to `TOOLS.md` (OpenClaw workspace) |
    | Behavioral patterns | Promote to `SOUL.md` (OpenClaw workspace) |
    
    ## OpenClaw Setup (Recommended)
    
    OpenClaw is the primary platform for this skill. It uses workspace-based prompt injection with automatic skill loading.
    
    ### Installation
    
    **Via ClawdHub (recommended):**
    ```bash
    clawdhub install self-improving-agent
    ```
    
    **Manual:**
    ```bash
    git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
    ```
    
    ### Workspace Structure
    
    OpenClaw injects these files into every session:
    
    ```
    ~/.openclaw/workspace/
    ā”œā”€ā”€ AGENTS.md          # Multi-agent workflows, delegation patterns
    ā”œā”€ā”€ SOUL.md            # Behavioral guidelines, personality, principles
    ā”œā”€ā”€ TOOLS.md           # Tool capabilities, integration gotchas
    ā”œā”€ā”€ MEMORY.md          # Long-term memory (main session only)
    ā”œā”€ā”€ memory/            # Daily memory files
    │   └── YYYY-MM-DD.md
    └── .learnings/        # This skill's log files
        ā”œā”€ā”€ LEARNINGS.md
        ā”œā”€ā”€ ERRORS.md
        └── FEATURE_REQUESTS.md
    ```
    
    ### Create Learning Files
    
    ```bash
    mkdir -p ~/.openclaw/workspace/.learnings
    ```
    
    Then create the log files (or copy from `assets/`):
    - `LEARNINGS.md` — corrections, knowledge gaps, best practices
    - `ERRORS.md` — command failures, exceptions
    - `FEATURE_REQUESTS.md` — user-requested capabilities
    
    ### Promotion Targets
    
    When learnings prove broadly applicable, promote them to workspace files:
    
    | Learning Type | Promote To | Example |
    |---------------|------------|---------|
    | Behavioral patterns | `SOUL.md` | "Be concise, avoid disclaimers" |
    | Workflow improvements | `AGENTS.md` | "Spawn sub-agents for long tasks" |
    | Tool gotchas | `TOOLS.md` | "Git push needs auth configured first" |
    
    ### Inter-Session Communication
    
    OpenClaw provides tools to share learnings across sessions:
    
    - **sessions_list** — View active/recent sessions
    - **sessions_history** — Read another session's transcript  
    - **sessions_send** — Send a learning to another session
    - **sessions_spawn** — Spawn a sub-agent for background work
    
    ### Optional: Enable Hook
    
    For automatic reminders at session start:
    
    ```bash
    # Copy hook to OpenClaw hooks directory
    cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement
    
    # Enable it
    openclaw hooks enable self-improvement
    ```
    
    See `references/openclaw-integration.md` for complete details.
    
    ---
    
    ## Generic Setup (Other Agents)
    
    For Claude Code, Codex, Copilot, or other agents, create `.learnings/` in your project:
    
    ```bash
    mkdir -p .learnings
    ```
    
    Copy templates from `assets/` or create files with headers.
    
    ## Logging Format
    
    ### Learning Entry
    
    Append to `.learnings/LEARNINGS.md`:
    
    ```markdown
    ## [LRN-YYYYMMDD-XXX] category
    
    **Logged**: ISO-8601 timestamp
    **Priority**: low | medium | high | critical
    **Status**: pending
    **Area**: frontend | backend | infra | tests | docs | config
    
    ### Summary
    One-line description of what was learned
    
    ### Details
    Full context: what happened, what was wrong, what's correct
    
    ### Suggested Action
    Specific fix or improvement to make
    
    ### Metadata
    - Source: conversation | error | user_feedback
    - Related Files: path/to/file.ext
    - Tags: tag1, tag2
    - See Also: LRN-20250110-001 (if related to existing entry)
    
    ---
    ```
    
    ### Error Entry
    
    Append to `.learnings/ERRORS.md`:
    
    ```markdown
    ## [ERR-YYYYMMDD-XXX] skill_or_command_name
    
    **Logged**: ISO-8601 timestamp
    **Priority**: high
    **Status**: pending
    **Area**: frontend | backend | infra | tests | docs | config
    
    ### Summary
    Brief description of what failed
    
    ### Error
    ```
    Actual error message or output
    ```
    
    ### Context
    - Command/operation attempted
    - Input or parameters used
    - Environment details if relevant
    
    ### Suggested Fix
    If identifiable, what might resolve this
    
    ### Metadata
    - Reproducible: yes | no | unknown
    - Related Files: path/to/file.ext
    - See Also: ERR-20250110-001 (if recurring)
    
    ---
    ```
    
    ### Feature Request Entry
    
    Append to `.learnings/FEATURE_REQUESTS.md`:
    
    ```markdown
    ## [FEAT-YYYYMMDD-XXX] capability_name
    
    **Logged**: ISO-8601 timestamp
    **Priority**: medium
    **Status**: pending
    **Area**: frontend | backend | infra | tests | docs | config
    
    ### Requested Capability
    What the user wanted to do
    
    ### User Context
    Why they needed it, what problem they're solving
    
    ### Complexity Estimate
    simple | medium | complex
    
    ### Suggested Implementation
    How this could be built, what it might extend
    
    ### Metadata
    - Frequency: first_time | recurring
    - Related Features: existing_feature_name
    
    ---
    ```
    
    ## ID Generation
    
    Format: `TYPE-YYYYMMDD-XXX`
    - TYPE: `LRN` (learning), `ERR` (error), `FEAT` (feature)
    - YYYYMMDD: Current date
    - XXX: Sequential number or random 3 chars (e.g., `001`, `A7B`)
    
    Examples: `LRN-20250115-001`, `ERR-20250115-A3F`, `FEAT-20250115-002`
    
    ## Resolving Entries
    
    When an issue is fixed, update the entry:
    
    1. Change `**Status**: pending` → `**Status**: resolved`
    2. Add resolution block after Metadata:
    
    ```markdown
    ### Resolution
    - **Resolved**: 2025-01-16T09:00:00Z
    - **Commit/PR**: abc123 or #42
    - **Notes**: Brief description of what was done
    ```
    
    Other status values:
    - `in_progress` - Actively being worked on
    - `wont_fix` - Decided not to address (add reason in Resolution notes)
    - `promoted` - Elevated to CLAUDE.md, AGENTS.md, or .github/copilot-instructions.md
    
    ## Promoting to Project Memory
    
    When a learning is broadly applicable (not a one-off fix), promote it to permanent project memory.
    
    ### When to Promote
    
    - Learning applies across multiple files/features
    - Knowledge any contributor (human or AI) should know
    - Prevents recurring mistakes
    - Documents project-specific conventions
    
    ### Promotion Targets
    
    | Target | What Belongs There |
    |--------|-------------------|
    | `CLAUDE.md` | Project facts, conventions, gotchas for all Claude interactions |
    | `AGENTS.md` | Agent-specific workflows, tool usage patterns, automation rules |
    | `.github/copilot-instructions.md` | Project context and conventions for GitHub Copilot |
    | `SOUL.md` | Behavioral guidelines, communication style, principles (OpenClaw workspace) |
    | `TOOLS.md` | Tool capabilities, usage patterns, integration gotchas (OpenClaw workspace) |
    
    ### How to Promote
    
    1. **Distill** the learning into a concise rule or fact
    2. **Add** to appropriate section in target file (create file if needed)
    3. **Update** original entry:
       - Change `**Status**: pending` → `**Status**: promoted`
       - Add `**Promoted**: CLAUDE.md`, `AGENTS.md`, or `.github/copilot-instructions.md`
    
    ### Promotion Examples
    
    **Learning** (verbose):
    > Project uses pnpm workspaces. Attempted `npm install` but failed. 
    > Lock file is `pnpm-lock.yaml`. Must use `pnpm install`.
    
    **In CLAUDE.md** (concise):
    ```markdown
    ## Build & Dependencies
    - Package manager: pnpm (not npm) - use `pnpm install`
    ```
    
    **Learning** (verbose):
    > When modifying API endpoints, must regenerate TypeScript client.
    > Forgetting this causes type mismatches at runtime.
    
    **In AGENTS.md** (actionable):
    ```markdown
    ## After API Changes
    1. Regenerate client: `pnpm run generate:api`
    2. Check for type errors: `pnpm tsc --noEmit`
    ```
    
    ## Recurring Pattern Detection
    
    If logging something similar to an existing entry:
    
    1. **Search first**: `grep -r "keyword" .learnings/`
    2. **Link entries**: Add `**See Also**: ERR-20250110-001` in Metadata
    3. **Bump priority** if issue keeps recurring
    4. **Consider systemic fix**: Recurring issues often indicate:
       - Missing documentation (→ promote to CLAUDE.md or .github/copilot-instructions.md)
       - Missing automation (→ add to AGENTS.md)
       - Architectural problem (→ create tech debt ticket)
    
    ## Periodic Review
    
    Review `.learnings/` at natural breakpoints:
    
    ### When to Review
    - Before starting a new major task
    - After completing a feature
    - When working in an area with past learnings
    - Weekly during active development
    
    ### Quick Status Check
    ```bash
    # Count pending items
    grep -h "Status\*\*: pending" .learnings/*.md | wc -l
    
    # List pending high-priority items
    grep -B5 "Priority\*\*: high" .learnings/*.md | grep "^## \["
    
    # Find learnings for a specific area
    grep -l "Area\*\*: backend" .learnings/*.md
    ```
    
    ### Review Actions
    - Resolve fixed items
    - Promote applicable learnings
    - Link related entries
    - Escalate recurring issues
    
    ## Detection Triggers
    
    Automatically log when you notice:
    
    **Corrections** (→ learning with `correction` category):
    - "No, that's not right..."
    - "Actually, it should be..."
    - "You're wrong about..."
    - "That's outdated..."
    
    **Feature Requests** (→ feature r
    
    ... (truncated)