agentleFS
TrueImmortal82TrueImmortal82/open-code-skills/skills/self-improvement/SKILL.md

self-improvement

Skill0 starsChanged 41 days agoMITView on GitHub

The learning loop for this agent — capture a correction or failure as a durable lesson, decide whether it belongs in a skill or AGENTS.md, and promote it so the mistake does not repeat. Use when the user corrects me, says "запомни", "не делай так", "ты ошибся", "я же говорил", when a command failed in a way that was avoidable, or at the end of a session where something non-obvious came up. Triggers on being wrong, not on being asked to learn.

33 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use skill-vetter, browser-use and 6 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • LaoK2017Skill

    skill-vetter

    Security review and audit tool for AI agent skills. Use when asked to "vet a skill", "check skill security", "audit a skill", or when reviewing skills before installation to detect malicious code, unauthorized access, and suspicious patterns.

    Also in 3 projects that use this

  • Saik0sSkill

    browser-use

    AI-driven browser automation via Model Context Protocol

    Also in 3 projects that use this

  • VercelSkill

    agent-browser

    Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

    Also in 6 projects that use this

  • VercelSkill

    find-skills

    Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

    Also in 6 projects that use this

  • NVIDIASkill

    deep-research

    Queue deep, multi-step research and analysis tasks to the DeepAgents worker. Supports execution depth presets, request-specific rubrics, SubAgent delegation, and RubricMiddleware cross-validation.

    Also in 3 projects that use this

  • Microsoft AzureSkill

    humanizer

    Tone enforcement patterns for external-facing community responses

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 8 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 32 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do not capture: one-off environment noise, the user's preference for this specific task stated once, or anything you have not verified.

    line 41
  2. Distinctive:

    Keep it to three lines. An elaborate lesson entry does not get promoted.

    line 61
  3. Distinctive:

    Read the lessons file at the start of any session where a relevant topic comes up, and always before writing a new skill: an unpromoted …

    line 65
  4. Distinctive:

    Coverage: No existing skill's description claims this.

    line 84
  5. Distinctive:

    Prefer editing an existing skill.

    line 88
  6. Distinctive:

    Put the rule in the body if it changes what the reader does.

    line 96
  7. Distinctive:

    description: if it changes when the skill fires.

    line 97
  8. Very specific:

    If the skill is heading past 500 lines, split now: move detail to references/<topic>.md and leave routing in SKILL.md.

    line 103
  9. Distinctive:

    If you cannot describe how you'd notice the lesson failed to apply, the lesson is not specific enough to be promoted yet.

    line 127
  10. Very specific:

    Read lessons.md before starting work in a familiar area — it may already contain the answer, and promoting it is cheaper than rediscovering …

    line 144

“Common” is measured: kept by at least 6 in 10 of the 32 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Learning loop

An agent has no weights to update. Learning here means writing an artifact that the next session will read before it can repeat the mistake. If a lesson does not end up in a file, it did not happen.

This is the single most-skipped discipline. The user will not remember to repeat their instructions, and neither will you. Capture the lesson at the moment you learn it, while the specifics are still in front of you.

The loop

notice  ->  capture  ->  classify  ->  promote  ->  verify
failure     lesson      where does    edit/create   regression test
             (queue)     it belong?    the artifact   or validator

Most of the value is in notice and promote. A captured lesson that never gets promoted is a note to self that nobody reads.

1. Notice — what counts as a lesson

Capture when any of these is true:

  • The user corrected or contradicted something I did or said.
  • A command failed in a way a rule would have prevented (encoding, quoting, wrong tool, wrong path).
  • I reached for the corpus / guessed at a cause instead of reading the code.
  • I repeated a mistake already recorded somewhere.
  • The user said any of: «запомни», «не делай так», «ты ошибся», «я же говорил», «опять», «ты забыл».
  • Something took three attempts to get right for a non-obvious reason.
  • A skill fired wrongly, or failed to fire when it should have.

