/self-learning
Capture a hard-won "golden path" from the current session as a reusable Agent Skill, so future sessions start already knowing it. Use it (1) right after non-trivial debugging, after working out a multi-step operational workflow, or after rediscovering project facts you didn't
$ npx -y skills add Kulaxyz/self-learning-skills --skill self-learning --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/self-learning
Context preview
The summary Claude sees to decide when to auto-load this skill.
Capture a hard-won "golden path" from the current session as a reusable Agent Skill, so future sessions start already knowing it. Use it (1) right after non-trivial debugging, after working out a multi-step operational workflow, or after rediscovering project facts you didn't
SKILL.md
self-learning.SKILL.mdname: self-learning
description: >
Capture a hard-won "golden path" from the current session as a reusable Agent
Skill, so future sessions start already knowing it. Use it (1) right after
non-trivial debugging, after working out a multi-step operational workflow, or
after rediscovering project facts you didn't know up front — e.g. how to reach
the dev/prod database, where credentials and env vars live, how to deploy, run
migrations, or verify a change live; and (2) whenever the user says "remember
this", "save this as a skill", "make a skill for this", "don't make me
re-explain this next time", or otherwise wants a workflow preserved across
sessions. Proactively recognize the moment even when unprompted: if a task took
several attempts before it worked, used non-obvious tooling, or is likely to
recur, harvest it without asking first. Delegates to a subagent when your tool
supports one, or works inline, to extract the proven procedure into a new
project-local or global skill.
license: MIT
metadata:
author: kulaxyz
version: "1.0"
Self-learning: harvest golden paths into skills
This skill turns something you just figured out the hard way into a reusable Agent Skill, so the next session — yours or a teammate's — starts already knowing the proven route instead of rediscovering it from scratch.
It is a *meta-skill*: it doesn't do the work, it captures **how** work got done. It's tool-neutral — it works with any agent that reads the Agent Skills format (e.g. Claude Code and Codex, which both load `SKILL.md` skills natively). Where a step differs by tool, the generic version comes first and any tool-specific detail is only an example.
Recognize the moment
Watch for these signals during normal work. Any one of them is a cue to harvest:
- A task only worked **after several attempts**, wrong turns, or a correction
from the user. The successful path is worth more than the failures around it.
- You discovered **project-specific facts the agent didn't know up front**:
where creds/env vars live, which selector or backend talks to a service, a non-obvious command, a required sequence, a gotcha that defies the obvious assumption.
- It's an **operational workflow likely to recur**: reach the dev/prod DB,
deploy, run migrations, seed data, verify a change live, run one specific test path, rotate a key, tail the right logs.
- The user **signals it explicitly**: "remember this", "save this as a skill",
"don't make me re-explain this next time".
**Act on the cue immediately — don't ask for permission first**, whether the user requested it or you noticed it yourself. Harvest the skill, then tell the user what you captured and where (step 5). They can always edit or delete it.
Skill, memory, or skip?
Not every lesson deserves a whole skill — triage first, so you don't bloat the skills list with one-liners:
- **A multi-step, reusable procedure or workflow** (how to deploy, reach the DB,
run the migration dance, verify live) → harvest it as a **skill** using the procedure below.
- **A single standalone fact or one-line correction** (an env var name, a path,
one gotcha) → if your harness has a lightweight memory/notes facility (e.g. a `MEMORY.md` index), record it **there** instead; a whole skill is overkill for a one-liner. With no such facility, make a small skill.
- **A genuinely one-off thing** unlikely to recur → skip it.
When you do harvest, capture the **failures too**, not just the win: the approaches you ruled out and *why* often save more time next session than the golden path itself.
Promotion rule: don't enshrine guesses
A skill is authoritative — the next session trusts it without re-deriving it — so hold promotion to a high bar. Only write a skill when **all three** hold:
1. **A passing check.** The path was actually verified — a test passed, the command exited clean, the repro reproduced, the build went green. Record what the check was. "Seemed to work" is not a passing check. 2. **A named failure pattern.** You can name the failure this path avoids or diagnoses (e.g. "stale build cache → phantom type errors"), not a vague "sometimes it breaks". 3. **At least one ruled-out dead-end.** A concrete approach you tried and eliminated, with the reason.
If any is missing, it isn't a skill yet — leave a tentative note in memory (marked unverified) or skip it. This keeps confident guesses out of the skill set.
Harvest procedure
- [ ] 1. **Apply the promotion rule** (above). Passing check + named failure
pattern + one ruled-out dead-end — or it isn't a skill: note it in memory or skip. Don't proceed on a confident guess.
- [ ] 2. **Choose scope and name yourself** using the heuristics below — don't
stop to ask. Default to project scope; pick a clear, specific `name`.
- [ ] 3. **Dedupe.** Look for an existing skill to UPDATE rather than duplicate.
List your agent's skills directories — the project one and the user-level one (e.g. Claude Code `.claude/skills` + `~/.claude/skills`, Codex `.codex/skills` + `~/.codex/skills`, or your tool's equivalent). Also glance at any memory/notes index — a fact already there may just need a pointer.
- [ ] 4. **Distill the golden path from THIS conversation** before delegating —
while it's fresh in your head: the exact working commands, file paths, env var names, the required order, and (just as important) the dead-ends to avoid. This is the raw material for the write.
- [ ] 5. **Delegate the write** to a subagent that inherits this conversation if
your tool supports one, or do it inline otherwise — see below. The conversation is the only place the golden path lives, so whoever writes it must have that context.
- [ ] 6. When the write is done, **relay the new skill's path** to the user
and, in one line, what it captured.
Scope: project vs global
- **Project** (the repo's ski
Read more
name: self-learning description: > Capture a hard-won "golden path" from the current session as a reusable Agent Skill, so future sessions start already knowing it. Use it (1) right after non-trivial debugging, after working out a multi-step operational workflow, or after rediscovering project facts you didn't know up front — e.g. how to reach the dev/prod database, where credentials and env vars live, how to deploy, run migrations, or verify a change live; and (2) whenever the user says "remember this", "save this as a skill", "make a skill for this", "don't make me re-explain this next time", or otherwise wants a workflow preserved across sessions. Proactively recognize the moment even when unprompted: if a task took several attempts before it worked, used non-obvious tooling, or is likely to recur, harvest it without asking first. Delegates to a subagent when your tool supports one, or works inline, to extract the proven procedure into a new project-local or global skill. license: MIT metadata: author: kulaxyz version: "1.0"
Self-learning: harvest golden paths into skills
This skill turns something you just figured out the hard way into a reusable Agent Skill, so the next session — yours or a teammate's — starts already knowing the proven route instead of rediscovering it from scratch.
It is a *meta-skill*: it doesn't do the work, it captures **how** work got done. It's tool-neutral — it works with any agent that reads the Agent Skills format (e.g. Claude Code and Codex, which both load `SKILL.md` skills natively). Where a step differs by tool, the generic version comes first and any tool-specific detail is only an example.
Recognize the moment
Watch for these signals during normal work. Any one of them is a cue to harvest:
- A task only worked **after several attempts**, wrong turns, or a correction
from the user. The successful path is worth more than the failures around it.
- You discovered **project-specific facts the agent didn't know up front**:
where creds/env vars live, which selector or backend talks to a service, a non-obvious command, a required sequence, a gotcha that defies the obvious assumption.
- It's an **operational workflow likely to recur**: reach the dev/prod DB,
deploy, run migrations, seed data, verify a change live, run one specific test path, rotate a key, tail the right logs.
- The user **signals it explicitly**: "remember this", "save this as a skill",
"don't make me re-explain this next time".
**Act on the cue immediately — don't ask for permission first**, whether the user requested it or you noticed it yourself. Harvest the skill, then tell the user what you captured and where (step 5). They can always edit or delete it.
Skill, memory, or skip?
Not every lesson deserves a whole skill — triage first, so you don't bloat the skills list with one-liners:
- **A multi-step, reusable procedure or workflow** (how to deploy, reach the DB,
run the migration dance, verify live) → harvest it as a **skill** using the procedure below.
- **A single standalone fact or one-line correction** (an env var name, a path,
one gotcha) → if your harness has a lightweight memory/notes facility (e.g. a `MEMORY.md` index), record it **there** instead; a whole skill is overkill for a one-liner. With no such facility, make a small skill.
- **A genuinely one-off thing** unlikely to recur → skip it.
When you do harvest, capture the **failures too**, not just the win: the approaches you ruled out and *why* often save more time next session than the golden path itself.
Promotion rule: don't enshrine guesses
A skill is authoritative — the next session trusts it without re-deriving it — so hold promotion to a high bar. Only write a skill when **all three** hold:
1. **A passing check.** The path was actually verified — a test passed, the command exited clean, the repro reproduced, the build went green. Record what the check was. "Seemed to work" is not a passing check. 2. **A named failure pattern.** You can name the failure this path avoids or diagnoses (e.g. "stale build cache → phantom type errors"), not a vague "sometimes it breaks". 3. **At least one ruled-out dead-end.** A concrete approach you tried and eliminated, with the reason.
If any is missing, it isn't a skill yet — leave a tentative note in memory (marked unverified) or skip it. This keeps confident guesses out of the skill set.
Harvest procedure
- [ ] 1. **Apply the promotion rule** (above). Passing check + named failure
pattern + one ruled-out dead-end — or it isn't a skill: note it in memory or skip. Don't proceed on a confident guess.
- [ ] 2. **Choose scope and name yourself** using the heuristics below — don't
stop to ask. Default to project scope; pick a clear, specific `name`.
- [ ] 3. **Dedupe.** Look for an existing skill to UPDATE rather than duplicate.
List your agent's skills directories — the project one and the user-level one (e.g. Claude Code `.claude/skills` + `~/.claude/skills`, Codex `.codex/skills` + `~/.codex/skills`, or your tool's equivalent). Also glance at any memory/notes index — a fact already there may just need a pointer.
- [ ] 4. **Distill the golden path from THIS conversation** before delegating —
while it's fresh in your head: the exact working commands, file paths, env var names, the required order, and (just as important) the dead-ends to avoid. This is the raw material for the write.
- [ ] 5. **Delegate the write** to a subagent that inherits this conversation if
your tool supports one, or do it inline otherwise — see below. The conversation is the only place the golden path lives, so whoever writes it must have that context.
- [ ] 6. When the write is done, **relay the new skill's path** to the user
and, in one line, what it captured.
Scope: project vs global
- **Project** (the repo's ski
A self-improving skill for AI coding agents. Works with Claude Code, Cursor, and any agent that reads an AGENTS.md / standing-instructions file. Every session you do hard debugging or rediscover the same thing — *how do I reach the prod DB?

