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
- wagmarsouza/trace-lessontheir own version, first seen Nov 8, 2026
- mahsumaktas/agent-evolution-kittheir own version, first seen Nov 8, 2026
- Elong-svg/business-plan-factorytheir own version, first seen Nov 8, 2026
- cjh-solver/MathModeling-Skills-Arsenaltheir own version, first seen Nov 8, 2026
- cormacc/dotagentstheir own version, first seen Nov 4, 2026
- pfeff/claude-skillstheir own version, first seen Nov 1, 2026
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.
LaoK2017Skillskill-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
Saik0sSkillbrowser-use
AI-driven browser automation via Model Context Protocol
Also in 3 projects that use this
VercelSkillagent-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
VercelSkillfind-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
NVIDIASkilldeep-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 AzureSkillhumanizer
Tone enforcement patterns for external-facing community responses
Also in 3 projects that use this
Other versions33 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 33
- wanikua/boluobobo-ai-court-tutorial★ 2.7ksame name
- InternLM/WildClawBench★ 534same name
- pskoett/pskoett-ai-skills★ 327same name
- kunwl123456/zeroclaw-skills-collection★ 27same name
- OpenBMB/EC2-Bench★ 19same name
- eraycc/Openclaw-Skills★ 16same name
- cjh-solver/MathModeling-Skills-Arsenal★ 14same name
- bokan/claude-skill-self-improvement★ 12same name
- hua695/MathModeling-Skills-Arsenal★ 12same name
- lanyasheng/self-improving-agent★ 8same name
23 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- api-doc-recallSkill
- assistant-runtime-architectureSkill
- code-disciplineSkill
- english-requestSkill
- github-repo-opsSkill
- git-safetySkill
- long-task-continuitySkill
- opencode-config-authoringSkill
- opencode-tool-outputSkill
- powershell-windowsSkill
- provider-reconnectSkill
- reference-booksSkill
- release-checklistSkill
- research-synthesisSkill
- skill-authoringSkill
- subagent-delegationSkill
- task-closureSkill
- test-first-fixSkill
- troubleshooting-treeSkill
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
- Distinctive: line 41
Do not capture: one-off environment noise, the user's preference for this specific task stated once, or anything you have not verified.
- Distinctive: line 61
Keep it to three lines. An elaborate lesson entry does not get promoted.
- Distinctive: line 65
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 …
- Distinctive: line 84
Coverage: No existing skill's description claims this.
- Distinctive: line 88
Prefer editing an existing skill.
- Distinctive: line 96
Put the rule in the body if it changes what the reader does.
- Distinctive: line 97
description: if it changes when the skill fires.
- Very specific: line 103
If the skill is heading past 500 lines, split now: move detail to references/<topic>.md and leave routing in SKILL.md.
- Distinctive: line 127
If you cannot describe how you'd notice the lesson failed to apply, the lesson is not specific enough to be promoted yet.
- Very specific: line 144
Read lessons.md before starting work in a familiar area — it may already contain the answer, and promoting it is cheaper than rediscovering …
“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.
Files
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 validatorMost 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:** pendingKeep 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
| Destination | Use when |
| Existing skill | the lesson falls inside a skill's stated scope; extend it |
| New skill | a new coherent domain, likely to recur ≥3 times, and not already covered |
| Reference file | detail for a skill that exists but pushes past its 500-line budget |
| Script | the lesson is "this must be checked exactly"; make it machine-checkable |
| AGENTS.md | repo-specific or always-true, too small to justify a skill |
| Nothing | verified one-off; delete the queue entry |
Two tests before creating a new skill:
- Recurrence. Have I hit this three times, or is it near-certain to recur? One-off failures do not get skills.
- 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:
- Put the rule in the body if it changes what the reader does; in the description if it changes when the skill fires.
- 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.
- Show the failure, not just the fix. The concrete failure is what lets the reader recognize the next occurrence.
- If the skill is heading past 500 lines, split now: move detail to
references/<topic>.mdand 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-pattern | Why it loses the lesson |
| capturing into the conversation only | gone at restart; this is what "I already told you" means |
| a lesson queue nobody reads | promote at capture time when it's a single obvious fix |
| one new skill per incident | triggers compete, descriptions rot, context cost is permanent |
| capturing unverified guesses | the "lesson" teaches a wrong rule, which is worse than none |
| editing a skill without re-running its validator | broken links and bad frontmatter ship silently |
| restating the incident instead of the rule | a rule needs to be actionable without the story |
| upgrading an old incident by speculation | check 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.
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
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.