Do not capture: one-off environment noise, the user's preference for this specific task stated once, or anything you have not verified.

The bar is: would a rule have changed my behavior, and would the rule still be true in a month?

2. Capture — write it down immediately

Append to the lessons file lessons.md in the global opencode config directory — ~/.config/opencode/lessons.md. It is a plain markdown file; append it like any other file. Entry shape:

### 2026-09-30 — piping Cyrillic through `Select-String` in PS 5.1
**Triggered by:** user correction, wrong output (mojibake)
**Rule:** use the Grep tool for non-ASCII search; never pipe cmdlet output
through `>` (us-ascii).
**Status:** pending

Keep it to three lines. An elaborate lesson entry does not get promoted; a terse one does. Capture within the same session — context you do not write down is context you lose at the next restart.

Read the lessons file at the start of any session where a relevant topic comes up, and always before writing a new skill: an unpromoted lesson may already cover half of what you are about to write.

3. Classify — where does this lesson belong

DestinationUse when
Existing skillthe lesson falls inside a skill's stated scope; extend it
New skilla new coherent domain, likely to recur ≥3 times, and not already covered
Reference filedetail for a skill that exists but pushes past its 500-line budget
Scriptthe lesson is "this must be checked exactly"; make it machine-checkable
AGENTS.mdrepo-specific or always-true, too small to justify a skill
Nothingverified one-off; delete the queue entry

Two tests before creating a new skill:

  1. Recurrence. Have I hit this three times, or is it near-certain to recur? One-off failures do not get skills.
  2. Coverage. No existing skill's description claims this. If one does, extend it — a second skill on the same ground means neither fires reliably.

Prefer editing an existing skill. Trigger competition is the failure mode of skill sprawl, and every new skill costs description tokens on every session forever.

4. Promote — edit the artifact

Editing an existing skill:

  1. Put the rule in the body if it changes what the reader does; in the description if it changes when the skill fires.
  2. State the why in one clause. A rule with a reason generalizes to near-misses; a rule without one is memorized literally and fails on the variant.
  3. Show the failure, not just the fix. The concrete failure is what lets the reader recognize the next occurrence.
  4. If the skill is heading past 500 lines, split now: move detail to references/<topic>.md and leave routing in SKILL.md.

Creating a new skill: see skill-authoring — scaffold with scripts/new-skill.mjs, write the description with literal trigger keywords and negative scope, validate with scripts/validate-skill.mjs.

Make the lesson checkable when it can be. A rule that a script can verify gets enforced; a rule that only exists as prose gets forgotten. This is why the config skill ships validate-config.mjs rather than a paragraph about schemas.

Then mark the queue entry Status: promoted -> <file> (date).

5. Verify — did the lesson stick

A lesson is only real if the failure cannot recur silently.

  • Scripted check — best. Extend a validator, add a lint, or turn the case into a test.
  • Regression test — for code: name it after the failure, not the mechanism.
  • Reproduction prompt — if no code is involved, restate the trigger condition and re-check that the skill's description now contains the keywords that would catch it.

If you cannot describe how you'd notice the lesson failed to apply, the lesson is not specific enough to be promoted yet.

Anti-patterns

Anti-patternWhy it loses the lesson
capturing into the conversation onlygone at restart; this is what "I already told you" means
a lesson queue nobody readspromote at capture time when it's a single obvious fix
one new skill per incidenttriggers compete, descriptions rot, context cost is permanent
capturing unverified guessesthe "lesson" teaches a wrong rule, which is worse than none
editing a skill without re-running its validatorbroken links and bad frontmatter ship silently
restating the incident instead of the rulea rule needs to be actionable without the story
upgrading an old incident by speculationcheck the code first; the code may already have changed

Lessons file

Read lessons.md before starting work in a familiar area — it may already contain the answer, and promoting it is cheaper than rediscovering it.

Promoted lessons live in the skills themselves. This skill holds the loop, not the accumulated content: when it gets long, the content belongs in a references/ file and this body should be the procedure.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.