Agent skill

Self Learn

by Pratiyush in Pratiyush/llm-wiki

Extract reusable patterns from recent sessions, propose framework improvements, and (with approval) update the framework docs.

MITAuto-check passedKnowledge Management

Install Self Learn

skills CLI
$ npx skills add Pratiyush/llm-wiki --skill self-learn -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Pratiyush/llm-wiki self-learn --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Pratiyush/llm-wiki.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/self-learn .claude/skills/self-learn && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
self-learn
GitHub stars
395
Token cost
~1.6k tokens
SKILL.md length
510 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Extract reusable patterns from recent sessions, propose framework improvements, and (with approval) update the framework docs.

  • Works in 7 steps: Gather context. Read → Extract candidate lessons. Look for → Score each candidate on two axes → …
  • The user says learn from this
  • SKILL.md covers What this skill does, When to invoke, Workflow and Output format
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Self Learn is an agent skill from Pratiyush/llm-wiki. Extract reusable patterns from recent sessions, propose framework improvements, and (with approval) update the framework docs. This is the dogfooding meta-loop — the project learns from its own usage. Use when the user says "learn from this", "what did we learn", "extract lessons", "update the framework", "add this to steering rules", or after completing any substantial feature or debugging session.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Knowledge Management, covering Debugging. It works with Obsidian. The repository describes itself as: LLM-powered knowledge base from your Claude Code, Codex CLI, Copilot, Cursor & Gemini sessions. Karpathy's LLM Wiki pattern — implemented and shipped. The licence is MIT.

When your agent uses it

  • The user says learn from this
  • What did we learn
  • Extract lessons
  • Update the framework

Example prompts

  • “learn from this”
  • “what did we learn”
  • “extract lessons”
  • “/self-learn”

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Gather context. Read
  2. Extract candidate lessons. Look for
  3. Score each candidate on two axes
  4. Propose updates grouped by destination
  5. Show the diff to the user before applying anything.
  6. With approval, apply the changes
  7. Report what changed, with line counts and a list of destination files.

What it can do on your machine

Read from SKILL.md and the folder at commit b108889. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are diff).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Self Learn loads about 1.6k tokens when it runs. Until then it costs about 103 tokens; SKILL.md has 510 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Pratiyush/llm-wiki at commit b108889, republished under its MIT licence (© Pratiyush). 510 words, ~1,588 tokens.

