self-improvement

Captures learnings, errors, corrections, and feature requests to enable continuous improvement. Use when: (1) User corrects Claude ('No, that's wrong...', 'Actually...'), (2) User requests a capability that doesn't exist, (3) Claude realizes its knowledge is outdated or incorrect, (4) A better appro

By pskoett · 1,845 installs

npx skills add pskoett/pskoett-ai-skills --skill self-improvement

Source repository · Upstream listing

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. For installation commands, see [references/installation.md](references/installation.md). For optional agent activation and hooks, see [references/hooks setup.md](references/hooks setup.md). Read these only when installing or configuring the skill. Pair with [ self healing ](../self healing/SKILL.md): self healing is the active runtime recovery primitive — it diagnoses, patches, verifies, and files HEAL entries to .learnings/HEALS.md when something breaks mid task. Self improvement (this skill) is the passive accumulation and promotion layer — it logs corrections, knowledge gaps, and feature requests, and promotes recurring heal handoffs to permanent memory. They share .learnings/ but write to different files; verify discipline lives in self healing, promotion logic lives here. Quick Reference Situation Action Active failure mid task — agent needs to fix it now Use self healing instead (files verified HEAL to .learnings/HEALS.md ) Command/operation failed in the past (not actively healing) 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 Self healing Handoff block meets promotion rule (see Promotion Rule below) Promote the Distilled Rule to CLAUDE.md / AGENTS.md / new skill Knowledge was outdated Log to .learnings/LEARNINGS.md with category knowledge gap Found better approach Log to .learnings/LEARNINGS.md with category best practice Simplify/Harden recurring patterns Log/update .learnings/LEARNINGS.md with Source: simplify and harden and a stable Pattern Key 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 Setup Create .learnings/ directory in project root if it doesn't exist: Copy the file templates from assets/ ( LEARNINGS.md , ERRORS.md , FEATURE REQUESTS.md ) or create files with headers. Logging Format Learning Entry Append to .learnings/LEARNINGS.md : Every saved learning gets maintenance fields at capture, even if never promoted. Use [references/context maintenance.md](references/context maintenance.md); keep unknowns explicit. Error Entry Append to .learnings/ERRORS.md : Actual error message or output Feature Request Entry Append to .learnings/FEATURE REQUESTS.md : 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: 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 promoted to skill Extracted as a reusable skill (see Automatic Skill Extraction) 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 How to Promote The main agent performs this step using the learning entry or the learning aggregator gap report. No dedicated agent preset is required. 1. Check eligibility and relevance. Apply the Promotion Rule below, read the supporting entries and related files, and check existing instructions. If the rule is already covered, record the existing target rather than duplicating it. Flag stale evidence or conflicting rules for human review; do not silently dismiss entries or overwrite existing guidance. 2. Distill the pattern into one to three actionable, contextual sentences. Choose the appropriate target and section, preserving its organization and any required synchronization across instruction files. Promotion changes instructions, not application code. 3. Show the proposed diff for human approval before writing instructions. Apply only the approved changes. In Copilot, present the diff and ask in chat. Skill edits require explicit scoped approval as described below. 4. Update the source entry after promotion: set Status : promoted , record Promoted : <target files and Promoted Date: YYYY MM DD , and retain the source IDs and Pattern Key. Do not mark an unapplied proposal as promoted. Promotion approval does not authorize committing or publishing. 5. Flag eval candidates for eval creator when the rule has a clear pass/fail condition. Include the Pattern Key, rule, target, source IDs, recurrence evidence, assertion, and verification method. When a gap report supplies a tracker , preserve it as the Pattern Key in the handoff. Projects using inline provenance can also place <! tracker:[pattern key] source:[entry IDs] promoted:YYYY MM DD eval:[eval ID] above the rule; omit unknown fields. Tracker comments are optional. Context Maintenance at Promotion Refine the capture time contract at promotion; use context decay when available. Keep metadata in the learning and only the rule or retrieval pointer in instructions. Review does not change recurrence or eligibility; see references/context maintenance.md . For stale skill guidance, surface a concrete proposal even on the first learning. Skill edits/retirement need explicit scoped approval, even without context decay ; see the same reference. 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): Learning (verbose): When modifying API endpoints, must regenerate TypeScript client. Forgetting this causes type mismatches at runtime. In AGENTS.md (actionable): 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) Simplify & Harden Feed Use this workflow to ingest recurring patterns from the simplify and harden skill and turn them into durable prompt guidance. Ingestion Workflow 1. Read simplify and harden.learning loop.candidates from the task summary. 2. For each candidate, use pattern key as the stable dedupe key. 3. Search .learnings/LEARNINGS.md for an existing entry with that key: grep n "Pattern Key: <pattern key " .learnings/LEARNINGS.md 4. If found: Increment Recurrence Count Update Last Seen Add See Also links to related entries/tasks 5. If not found: Create a new LRN ... entry Set Source: simplify and harden Set Pattern Key , Recurrence Count: 1 , and First Seen / Last Seen Promotion Rule (System Prompt Feedback) Promote recurring patterns into agent context/system prompt files when all are true: Recurrence Count = 3 Seen across at least 2 distinct tasks Occurred within a 30 day window Promotion targets: CLAUDE.md AGENTS.md .github/copilot instructions.md This three condition rule is the single promotion threshold for this skill. The Quick Reference row for self healing Handoff blocks and the aggregator skills ( learning aggregator , learning aggregator ci ) all use this same rule. Write promoted rules as short prevention rules (what to do before/while coding), not long incident write ups. 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 Review Actions Resolve fixed items Promote applicable learnings Link related entries Escalate recurring issues Review saved learnings, including one off and unpromoted entries, when their source, decision, dependency, or review point changes. Update the existing contract using references/context maintenance.md ; use context decay when available. A review is not recurrence or evidence for age based removal. 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 request): "Can you also..." "I wish you could..." "Is there a way to..." "Why can't you..." Knowledge Gaps (→ learning with knowledge gap category): User provides information you didn't know Documentation you referenced is outdated API behavior differs from your understanding Errors (→ error entry): Command returns non zero exit code Exception or stack trace Unexpected output or behavior Timeout or connection failure Priority Guidelines Priority When to Use critical Blocks core functionality, data loss risk, security issue high Significant impact, affects common workflows, recurring issue medium Moderate impact, workaround exists low Minor inconvenience, edge case, nice to have Area Tags Use to filter learnings by codebase region: Area Scope frontend UI, components, client side code backend API, services, server side code infra CI/CD, deployment, Docker, cloud tests Test files, testing utilities, coverage docs Documentation, comments, READMEs config Configuration files, environment, settings Best Practices 1. Log immediately context is freshest right after the issue 2. Be specific future agents need to understand quickly 3. Include reproduction steps especially for errors 4. Link related files makes fixes easier 5. Suggest concrete fixes not just "investigate" 6. Use consistent categories enables filtering 7. Promote selectively apply the promotion rule; prefer a source retrieval pointer when a copied fact would quickly become stale 8. Review regularly stale learnings lose value Gitignore Options Keep learnings local (per developer): Track learnings in repo (team wide): Don't add to .gitignore learnings become shared knowledge. Hybrid (track templates, ignore entries): Hook Integration Automatic reminders are opt in . Claude Code, Codex CLI, and Copilot have different event and output contracts; see [references/hooks setup.md](references/hooks setup.md). Amp loads skills on demand and uses a separate native plugin for per turn reminders; see [references/amp setup.md](references/amp setup.md). Reminders do not write learnings or guarantee capture. Automatic Skill Extraction Wh