Download SKILL.mdSave it as .claude/skills/self-learn/SKILL.md (or your agent's skills folder).
name
self-learn
description
Extract reusable patterns from recent sessions, propose framework improvements, and (with approval) update the framework docs. This is the dogfooding meta-loop — the project learns from its own usage. Use when the user says "learn from this", "what did we learn", "extract lessons", "update the framework", "add this to steering rules", or after completing any substantial feature or debugging session.

self-learn

What this skill does

Closes the Dogfooding Meta-Loop from the Open Source Framework v4.1.

Every non-trivial session on a framework-driven project produces lessons: patterns that worked, patterns that failed, gotchas hit, decisions made. Most tools let those lessons evaporate. This skill captures them, runs a quality gate, and proposes framework updates.

It is the reason the framework evolves. Framework v4.0 → v4.1 was a self-learn pass that folded llmwiki's learnings back into the parent Open Source Framework.

When to invoke

  • User says "learn from this session", "what did we learn", "extract lessons", "distill this"
  • After a substantial feature ships (especially if it required multiple debugging loops)
  • At the end of a project phase — before moving to the next phase
  • When the user fixes a bug that was caused by a missing framework rule
  • When the user finds a pattern that should apply across projects
  • At the end of a "monthly verification" pass (Phase 8 Maintain)

Do NOT invoke when:

  • The session is trivial (single file change, typo fix)
  • The session is still in progress (wait until the user says "done")
  • The learnings are obvious or already codified in the framework

Workflow

  1. Gather context. Read:

    • The recent session transcript (raw/sessions/<project>/<latest>.md or Obsidian session notes)
    • _progress.md to know the current phase
    • tasks.md to see what shipped
    • docs/framework.md to know the current framework state
    • CHANGELOG.md for what's already been logged
  2. Extract candidate lessons. Look for:

    • Failed attempts — "X didn't work because Y" → candidate rule
    • Surprising wins — "X worked and I wouldn't have guessed" → candidate pattern
    • Repeated debugging loops — "I hit X three times this week" → candidate hard rule
    • Decisions — "I chose X over Y because Z" → candidate Project Type addition
    • Hints the user gave — "we need to always do X" → candidate steering rule
    • Gaps in the roadmap — items discovered during execution that weren't in the plan
  3. Score each candidate on two axes:

    • Generality: does this apply only to this project, or to any project of this type, or to all projects? (project → type → framework)
    • Confidence: how many data points? (1 occurrence = anecdote, 2 = pattern, 3+ = rule)
  4. Propose updates grouped by destination:

    DestinationWhen to update it
    .kiro/steering/<rule>.md (project-specific)2+ data points in this one project
    docs/framework.md in the project repoLearning applies to all projects of this type
    .framework/Framework.md (personal Obsidian copy)Cross-cutting rule that applies to all open-source projects
    CHANGELOG.mdEvery update gets logged as framework version bump
    New skill under .claude/skills/Repeatable workflow that warrants its own invocation
    New phase in the pipelineIf the learning is about a missing step
  5. Show the diff to the user before applying anything.

  6. With approval, apply the changes:

    • Write the new steering rule / framework section / skill
    • Bump the framework version (e.g. v4.1 → v4.2) if the update is non-trivial
    • Update CHANGELOG.md with a ## vX.Y entry describing what was learned
    • Append a one-line note to _progress.md in the Learning Log section
  7. Report what changed, with line counts and a list of destination files.

Show full SKILL.md (16 more words)Show less

Output format

## Self-learn report: <project> / <date>

### Sources consulted
- <file 1>
- <file 2>

### Candidate lessons (scored)

| # | Lesson | Generality | Confidence | Destination |
|---|---|---|---|---|
| 1 | <lesson> | project \| type \| framework | 1 \| 2 \| 3+ | <file> |
| 2 | ... | ... | ... | ... |

### Proposed updates

**1. .kiro/steering/page-format.md — add rule**
```diff
+ ## New rule from self-learn
+ <content>

2. docs/framework.md — new section under Phase 5.5

diff
+ ### New QA check from self-learn
+ <content>
Approval needed

Apply all proposed updates? (y/n)


## Hard rules

1. **Never update the framework silently.** Always surface the diff and ask.
2. **Never invent a learning from one data point.** If confidence is 1, mark it as a draft and wait for a second occurrence.
3. **Respect the framework hierarchy.** Project → Type → Framework. Don't promote a project-specific learning to a cross-cutting rule without 3+ data points across projects.
4. **Version-bump the framework** (e.g. v4.1 → v4.2) on any update to `docs/framework.md`. Update `CHANGELOG.md` in sync.
5. **Never touch code** as part of self-learn. This skill only touches docs, steering files, and framework versioning. Code changes go through the normal PR flow.
6. **Dogfood itself.** Self-learn should produce a session transcript that future self-learn passes can read.

## Example outcomes (from llmwiki's own history)

- Framework v4.0 → v4.1: added **Phase 1.25 Research** after discovering that cloning 15 reference repos up-front prevented 3+ hours of rework during Phase 3 Structure.
- Added **`.llmwikiignore`** rule after hitting sessions containing contract data that shouldn't enter the wiki.
- Added **live-session detection** (`<60 min`) after the converter read a file mid-write and produced a truncated markdown.
- Added **"no AI co-authored-by"** rule to `.kiro/steering/contributing-rules.md` after a first-run slip.

Each of these started as a single session observation and got promoted to a framework rule after the second or third occurrence.

## Related skills

- `project-maintainer` — runs the phase gates that surface the "we hit this 3 times" patterns.
- `llmwiki-query` — to look back at past sessions and count occurrences of a pattern.
- `llmwiki-sync` — to make sure the latest session is available before running self-learn.

© Pratiyush, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/self-learn of Pratiyush/llm-wiki.

Open the folder on GitHubat commit b108889

Compare with similar skills

Self Learn next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Self Learn compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Self Learn this skillPratiyush/llm-wiki395—~1.6kAutomated safety check: PassMIT
Brainpoteto/noodle420—~860Automated safety check: PassMIT
Obsidian CLIAtmosphere/atmosphere3.8k13 repos~795Automated safety check: PassApache-2.0
Confluence To Markdowniurykrieger/claude-bedrock1051 repos~2.8kAutomated safety check: NotesMIT
Anytype Importpricklywiggles/niamos192—~3.3kAutomated safety check: PassNone
Debug Obsidiansaberzero1/quartz-syncer139—~1.9kAutomated safety check: PassMIT

Similar skills

  • Brain

    poteto/noodle

    Read/write brain files (Obsidian vault at brain/). An agent skill from poteto/noodle.

    420 GitHub stars~860 tokensUpdated 6 mo ago
    Knowledge ManagementAuto-check passed
  • Obsidian CLI

    Atmosphere/atmosphere

    Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more.

    3.8k GitHub starsUsed in 13 repos~795 tokens
    Knowledge ManagementAuto-check passed
  • Confluence To Markdown

    iurykrieger/claude-bedrock

    Internal fetcher module for Confluence pages. An agent skill from iurykrieger/claude-bedrock.

    105 GitHub starsUsed in 1 repo~2.8k tokens
    Knowledge ManagementAuto-check: notes
  • Anytype Import

    pricklywiggles/niamos

    Import a page from the user's self-hosted Anytype into this Niamos Obsidian vault, page-by-page, recursing into children only when the user explicitly says so.

    192 GitHub stars~3.3k tokensUpdated 3 mo ago
    Knowledge ManagementAuto-check passed
  • Debug Obsidian

    saberzero1/quartz-syncer

    Debug and investigate plugin issues in a running Obsidian instance — collect diagnostic data, inspect state, trace events, and identify root causes via the operability facade.

    139 GitHub stars~1.9k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • Obsidian Debug

    aidenlx/zotlit

    Drive the running Obsidian instance to verify plugin changes — build, reload, eval, screenshot.

    1k GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed

More from Pratiyush/llm-wiki

  • Llmwiki Query

    Pratiyush/llm-wiki

    Answer a question by querying the user's llmwiki. An agent skill from Pratiyush/llm-wiki.

    395 GitHub stars~684 tokensUpdated 3 mo ago
    Auto-check passed
  • Llmwiki Sync

    Pratiyush/llm-wiki

    Sync Claude Code session transcripts into the user's llmwiki and ingest them into the wiki.

    395 GitHub stars~1.1k tokensUpdated 3 mo ago
    Auto-check passed
  • Project Maintainer

    Pratiyush/llm-wiki

    Maintain an llmwiki-style open-source project across the full framework pipeline.

    395 GitHub stars~1.4k tokensUpdated 3 mo ago
    Auto-check passed
  • Wiki All

    Pratiyush/llm-wiki

    Run the complete llmwiki pipeline from scratch — init, sync, graph, build, lint, and serve.

    395 GitHub stars~587 tokensUpdated 3 mo ago
    Auto-check passed
  • Llmwiki Ingest

    Pratiyush/llm-wiki

    Ingest one source document (or a folder of them) into the llmwiki.

    395 GitHub stars~691 tokensUpdated 3 mo ago
    Auto-check passed

Works with

Questions about Self Learn

What does Self Learn do?

Extract reusable patterns from recent sessions, propose framework improvements, and (with approval) update the framework docs. Self Learn is an agent skill from Pratiyush/llm-wiki. Extract reusable patterns from recent sessions, propose framework improvements, and (with approval) update the framework docs.

When should I use Self Learn?

Self Learn fits situations like: the user says learn from this; what did we learn; extract lessons; update the framework.

How do I install Self Learn in Claude Code?

Run `npx skills add Pratiyush/llm-wiki --skill self-learn -a claude-code`. Or copy the skill folder (.claude/skills/self-learn in Pratiyush/llm-wiki) into .claude/skills/self-learn in your project. Claude Code loads it when a task matches its description.

How do I install Self Learn in Codex?

Run `npx skills add Pratiyush/llm-wiki --skill self-learn -a codex`. Or copy the skill folder (.claude/skills/self-learn in Pratiyush/llm-wiki) into .agents/skills/self-learn in your project. Codex loads it when a task matches its description.

Can I use Self Learn in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Pratiyush/llm-wiki --skill self-learn -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/self-learn, .gemini/skills/self-learn, .github/skills/self-learn and .opencode/skills/self-learn in your project.

What does Self Learn need to run?

SKILL.md names no scripts, command-line tools or credentials: Self Learn is instructions for the agent only.

Does Self Learn access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Self Learn safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Self Learn use?

Self Learn is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Self Learn use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Self Learn?

Skills that share tags, products or a category with Self Learn: Brain (poteto/noodle, 420 stars), Obsidian CLI (Atmosphere/atmosphere, 3.8k stars), Confluence To Markdown (iurykrieger/claude-bedrock, 105 stars) and Anytype Import (pricklywiggles/niamos, 192 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Self Learn?

Pratiyush (a GitHub user) maintains it in Pratiyush/llm-wiki, which has 395 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on June 18, 2026.

Source: Pratiyush/llm-wiki on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.